|
From: OryNider <ory...@us...> - 2007-09-02 07:38:32
|
Update of /cvsroot/mxbb/mx_music/includes In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv8795/includes Added Files: music_rss.php Log Message: new rss feed addon. --- NEW FILE: music_rss.php --- <?php /** * * @package mxBB Portal Module - mx_music * @version $Id: music_rss.php,v 1.1 2007/09/02 07:38:20 orynider Exp $ * @copyright (c) 2007 [ory...@rd..., OryNider] mxBB Development Team * @license http://opensource.org/licenses/gpl-license.php GNU General Public License v2 * */ // MX if ( !defined('IN_PORTAL') ) { die("Hacking attempt"); } // ------- // Begin Page specific functions // function make_xml_compatible($text, $bbcode_uid = '', $use_bbcode = 0) { global $board_config, $base_url; if($use_bbcode) { if($bbcode_uid != '') { $text = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($text, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $text); } else { $text = preg_replace('/\:[0-9a-z\:]+\]/si', ']', $text); } $text = make_clickable($text); if($board_config['allow_smilies']) { $text = smilies_pass($text); $text = str_replace("./".$board_config['smilies_path'], $base_url.$board_config['smilies_path'], $text); } } $text = nl2br($text); $text = str_replace('£', '&#163;', $text); $text = str_replace('©', '(c)', $text); $text = htmlspecialchars($text); return $text; } // // End page specific functions // ------ // XML and nocaching headers header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0'); header ('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT'); header ('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); header ('Content-Type: text/xml'); $rss_time = create_date('D, d M Y H:i:s T', time(), $board_config['board_timezone']); // Create main board url (some code borrowed from functions_post.php) $script_name = preg_replace('/^\/?(.*?)\/?$/', '\1', trim($board_config['script_path'])); $server_name = trim($board_config['server_name']); $server_protocol = ( $board_config['cookie_secure'] ) ? 'https://' : 'http://'; $server_port = ( $board_config['server_port'] <> 80 ) ? ':' . trim($board_config['server_port']) . '/' : '/'; $site_name = strip_tags($board_config['sitename']); $site_description = strip_tags($board_config['site_desc']); // Change below to point to your rss-logo $logo = 'logo.gif'; // Change above to point to your rss-logo $images['logo_url'] = PORTAL_URL . 'templates/' . $theme['template_name'] . '/images/' . $logo; $site_url = append_sid(PORTAL_URL); $music_url = append_sid(PORTAL_URL . this_mo_rssurl()); $rss = '<?xml version="1.0" encoding="ISO-8859-2" ?> <!-- generator="mxBB Music Center - Module, version 2.0.x" --> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title>' . make_xml_compatible($board_config['sitename']) . ' Music Center Sindication (XXX needs registering)</title> <link>' . $music_url . '</link> <description>' . make_xml_compatible($board_config['site_desc']) . '</description> <language>' . substr($board_config['default_lang'], 0, 2) . '</language> <copyright>(c) Copyright 2007 by ' . make_xml_compatible($board_config['sitename']) . '</copyright> <managingEditor>' . $board_config['board_email'] . '</managingEditor> <webMaster>' . $board_config['board_email'] . '</webMaster> <pubDate>'. $rss_time .'</pubDate> <lastBuildDate>'. $rss_time .'</lastBuildDate> <docs>http://backend.userland.com/rss</docs> <generator>mxBB Music Center - Module, version 2.0.x</generator> <image> <title>' . make_xml_compatible($board_config['sitename']) . '</title> <link>' . $music_url . '</link> <description>' . make_xml_compatible($board_config['site_desc']) . '</description> <url>' . $images['logo_url'] . '</url> </image> '; // If not set, set the output count to 50 $count = ( isset($HTTP_GET_VARS['c']) ) ? intval($HTTP_GET_VARS['c']) : 25; $count = ( $count == 0 ) ? 25 : $count; // BEGIN Recent Photo // Start check permissions $sql_allowed_cat=""; $admin_mode = ($userdata['user_level'] <> ADMIN) ? false : true; $check_sel = ($admin_mode) ? 0 : 1; $no_limit=( isset($HTTP_GET_VARS['nolimit']) ) ? true : false; $sql = "SELECT c.*, COUNT(s.song_id) AS count FROM ". MUSIC_CAT_TABLE ." AS c LEFT JOIN ". MUSIC_TABLE ." AS s ON c.cat_id = s.song_cat_id WHERE cat_id <> 0 GROUP BY cat_id ORDER BY cat_order ASC"; if( !($result = $db->sql_query($sql)) ) { die("Could not query categories list"); } $catrows = array(); while( $row = $db->sql_fetchrow($result) ) { $music_user_access = music_user_access($row['cat_id'], $row, 1, 0, 0, 0, 0, 0); // VIEW if ($music_user_access['view'] == 1) { $catrows[] = $row; } } $allowed_cat = ''; // For Recent Public Songs below // // $catrows now stores all categories which this user can view. Dump them out! // for ($i = 0; $i < count($catrows); $i++) { // -------------------------------- // Build allowed category-list (for recent songs after here) // -------------------------------- $allowed_cat .= ($allowed_cat == '') ? $catrows[$i]['cat_id'] : ',' . $catrows[$i]['cat_id']; } // End check permissions $NotErrorFlag = false; $sql_limit_time = ""; if (!$no_limit and isset($HTTP_SERVER_VARS['HTTP_IF_MODIFIED_SINCE'])) { $NotErrorFlag = true; $NotModifiedSince = strtotime($HTTP_SERVER_VARS['HTTP_IF_MODIFIED_SINCE']); if($NotModifiedSince > 0) { $sql_limit_time = "AND song_time > ".$NotModifiedSince; $sql_limit_comment_time = "AND comment_time > ".$NotModifiedSince; } } $sql = "SELECT s.song_id, s.song_title, s.song_desc, s.song_singer, s.song_user_id, s.song_user_ip, s.song_username, s.song_time, s.song_cat_id, s.song_view_count, u.user_id, u.username, r.rate_song_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments, MAX(c.comment_id) as new_comment FROM ". MUSIC_TABLE ." AS s LEFT JOIN ". USERS_TABLE ." AS u ON s.song_user_id = u.user_id LEFT JOIN ". MUSIC_CAT_TABLE ." AS ct ON s.song_cat_id = ct.cat_id LEFT JOIN ". MUSIC_RATE_TABLE ." AS r ON s.song_id = r.rate_song_id LEFT JOIN ". MUSIC_COMMENT_TABLE ." AS c ON s.song_id = c.comment_song_id WHERE s.song_cat_id IN ($allowed_cat) AND ( s.song_approval = 1 OR ct.cat_approval = 0 ) GROUP BY s.song_id ORDER BY song_time DESC LIMIT $count"; if( !($songrow = $db->sql_query($sql)) ) { die("Failed obtaining list of active songs"); } else { $topics = $db->sql_fetchrowset($songrow); } $LastPostTime = 0; if ( count($topics) == 0 ) { die("No songs found"); } else { // $topics contains all interesting data for ($i = 0; $i < count($topics); $i++) { $song_id = $topics[$i]['song_id']; $sql = "SELECT s.*, u.user_id, u.username, r.rate_song_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments FROM ". MUSIC_TABLE ." AS s LEFT JOIN ". USERS_TABLE ." AS u ON s.song_user_id = u.user_id LEFT JOIN ". MUSIC_RATE_TABLE ." AS r ON s.song_id = r.rate_song_id LEFT JOIN ". MUSIC_COMMENT_TABLE ." AS c ON s.song_id = c.comment_song_id WHERE song_id = '$song_id' GROUP BY s.song_id"; if( !($result = $db->sql_query($sql)) ) { mx_message_die(GENERAL_ERROR, 'Could not query song information', '', __LINE__, __FILE__, $sql); } $thissong = $db->sql_fetchrow($result); if ( $thissong['song_url'] == '' ) { $song_filetype = substr($thissong['song_filename'], strlen($thissong['song_filename']) - 3, 3); $song_filename = ( !empty($thissong['song_filename']) ? $thissong['song_filename'] : '' ); } else { $song_filetype = substr($thissong['song_url'], strlen($thissong['song_url']) - 3, 3); $song_url = $thissong['song_url']; } if( ($thissong['song_user_id'] == MUSIC_GUEST) or ($thissong['username'] == '') ) { $poster = ($thissong['song_username'] == '') ? $lang['Guest'] : $thissong['song_username']; } else { $poster = $thissong['song_username']; } // // Media Center // if ( $song_filetype == 'swf' ) { $url_download = append_sid(this_mo_mxurl("music_mode=music_download&song_id=$song_id")); $url_video = $url_download; $row_type = 'flash'; } else if ( $song_filetype == 'ram' ) { $url_download = append_sid(this_mo_mxurl("music_mode=music_download&song_id=$song_id")); $url_video = $url_download; $row_type = 'ram'; } else if ( $song_filetype == '.rm' ) { $url_download = append_sid(this_mo_mxurl("music_mode=music_download&song_id=$song_id")); $url_video = $url_download; $row_type = 'rm'; } else if ( $song_filetype == '.qt' ) { $url_download = append_sid(this_mo_mxurl("music_mode=music_download&song_id=$song_id")); $url_video = $url_download; $row_type = 'qt'; } else if ( ( $song_filetype == '.jpg' ) || ( $song_filetype == '.gif' ) || ( $song_filetype == '.png' ) ) { $url_download = !empty($thissong['song_url']) ? $thissong['song_url'] : append_sid(this_mo_mxurl("music_mode=music_download&song_id=$song_id")); $url_video = $url_download; $row_type = 'img'; } else if ( ( $song_filetype == 'jpg' ) || ( $song_filetype == 'gif' ) || ( $song_filetype == 'png' ) ) { $url_download = !empty($thissong['song_url']) ? $thissong['song_url'] : append_sid(this_mo_mxurl("music_mode=music_download&song_id=$song_id")); $url_video = $url_download; $row_type = 'img'; } else if( ($song_filetype == 'pls') && !empty($thissong['song_url']) ) { $url_download = append_sid($module_root_path . 'galerie_media.' . $phpEx . '?music_mode=music_stream&song_id=' . $song_id); $lang['Download'] = ( !empty($lang['Listen']) ? $lang['Listen'] : 'Listen URL' ); $url_video = $url_download; $row_type = 'media'; } else if(!empty($thissong['song_url'])) { $host = explode("//", $thissong['song_url']); $host = $host[1]; $host = explode("/", $host); $domain = $host[0]; $counthost = count($host) - 1; $docid2 = $host[$counthost]; // $domaintmp = explode(".", $domain, -1); // Php 5 only // $sitename = implode(".", $domaintmp); if( !function_exists('mx_music_sitename') ) { function mx_music_sitename($domain) { $domaintmp = explode(".", $domain); $y = count($domaintmp) - 1; $r = ""; for ($a = 0; $y > $a; $a++) { $r .= ".".$domaintmp[$a]; } return $r; } } $sitename = substr(mx_music_sitename($domain), 1); if( !function_exists('mx_music_sitesufix') ) { function mx_music_sitesufix($domain) { $domaintmp = explode(".", $domain); $y = count($domaintmp) - 1; $r = $domaintmp[$y];; return $r; } } $sitesufix = mx_music_sitesufix($domain); if (!empty($sitesufix) ) { if ($sitesufix == 'de') { $sitelngprefix = 'de.'; } else { $sitelngprefix = 'en.'; } } else { $sitelngprefix = ''; } if ($sitename == 'video.google') { $videoid['song_url'] = explode("-", $thissong['song_url']); if (empty($videoid['song_url'][1]) ) { $docid['song_url'] = explode("?", $thissong['song_url']); if (empty($docid['song_url'][1]) ) { $url_video = ( !empty($docid['song_url'][1]) ? 'http://' . $domain . '/googleplayer.swf?' . $docid['song_url'][1] : $thissong['song_url'] ); $url_download = ( !empty($docid['song_url'][1]) ? 'http://' . $domain . '/videoplay?' . $docid['song_url'][1] : $thissong['song_url'] ); $lang['Download'] = ( !empty($lang['Share']) ? $lang['Share'] : 'Share URL' ); $row_type = 'flashvideo'; } else { $url_video = ( !empty($docid['song_url'][1]) ? 'http://' . $domain . '/googleplayer.swf?' . $docid['song_url'][1] : $thissong['song_url'] ); $url_download = ( !empty($docid['song_url'][1]) ? 'http://' . $domain . '/videoplay?' . $docid['song_url'][1] : $thissong['song_url'] ); $lang['Download'] = ( !empty($lang['Share']) ? $lang['Watch'] : 'Watch URL' ); $row_type = 'youtube'; } } else { $url_video = ( !empty($videoid['song_url'][1]) ? 'http://' . $domain . '/googleplayer.swf?docId=-' . $videoid['song_url'][1] : $thissong['song_url'] ); $url_download = ( !empty($videoid['song_url'][1]) ? 'http://' . $domain . '/videoplay?docid=-' . $videoid['song_url'][1] : $thissong['song_url'] ); $lang['Download'] = ( !empty($lang['Watch']) ? $lang['Watch'] : 'Watch URL' ); $row_type = 'youtube'; } } else if ( ($sitename == 'www.youtube') || ($sitename == 'youtube') ) { $videoid['song_url'] = explode("=", $thissong['song_url']); if (empty($videoid['song_url'][1]) ) { $row_type = 'flashvideo'; } else { $url_video = 'http://' . $domain . '/v/' . $videoid['song_url'][1]; //$url_download = append_sid($thissong['song_url']); $row_type = 'youtube'; } $url_download = append_sid($thissong['song_url']); $lang['Download'] = ( !empty($lang['Share']) ? $lang['Share'] : 'Share URL' ); $url_video = ( !empty($videoid['song_url'][1]) ? 'http://' . $domain . '/v/' . $videoid['song_url'][1] : $url_download ); } else if ( ($sitename == 'www.clipfish') || ($sitename == 'clipfish') ) { $thisvid['song_url'] = explode("videoid", $thissong['song_url']); $videoid['song_url'] = explode("=", $thisvid['song_url'][1]); if (empty($videoid['song_url'][1]) ) { $url_download = append_sid($thissong['song_url']); $lang['Download'] = ( !empty($lang['Direct_url']) ? $lang['Direct_url'] : 'Direct URL' ); $url_video = $url_download; $row_type = 'flashvideo'; } else { $url_download = ( !empty($videoid['song_url'][1]) ? 'http://' . $domain . '/player.php?videoid=' . $videoid['song_url'][1] : $thissong['song_url'] ); $lang['Download'] = ( !empty($lang['Watch']) ? $lang['Watch'] : 'Watch URL' ); $url_video = ( !empty($videoid['song_url'][1]) ? 'http://' . $domain . '/videoplayer.swf?as=0&videoid=' . $videoid['song_url'][1] : $url_download ); $row_type = 'youtube'; } } else if ( ($sitename == 'www.myvideo') || ($sitename == 'myvideo') ) { if (empty($docid2) ) { $url_download = append_sid($thissong['song_url']); $lang['Download'] = ( !empty($lang['Direct_url']) ? $lang['Direct_url'] : 'Direct URL' ); $url_video = $url_download; $row_type = 'flashvideo'; } else { $url_download = ( !empty($docid2) ? 'http://' . $domain . '/watch/' . $docid2 : $thissong['song_url'] ); $lang['Downlowd'] = ( !empty($lang['Share']) ? $lang['Share'] : 'Share URL' ); $url_video = ( !empty($docid2) ? 'http://' . $domain . '/movie/' . $docid2 : $url_download ); $row_type = 'youtube'; } } else if ( ($sitename == 'de.sevenload') || ($sitename == 'sevenload') || ($sitename == 'page.sevenload') || ($sitename == 'www.sevenload') ) { $videoid['song_url'] = explode("=", $thissong['song_url']); if (empty($videoid['song_url'][1]) ) { if (empty($docid2) ) { $url_download = append_sid($thissong['song_url']); $lang['Download'] = ( !empty($lang['Direct_url']) ? $lang['Direct_url'] : 'Direct URL' ); $url_video = $url_download; $row_type = 'flashvideo'; } else { $url_download = ( !empty($docid2) ? 'http://' . $sitelngprefix . 'sevenload.' . 'com' . '/videos/' . $docid2 : $thissong['song_url'] ); $lang['Download'] = ( !empty($lang['Share']) ? $lang['Share'] : 'Share URL' ); $url_video = ( !empty($docid2) ? 'http://' . $domain . '/swf/player.swf?id=' . $docid2 : $url_download ); $row_type = 'youtube'; } } else { $url_download = ( !empty($videoid['song_url'][1]) ? 'http://' . $sitelngprefix . 'sevenload.'. 'com' . '/videos/' . $videoid['song_url'][1] : $thissong['song_url'] ); $lang['Download'] = ( !empty($lang['Share']) ? $lang['Share'] : 'Share URL' ); $url_video = ( !empty($videoid['song_url'][1]) ? 'http://' . $domain . '/swf/player.swf?id=' . $videoid['song_url'][1] : $url_download ); $row_type = 'youtube'; } } else { $url_download = append_sid($thissong['song_url']); $lang['Download'] = ( !empty($lang['Direct_url']) ? $lang['Direct_url'] : 'Direct URL' ); $url_video = $url_download; $row_type = 'media'; } } else { //$url_download = append_sid($module_root_path . 'galerie_media.' . $phpEx . '?music_mode=music_download&song_id=' . $song_id); $url_download = append_sid(this_mo_mxurl("music_mode=music_download&song_id=" . $song_id)); $url_video = $url_download; $row_type = 'media'; } $title = make_xml_compatible($thissong['song_title']); $url_cat = append_sid(PORTAL_URL . this_mo_rssurl("music_mode=music_cat&" . "cat_id=" . $thissong['song_cat_id'])); $url_page = append_sid(PORTAL_URL . this_mo_rssurl("music_mode=music_page&" . "song_id=" . $thissong['song_id'])); $url_song = !empty($thissong['song_url']) ? $thissong['song_url'] : append_sid(PORTAL_URL . this_mo_rssurl("music_mode=music_song&" . "song_id=" . $thissong['song_id'], true)); $url_comment = append_sid(PORTAL_URL . this_mo_rssurl("music_mode=music_comment&" . "song_id=" . $thissong['song_id'])); switch ($row_type) { case 'flash': $html_code = '<EMBED src="' . $url_song . '" quality=high scale=noborder wmode=transparent bgcolor=#000000 TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED>'; $enclosure = 'url="' . $url_song . '" ' . 'type="application/x-shockwave-flash" length="1024000"'; break; case 'ram': $html_code = '<embed src="' . $url_song . '" id="VideoPlayback" type="audio/x-pn-realaudio-plugin" wmode="transparent" width="425" height="350"></embed>'; $enclosure = 'url="' . $url_song . '" ' . 'type="audio/x-pn-realaudio-plugin" length="1024000"'; break; case 'flashvideo': $html_code = '<embed src="' . $url_song . '" id="VideoPlayback" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350" flashvars=""></embed>'; $enclosure = 'url="' . $url_video . '" ' . 'type="application/x-shockwave-flash" length="1024000"'; break; case 'youtube': $html_code = '<embed src="' . $url_video . '" id="VideoPlayback" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350" flashvars=""></embed>'; $enclosure = 'url="' . $url_video . '" ' . 'type="application/x-shockwave-flash" length="1024000"'; break; case 'qt': $html_code = '<embed src="templates/subSilver/images/uneedqt41.jpg" qtsrc="' . $url_song . '" width="377" height="212" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/" controller="true" loop="false" autoplay="false" kioskmode="true" cache="false"></embed>'; $enclosure = 'url="' . $url_song . '" ' . 'type="video/quicktime" length="1024000"'; break; case 'img': $html_code = '<a href="' . $url_page . '">' . '<img src="' . $url_song . '" border="1" vspace="2" hspace="2" align="left" width="425" height="350">' . '</a>'; $enclosure = 'url="' . $url_song . '" ' . 'type="image/png" length="1024000"'; break; default: $html_code = '<embed type="audio/mpeg" height="70" width="300" AUTOSTART="0" filename="' . $url_song . '" src="' . $url_song . '" ></embed>'; $enclosure = 'url="' . $url_song . '" ' . 'type="audio/mpeg" length="1024000"'; } $html_code = trim($html_code); $description_code = $lang['Song_Desc'] . ': ' . nl2br($thissong['song_desc']); $description = $html_code . $description_code; if (strlen($description) > 2000) { $description_encoded = '<div>' . substr($html_code, 0, 1957) . '</div><br /><div>' . $description_code . '</div><div> </div>'; } else { $description_encoded = '<div>' . $html_code . '</div><br /><div>' . $description_code . '</div><div> </div>'; } $rss .= ' <item> <title>' . $title . '</title> <link>' . $url_page . '</link> <description><![CDATA[' . $description_encoded .']]></description> <dc:creator>' . $poster . '</dc:creator> <enclosure ' . $enclosure . ' /> <comments>' . $url_comment . '</comments> <guid>' . $url_page . '</guid> </item> '; } } // Create RDF footer $rss .= ' </channel> </rss>'; // Discritics Replace $rss = str_replace("ä","ä",$rss); $rss = str_replace("ö","ö",$rss); $rss = str_replace("ü","ü",$rss); // Output the RDF echo $rss; ?> |