Thread: Forum Home Enhancements - Shoutcast Status 3 (VB4)
View Single Post
  #108  
Old 06-01-2010, 06:30 AM
cyberlooser cyberlooser is offline
 
Join Date: Mar 2005
Posts: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Zachariah View Post
Almost done with a VBA block.
hi Zachariah,

how?

that's your code for the position for the module:

PHP Code:
// Connect to the server
  
switch ($placecast) {
    case 
:
      
$placecast 'forumhome_above_forums';
      break;
    case 
:
      
$placecast 'forumhome_below_forums';
      break;
    case 
:
      
$placecast 'forumhome_wgo_pos1';
      break;
    case 
:
      
$placecast 'forumhome_wgo_pos2';
      break;
    case 
:
      
$placecast 'forumhome_wgo_pos3';
      break;
    case 
:
      
$placecast 'forumhome_wgo_pos4';
      break;
    case 
:
      
$placecast 'forumhome_wgo_pos5';
      break;
    case 
:
      
$placecast '9';
      break;
    default :
      
$placecast 'forumhome_wgo_pos2';
  } 
there is no option for the VGA Block
can't find the option 2 select where i want 2 located this Modul.

so i modified your scast.php file a little bit.
in this way it is posible to install as a Modules.

here is the code:

this code should be cleaned up...i'll do this later. while some variables doesn't in use but i forgotten which one was it

PHP Code:

<?php
/* -----------------05/28/2010-----------------
This is a Nice hack to add Shoutcast  VBA block Modules on your VB4 Forum Home.
Hope it helps !!!

Original by Zachariah

modified by cyberlooser/h?r


HowTo Install

Install first the Shoutcast Status 3 (VB4) !

1. save this PHP file with this code  as radio.php in your ../forum / modules folder :

2.Create a new PHP module with the following values:
Module Title = "Radio" 
File To Include = radio.php
Identifier = radio


playlist link is implemented 
the playlist link for the players like QT / RP and MediaPlayer need to be reaktivated in this Module


=======================================================
Tested On:

vBulletin 4.0
SHOUTcast Server v1.9.5

=======================================================
*/




$scgroups explode(','$vbulletin->options['scgrp_full']);

//if (is_member_of($vbulletin->userinfo, $scgroups) OR $scgroups[0] == 0) {
//  #####   VBOPTION SETTINGS
  
$scdef $vbulletin->options['scname_full'];
  
$scip $vbulletin->options['scip_full'];
  
$scport $vbulletin->options['scport_full'];
  
$scpass $vbulletin->options['scpass_full'];
  
$file $vbulletin->options['scxml_full'];
  
$cache_tolerance $vbulletin->options['scupdate_full'];
  
$placecast $vbulletin->options['scplace_full'];
  
$scoff $vbulletin->options['scoff_full'];
//  #####   VBOPTION SETTINGS END

$pfad './images/misc/';

// Check if Cache File needs updated or not
  
if (!is_writable($file)) {
    @ 
chmod($folderstring0777);
  }
// Check if Cache needs an update
  
if (file_exists($file)) {
    
clearstatcache();
// filemtime info gets cached so we must ensure that the cache is empty
    
$time_difference time() - filemtime($file);
// echo "$file was last modified: " . date ("F d Y H:i:s.", filemtime($file)) . "( " . $time_difference . " seconds ago) <br>" . "The cache is set to update every " . $cache_tolerance . " seconds.<br>";
  
}
  else {
    
$time_difference $cache_tolerance;
// force update
  
}

// Parses shoutcasts xml to make an effective stats thing for any website
  
$scfp = @ fsockopen($scip$scport$errno$errstr2);


// If server is off line
  
