Разделы

Прямой эфир

Весь эфир | RSS

Виджет статистики с сервера потокового вещания Icecast2. Не работает.

Добрый вечер. На днях решил создать собственное радио. Настроил Icecast2 сервер, подключил внешний ип, сел писать сниппет для MODx Evo. Но вот беда: программист из меня видимо лажовый, да и документации не читал особо, написал небольшой сниппет, но ничего не получается к сожалению. Может кто поможет найти ошибки?
<?php
#Snippet Ice2Stats 0.1b version
#Desc:Snippet for show statistics from Icecast2 stream server.
#
#Params:
#&server [string] [REQUIRED] - adress to yout Icecast2 server. For example: example.com
#&mountPoint [string] [REQUIRED] - mount point your tracklist. For example: play.mp3
#&port  [int] [OPTIONAL] - port on your Icecast2 server, default: 8000
#&iceTpl [chunk] [OPTIONAL] - chunk to contain row on page, default: IceTpl
#&ErrorTpl [chunk] [OPTIONAL] - chunk to show error status, for example "No stream", "Server is down", etc. Default: IceError
#
$server = (isset($server))? $server : '';
$mountPoint = (isset($mountPoint))? $mountPoint : '';
$port = (isset($port))? $port : '8000';
$ErrorTpl = (isset($ErrorTpl))? $ErrorTpl : ' <div id="iceError"> [+error+]</div>';
$baseTpl = (isset($baseTpl))? $baseTpl : ' <div id="icecast"><a href="[+radioLink+]><h3> Radio [(site_name)]</h3></a><div id="iceplay">Now play:[+nowSong+]</div><div id="icelisten">Listeners:[+listeners+]</div></div>';


$ice = file_get_contents("http://".$server.":".$port."/status2.xsl?mount=/".$mountPoint);
		if(!$ice) {
			$error = "Радио недоступно. Попробуйте позднее";
                                           $iceData[100] = 2;
		} else { 
			
			$ice = strip_tags($ice);
			$iceData = explode(",",$ice);
			if (strlen($iceData[11])<2) {
 $iceData[100] = 1;
 $error = "Сервер работает, но судя по всему нет потока";
			} else {	$iceData[100] = 0;	}
		}
	
	

	if ($iceData[100] >= 1) {
$modx->parseChunk($ErrorTpl,$error,'error','[+','+]');
} else {
$modx->parseChunk($baseTpl,$iceData[11],'mount','[+','+]');
$modx->parseChunk($baseTpl,$iceData[14],'listeners','[+','+]');
$modx->parseChunk($baseTpl,$iceData[16],'nowSong','[+','+]');
$radioLink = $server.':'.$port.'/'.$mountPoint;
$modx->parseChunk($baseTpl,$radioLink,'radioLink','[+','+]');
}
?>

Комментарии (10)

RSS свернуть / развернуть
0
ну во-первых у вас опечатка:
$erroк
:)
во-вторых вы пишете плагин или все-таки сниппет?
потом, попробуйте в начале прописать
global $modx;

и вообще, сначала можно написать сниппет без использования $modx->parseChunk и плейсхолдеров.
avatar

antonkuzmin

  • 30 июля 2010, 07:31
0
Сниппет всё-таки)
М, про глобальную переменную я забыл к сожалению :( и пунто раскладку сменил %)

и вообще, сначала можно написать сниппет без использования $modx->parseChunk и плейсхолдеров.

гм, а как тогда выводить данные на сайте?
спасибо за ответ)
avatar

Pahom-ka

  • 30 июля 2010, 09:58
0
ах да, вы же не выводите никаким образом результат выполнения сниппета ))
для этого формируете вывод сниппета в какой-либо переменной, например $output, а далее последней строчкой скрипта — return $output;

также, почитайте описание parseChunk: www.modx-cms.ru/dokumentatsiya/razrabotka/programmirovanie/modx-api/parsechunk.html
станет понятно, что в той форме, как вы используете его, этот метод работать не будет.
avatar

antonkuzmin

  • 30 июля 2010, 12:12
0
ммм, большое спасибо за линк, я кажется всё понял, вечером переделаю всё :)
avatar

Pahom-ka

  • 30 июля 2010, 12:32
0
Ну как результаты? Есть решение? :)
avatar

Carw

  • 24 января 2011, 23:24
0
забросил, каюсь(не хотят товарищи радио заниматься, ну а мне следственно стало неинтересно и кодить сниппет :( если у кого есть сайт радио на MODx — сделаю нахаляву, а так мне тестить не на чём :(
avatar

Pahom-ka

  • 25 января 2011, 15:01
0
Понятно, жаль. Я сам не нуждаюсь в радио, но было бы интересно посмотреть на это решение. Ну и топик не очень подоходит в блог «В разработке» в этом случае. Предлагаю перенести в «Решение проблем». :)
avatar

Carw

  • 25 января 2011, 21:56
0
а что там интересного, с сервера просто грузится файл со статистикой и парсится))В принципе нетривиальная задача, но когда дошло до прикрутки в MODx вызвало некоторые сложности)
avatar

Pahom-ka

  • 25 января 2011, 23:59
0
В принципе переносите куда хотите, не знаю, буду ли доделывать его.
avatar

Pahom-ka

  • 26 января 2011, 00:00
0
Хотя, может кто-то заинтересуется в будущем и доработает. Пусть остается здесь :)
avatar

Carw

  • 26 января 2011, 00:26

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.