• Skip to main content

Uly.me

cloud engineer

  • Home
  • About
  • Archives

class

Center Search Widget

August 1, 2020

Here’s how to center the Search widget in a WordPress Page or a post. This applies only if you’re using the default Search Widget. Div classes may vary based on theme being used. The CSS example below may not work for your theme. Check your theme’s source code to be sure.

.entry-content .wp-block-search {
  display:block;
  margin-left:auto;
  margin-right:auto;
  text-align: center;
}
.entry-content .wp-block-search label {
  display:none;
}
.entry-content .wp-block-search input {
  width:250px;
}

.entry-content .wp-block-search { display:block; margin-left:auto; margin-right:auto; text-align: center; } .entry-content .wp-block-search label { display:none; } .entry-content .wp-block-search input { width:250px; }

The CSS above centers the search block. It suppresses the search label, and finally sets the form’s input to a fixed width of 250px.

Filed Under: WP Tagged With: center, class, css, div, search, wordpress

Icecast PHP Class

March 14, 2014

I modified an existing Icecast PHP class that I found online. I’ve added a couple of extra fields particularly the ‘status’ field where you’ll be able to determine if your Icecast server is streaming or not. I’ve initially set the status variable to ‘On Air’ and ‘Off Air.’ To use the class, take a look at the code below:

// include the class file
include( 'icecast.php' );
 
// instantiate class
$stream = new IceCast();
 
// set server and mount
$server = 'http://yourdomain.com:8001';
$file   = '/status.xsl?mount=/yourmount.ogg';
 
// set the url
$stream->setUrl($server,$file);
 
// get status info
$radio = $stream->getStatus();
 
// assign array to variables
extract($radio);
 
// echo the status
echo $status.'<br/>';
 
// display more stats if ON AIR
if ($status=='ON AIR') :
echo $listeners.' listeners<br/>';
echo $most_listeners.' max listeners<br/>';
endif;

// include the class file include( 'icecast.php' ); // instantiate class $stream = new IceCast(); // set server and mount $server = 'http://yourdomain.com:8001'; $file = '/status.xsl?mount=/yourmount.ogg'; // set the url $stream->setUrl($server,$file); // get status info $radio = $stream->getStatus(); // assign array to variables extract($radio); // echo the status echo $status.'<br/>'; // display more stats if ON AIR if ($status=='ON AIR') : echo $listeners.' listeners<br/>'; echo $most_listeners.' max listeners<br/>'; endif;

Here’s the Icecast class.

class IceCast {
    var $server = "http://yourdomain.com:8001";
    var $stats_file = "/status.xsl?mount=/yourmount.ogg";
    var $radio_info=array();
 
    function __construct() {
        // build array to store our Icecast stats   
        $this->radio_info['server'] = $this->server;
        $this->radio_info['title'] = '';
        $this->radio_info['description'] = '';
        $this->radio_info['content_type'] = '';
        $this->radio_info['mount_start'] = '';
        $this->radio_info['bit_rate'] = '';
        $this->radio_info['listeners'] = '';
        $this->radio_info['most_listeners'] = '';
        $this->radio_info['genre'] = '';
        $this->radio_info['url'] = '';
        $this->radio_info['now_playing'] = array();
        $this->radio_info['now_playing']['artist'] = 'Unknown';
        $this->radio_info['now_playing']['track'] = 'Unknown';
        $this->radio_info['status'] = 'OFF AIR';
    }
 
    function setUrl($url,$file) {
        $this->server=$url;
        $this->stats_file=$file;
        $this->radio_info['server'] = $this->server;
    }
 
    private function fetch() {
        // create a new curl resource
        $ch = curl_init();
 
        // set the url
        curl_setopt($ch,CURLOPT_URL,$this->server.$this->stats_file);
 
        // return as a string
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
 
        // $output = the status.xsl file
        $output = curl_exec($ch);
 
        // close curl resource to free up system resources
        curl_close($ch);
 
        return $output;
    }
 