if (!$scfp) {
    if (
$scoff == 1) {

    
echo
"
<html>

<head>
<title>
$scdef</title>
</head>

<body >
 
 <table width=100%>
        <tr>
        <td>
        <img border=0 src=
$pfad/shoutcast_off.gif alt=''> 
        <br><b>
$scdef ist derzeit leider</b></br>
        <img src= 
$pfad/offline.gif />
        </td>
<tr><td colspan=2>Sorry, but at moment the radio is offline. </td></tr>
  </tr>
</table>
</body>
</html>
 "
;
    }
  }
  else {
  
    
// ############ Shoutcast server is online #######################
    
    
if ($time_difference >= $cache_tolerance) {
// update the cache if need be
// Get XML feed from server
      
if ($scsuccs != 1) {
        if (
$scpass) {
          
fputs($scfp"GET /admin.cgi?pass=$scpass&mode=viewxml HTTP/1.0\r\nUser-Agent: SHOUTcast Song Status (Mozilla Compatible)\r\n\r\n");
        }
        else {
          
fputs($scfp"GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
        }
        while (!
feof($scfp)) {
          
$xmlfeed .= fgets($scfp8192);
        }
        
fclose($scfp);
      }
// Output to cache file
      
$tmpfile fopen($file"w+");
      
$fp fwrite($tmpfile$xmlfeed);
      
fclose($tmpfile);
      
flush();
// Outputs the cached file after new data
      
$xmlcache fopen($file"r");
      
$page '';
      if (
$xmlcache) {
        while (!
feof($xmlcache)) {
          
$page .= fread($xmlcache8192);
        }
        
fclose($xmlcache);
      }
    }
    else {
// outputs the cached file
      
$xmlcache fopen($file"r");
      
$page '';
      if (
$xmlcache) {
        while (!
feof($xmlcache)) {
          
$page .= fread($xmlcache8192);
        }
        
fclose($xmlcache);
      }
    }
  }
  if (
$scpass) {
    
// ######### There is a Admin password ###############
    
//define  xml elements
    
$loop = array("AVERAGETIME""CURRENTLISTENERS""PEAKLISTENERS""MAXLISTENERS""SERVERGENRE""SERVERURL""SERVERTITLE""SONGTITLE""SONGURL""WEBHITS""STREAMHITS""LISTEN""STREAMSTATUS""BITRATE""CONTENT");
    
$y 0;
    while (
$loop[$y] != '') {
      
$pageed ereg_replace(".*<$loop[$y]>"""$page);
      
$scphp strtolower($loop[$y]);
      $
$scphp ereg_replace("</$loop[$y]>.*"""$pageed);
      if (
$loop[$y] == SERVERGENRE || $loop[$y] == SERVERTITLE || $loop[$y] == SONGTITLE || $loop[$y] == SERVERTITLE)
        $
$scphp urldecode($$scphp);
      ;
      
$y++;
    }
//get song info and history
    
$pageed ereg_replace(".*<SONGHISTORY>"""$page);
    
$pageed ereg_replace("<SONGHISTORY>.*"""$pageed);
    
$songatime explode("<SONG>"$pageed);
    
$r 1;
    while (
$songatime[$r] != "") {
      
$t $r 1;
      
$playedat[$t] = ereg_replace(".*<PLAYEDAT>"""$songatime[$r]);
      
$playedat[$t] = ereg_replace("</PLAYEDAT>.*"""$playedat[$t]);
      
$song[$t] = ereg_replace(".*<TITLE>"""$songatime[$r]);
      
$song[$t] = ereg_replace("</TITLE>.*"""$song[$t]);
      
$song[$t] = urldecode($song[$t]);
      
$dj[$t] = ereg_replace(".*<SERVERTITLE>"""$page);
      
$dj[$t] = ereg_replace("</SERVERTITLE>.*"""$pageed);
      
$r++;
    }
    
$averagemin "";
    
$hours intval(intval($averagetime) / 3600);
    
$averagemin .= ($padHours) ? str_pad($hours2"0"STR_PAD_LEFT) : $hours 'h&nbsp;';
    
$minutes intval(($averagetime 60) % 60);
    
$averagemin .= str_pad($minutes2"0"STR_PAD_LEFT) . 'm&nbsp;';
    
$seconds intval($averagetime 60) . 's';
    
$averagemin .= str_pad($seconds2"0"STR_PAD_LEFT);
  }
  else {
    
// ######### There is no Admin password ###############
//define all the variables to get (delte any ones you don't want)
    
$page ereg_replace(".*<body>"""$page);
//extract data
    
$page ereg_replace("</body>.*"","$page);
//extract data
    
$numbers explode(","$page);
//extract data
    
$currentlisteners $numbers[0];
    
$streamstatus $numbers[1];
    
$peaklisteners $numbers[2];
    
$maxlisteners $numbers[3];
    
$currentlisteners $numbers[4];
    
$bitrate $numbers[5];
    
$song[0] = $numbers[6];
  }

  
// ######### Create links and media player pages ########
  // ######################################################
  
$listenamp 'http://' $scip ':' $scport '/listen.pls';
  
$listenlnk 'http://' $scip ':' $scport '/listen.pls';

// Player template requests

  
// Server is online display stats
  
if ($scfp) {
    if (
$streamstatus == "1") {
    
      echo 
"

<html>

<head>
<title>
$scdef</title>
</head>

<body>
  <table width=100%>
   <tr>    
    <td><img src=
$pfad/radio.gif align=middle></td>
   
   </tr>
   <tr>
     <td>
     <a href=
$listenamp><b>$scdef <br>
     Server is </b></a>
     <a href=
$listenamp></a>
     </td>
   </tr>
   
   <tr>
    <td colspan=2 ><marquee width=98% scrolldelay=100 scrollamount=5>
     <img src=
$pfad/radio.gif align=middle> <b>$song[0] @ $scdef</b> <img src=$pfad/im_genre.gif align=middle></marquee><br></td>
     </tr>
     <tr>
     <td><marquee width=98% scrolldelay=100 scrollamount=5><b>DJ: 
$servertitle </b> </marquee></td>
     </tr>
    <tr> 
    <td><marquee width=98% scrolldelay=100 scrollamount=5>
      <b>Current Listeners 
$currentlisteners / $maxlisteners </b>
    <b>Bitrate @ 
$bitrate kbps </b> </marquee> </td>
  </tr>
 
</table> 
<table width=100%>
  <tr>
    <td><center><a href=
$listenamp><img src=$pfad/im_qt.gif align=middle> </a></center></td>
    <td><center><a href=
$listenamp><img src=$pfad/im_real.gif align=middle> </a></center></td>
    <td><center><a href=
$listenamp><img src=$pfad/im_winamp.gif align=middle> </a> </center> </td>
    <td><center><a href=
$listenamp><img src=$pfad/im_winmp.gif align=middle> </a></center></td>
  </tr>
</table>
 
</body>
</html>"
;

  }
      
//if ($scoff == 1) 
      
else
      {        
         echo
"
<html>

<head>
<title>
$scdef</title>
</head>

<body >
 
 <table width=100%>
        <tr>
        <td>
        <img border=0 src=
$pfad/shoutcast_off.gif alt=''> 
        <br><b>
$scdef ist derzeit leider</b></br>
        <img src= 
$pfad/offline.gif />
        </td>
<tr><td colspan=2>Sorry, but at moment the radio is offline</td></tr>
  </tr>
</table>
</body>
</html>"
;
      }
    
  }
  
  
  
//}
?>


feel free in use and modify how u like...
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02123 seconds
  • Memory Usage 1,944KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete