© Сделано на LiveStreet
Дизайн - ©2009 MODx RED Group
<?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 свернуть / развернутьво-вторых вы пишете плагин или все-таки сниппет?
потом, попробуйте в начале прописать
и вообще, сначала можно написать сниппет без использования $modx->parseChunk и плейсхолдеров.
antonkuzmin
М, про глобальную переменную я забыл к сожалению :( и пунто раскладку сменил %)
гм, а как тогда выводить данные на сайте?
спасибо за ответ)
Pahom-ka
для этого формируете вывод сниппета в какой-либо переменной, например $output, а далее последней строчкой скрипта — return $output;
также, почитайте описание parseChunk: www.modx-cms.ru/dokumentatsiya/razrabotka/programmirovanie/modx-api/parsechunk.html
станет понятно, что в той форме, как вы используете его, этот метод работать не будет.
antonkuzmin
Pahom-ka
Carw
Pahom-ka
Carw
Pahom-ka
Pahom-ka
Carw
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.