    function getStatus() {
        $output=$this->fetch();
 
        // loop through $output and sort arrays
        $temp_array = array();
 
        $search_for = "<td\s[^>]*class=\"streamdata\">(.*)<\/td>";
        $search_td = array('<td class="streamdata">','</td>');
 
        if(preg_match_all("/$search_for/siU",$output,$matches)) {
           foreach($matches[0] as $match) {
              $to_push = str_replace($search_td,'',$match);
              $to_push = trim($to_push);
              array_push($temp_array,$to_push);
           }
        }
 
        if(count($temp_array)) {
            //sort our temp array into our ral array
            $this->radio_info['title'] = $temp_array[0];
            $this->radio_info['description'] = $temp_array[1];
            $this->radio_info['content_type'] = $temp_array[2];
            $this->radio_info['mount_start'] = $temp_array[3];
            $this->radio_info['bit_rate'] = $temp_array[4];
            $this->radio_info['listeners'] = $temp_array[5];
            $this->radio_info['most_listeners'] = $temp_array[6];
            $this->radio_info['genre'] = $temp_array[7];
            $this->radio_info['url'] = $temp_array[8];
 
            if(isset($temp_array[9])) {
                $x = explode(" - ",$temp_array[9]);
                $this->radio_info['now_playing']['artist'] = $x[0];
                $this->radio_info['now_playing']['track'] = $x[1];
            }
            $this->radio_info['status'] = 'ON AIR';
 
        }
        return $this->radio_info;
        }
 
}

class IceCast { var $server = "http://yourdomain.com:8001"; var $stats_file = "/status.xsl?mount=/yourmount.ogg"; var $radio_info=array(); function __construct() { // build array to store our Icecast stats $this->radio_info['server'] = $this->server; $this->radio_info['title'] = ''; $this->radio_info['description'] = ''; $this->radio_info['content_type'] = ''; $this->radio_info['mount_start'] = ''; $this->radio_info['bit_rate'] = ''; $this->radio_info['listeners'] = ''; $this->radio_info['most_listeners'] = ''; $this->radio_info['genre'] = ''; $this->radio_info['url'] = ''; $this->radio_info['now_playing'] = array(); $this->radio_info['now_playing']['artist'] = 'Unknown'; $this->radio_info['now_playing']['track'] = 'Unknown'; $this->radio_info['status'] = 'OFF AIR'; } function setUrl($url,$file) { $this->server=$url; $this->stats_file=$file; $this->radio_info['server'] = $this->server; } private function fetch() { // create a new curl resource $ch = curl_init(); // set the url curl_setopt($ch,CURLOPT_URL,$this->server.$this->stats_file); // return as a string curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); // $output = the status.xsl file $output = curl_exec($ch); // close curl resource to free up system resources curl_close($ch); return $output; } function getStatus() { $output=$this->fetch(); // loop through $output and sort arrays $temp_array = array(); $search_for = "<td\s[^>]*class=\"streamdata\">(.*)<\/td>"; $search_td = array('<td class="streamdata">','</td>'); if(preg_match_all("/$search_for/siU",$output,$matches)) { foreach($matches[0] as $match) { $to_push = str_replace($search_td,'',$match); $to_push = trim($to_push); array_push($temp_array,$to_push); } } if(count($temp_array)) { //sort our temp array into our ral array $this->radio_info['title'] = $temp_array[0]; $this->radio_info['description'] = $temp_array[1]; $this->radio_info['content_type'] = $temp_array[2]; $this->radio_info['mount_start'] = $temp_array[3]; $this->radio_info['bit_rate'] = $temp_array[4]; $this->radio_info['listeners'] = $temp_array[5]; $this->radio_info['most_listeners'] = $temp_array[6]; $this->radio_info['genre'] = $temp_array[7]; $this->radio_info['url'] = $temp_array[8]; if(isset($temp_array[9])) { $x = explode(" - ",$temp_array[9]); $this->radio_info['now_playing']['artist'] = $x[0]; $this->radio_info['now_playing']['track'] = $x[1]; } $this->radio_info['status'] = 'ON AIR'; } return $this->radio_info; } }

Filed Under: PHP Tagged With: class, icecast, status

  • Home
  • About
  • Archives

Copyright © 2023