Ramon Fincken wrote: I ve done this mod like this: http://www.rgtunez.co.uk/forum/
Here's the script:
file: shoutcastparser.php
Code: Select all
<?php // Ramon Fincken, Phpbbinstallers.com // Changed all Echo's to $shoutcast_phpbb_output .= // shoutcastxml.php // A SHOUTcast XML parser for PHP and Apache // Copyright Peter Manchester B.Sc. // All rights reserved // 20th October 2002 // Web: www.petermanchester.co.uk // Email: [email protected] // turn off error reporting error_reporting(0); // DEBUG constant can be set to provide extra output when required define ("DEBUG", "0"); // parameters for your SHOUTcast server - ** YOU WILL NEED TO CHANGE THESE ** $shoutcast_host = 'rgtunez.co.uk'; // SHOUTcast station url $shoutcast_port = '8002'; // SHOUTcast station port number $shoutcast_password = ''; // SHOUTcast password $shoutcast_url = "http://" . $shoutcast_host . ':' . $shoutcast_port . "/listen.pls"; // end of parameters for your SHOUTcast server // timeout period in seconds while contacting station $fsock_time_out = 1; // error number to be returned $fsock_error_number = 0; // error text to be returned $fsock_error_text = ""; // an associative array to store the items we are interested in $shoutcast_data = array('streamstatus' => '', 'bitrate' => '', 'currentlisteners' => '', 'maxlisteners' => '', 'servertitle' => '', 'songtitle' => ''); $shoutcast_xml = ""; global $shoutcast_data, $shoutcast_xml_element; if (!function_exists('startElement')) { // start element handler for xml parser function startElement($parser, $name, $attrs) { global $shoutcast_xml_element; // track which xml element is being parsed $shoutcast_xml_element = strtolower($name); } } if (!function_exists('endElement')) { // end element handler for xml parser function endElement($parser, $name) { global $shoutcast_xml_element; // forget which xml element was being parsed $shoutcast_xml_element = ''; } } if (!function_exists('handleData')) { // character data handler for xml parser function handleData($parser, $data) { global $shoutcast_data, $shoutcast_xml_element; $shoutcast_data[$shoutcast_xml_element] .= $data; } } if (!function_exists('defaultHandler')) { // default handler function defaultHandler($parser, $data) {} } //open socket connection to the shoutcast server $shoutcast_fp = fsockopen($shoutcast_host, $shoutcast_port, $fsock_error_number, $fsock_error_text, $fsock_time_out); // check that the socket is open before proceeding if($shoutcast_fp) { // socket connection is established, so the station is on-line // set 1 second timeout for communication with the station // stream_set_timeout($shoutcast_fp, 1); // build a string containing an HTTP request to your SHOUTcast server $shoutcast_httpreq = "GET /admin.cgi?pass=$shoutcast_password&mode=viewxml HTTP/1.0\r\nUser-Agent: SHOUTcast Song Status (Mozilla Compatible)\r\n\r\n"; // send HTTP request to shoutcast server fputs($shoutcast_fp, $shoutcast_httpreq); // read entire xml output stream while(!feof($shoutcast_fp)) { $shoutcast_xml .= fgets($shoutcast_fp, 1000); } // close the socket now we no longer need it fclose($shoutcast_fp); // if we have got some XML back then we need to strip away some // stuff that we don't need if ($shoutcast_xml != '') $shoutcast_xml = strstr($shoutcast_xml, '<SHOUTCASTSERVER>'); // create an instane of the EXPAT XML parser $xml_parser = xml_parser_create(); // set element start and end element handler functions xml_set_element_handler($xml_parser, 'startElement', 'endElement'); // set character data handler function xml_set_character_data_handler($xml_parser, 'handleData'); xml_set_default_handler($xml_parser, 'defaultHandler'); // activate the XML parser $parsed = xml_parse($xml_parser, $shoutcast_xml, 1); // some debugging code if (DEBUG) { $shoutcast_phpbb_output .= $shoutcast_xml; print_r ($shoutcast_data); } // check that the parsing operation worked correctly if ($parsed) { // it worked, so report the station status if ($shoutcast_data['streamstatus'] == '1') { // streaming content is available $shoutcast_phpbb_output .= '<p>'; $shoutcast_phpbb_output .= $shoutcast_data['servertitle']; $shoutcast_phpbb_output .= '<br />Streaming at '; $shoutcast_phpbb_output .= $shoutcast_data['bitrate']; $shoutcast_phpbb_output .= ' kbps.</p>'; $shoutcast_phpbb_output .= '<p>Currently playing: '; $shoutcast_phpbb_output .= $shoutcast_data['songtitle']; $shoutcast_phpbb_output .= '</p>'; $shoutcast_phpbb_output .= '<p>Current listeners: '; $shoutcast_phpbb_output .= $shoutcast_data['currentlisteners']; $shoutcast_phpbb_output .= ' (only '; $shoutcast_phpbb_output .= $shoutcast_data['maxlisteners']; $shoutcast_phpbb_output .= ' allowed).</p>'; if (intval($shoutcast_data['currentlisteners']) < intval($shoutcast_data['maxlisteners'])) { $shoutcast_phpbb_output .= "<p>If you have Real Player installed, then "; $shoutcast_phpbb_output .= "click the Play button on the console above. "; $shoutcast_phpbb_output .= "Otherwise, to listen using Winamp "; $shoutcast_phpbb_output .= "click <a href=\"$shoutcast_url\">here</a>.</p>"; } else { $shoutcast_phpbb_output .= "<p>Please wait until another listener can be added.</p>"; } } else { // no streaming content is available $shoutcast_phpbb_output .= '<p>Radio is currently offline.</p>'; } } else { // parsing failed if (DEBUG) { $shoutcast_phpbb_output .= 'XML Parser reported the following error:' . '<br />'; $shoutcast_phpbb_output .= xml_error_string(xml_get_error_code($xml_parser)) . ' in line '; $shoutcast_phpbb_output .= xml_get_current_line_number($xml_parser) . '<br />'; } } // the xml parser is no longer required xml_parser_free($xml_parser); } else { // socket connection could not be established $shoutcast_phpbb_output .= '<p>The station is offline.</p>'; } ?>
OPENFINDCode: Select all
index.php
BEFORE, ADDCode: Select all
$template->pparse('body');
OPENCode: Select all
// shoutcast Panel - START // MOD Ramon Fincken, Phpbbinstallers.com include_once($phpbb_root_path . 'shoutcastparser.'.$phpEx); $template->assign_block_vars('chield', array( "SHOUTCAST_PHPBB_OUTPUT" => $shoutcast_phpbb_output)); // MOD Ramon Fincken // shoutcast - END
ADDCode: Select all
templates/[yourtemplatename]/index_body.tpl
Code: Select all
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="forumline"><tr><td> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr><td class="catHead" colspan="2" height="28"><span class="cattitle">Radio</span></td> </tr> <tr><td class="row1" align="left"><p class="genmed"> <!-- BEGIN shoutcastparser --> {shoutcastparser.SHOUTCAST_PHPBB_OUTPUT} <!-- END shoutcastparser --> <br /><br /></p></td></tr> </table> </td></tr></table>
DIY INSTRUCTIONSCode: Select all
#edit #// parameters for your SHOUTcast server - ** YOU WILL NEED TO CHANGE THESE ** #$shoutcast_host = 'rgtunez.co.uk'; // SHOUTcast station url #$shoutcast_port = '8002'; // SHOUTcast station port number #$shoutcast_password = ''; // SHOUTcast password #$shoutcast_url = "http://" . $shoutcast_host . ':' . $shoutcast_port . "/listen.pls"; #// end of parameters for your SHOUTcast server
#edit
#// parameters for your SHOUTcast server - ** YOU WILL NEED TO CHANGE THESE **
#$shoutcast_host = 'rgtunez.co.uk'; // SHOUTcast station url
#$shoutcast_port = '8002'; // SHOUTcast station port number
#$shoutcast_password = ''; // SHOUTcast password
#$shoutcast_url = "http://" . $shoutcast_host . ':' . $shoutcast_port . "/listen.pls";
#// end of parameters for your SHOUTcast server
Ramon Fincken wrote: did you change the
#edit
#// parameters for your SHOUTcast server - ** YOU WILL NEED TO CHANGE THESE **
#$shoutcast_host = 'rgtunez.co.uk'; // SHOUTcast station url
#$shoutcast_port = '8002'; // SHOUTcast station port number
#$shoutcast_password = ''; // SHOUTcast password
#$shoutcast_url = "http://" . $shoutcast_host . ':' . $shoutcast_port . "/listen.pls";
#// end of parameters for your SHOUTcast server
Rfn
Code: Select all
#$shoutcast_host = 'rgtunez.co.uk'; // SHOUTcast station url
#$shoutcast_port = '8002'; // SHOUTcast station port number
#$shoutcast_password = ''; // SHOUTcast password
Ramon Fincken wrote: you only have to edit
Code: Select all
#$shoutcast_host = 'rgtunez.co.uk'; // SHOUTcast station url #$shoutcast_port = '8002'; // SHOUTcast station port number #$shoutcast_password = ''; // SHOUTcast password
Code: Select all
$shoutcast_url = "http://" . $shoutcast_host . ':' . $shoutcast_port . "/listen.pls";
Ramon Fincken wrote: aloung with this line beeing ontouched?
Code: Select all
$shoutcast_url = "http://" . $shoutcast_host . ':' . $shoutcast_port . "/listen.pls";
deejaybet wrote: http://sourceforge.net/project/showfile ... _id=114281
thats one i found when i googled it