Перейти к контенту

интернет-радио


asn

Рекомендуемые сообщения

есть ли какая либо возможность добавить инет-радио на форум? например адреса самих радио возьмутся из винампа "SHOUTcast Radio"... а как это прикрутить к форуму? есть ли скрипт какой? и можно ли сделать так, чтобы при переходе человека от одной темы к другой - радио не обрывалось, а продолжало играть?

 

з.ы. может вопрос глупый... но ответа не нашел пока нигде :D речь идет ессесно о форуме 2.1.x

Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...
Есть. Тут добавили - http://www.poundingtechno.com/index.php?

Там мод для IPB 2.0.x (вот он, собственно, на Invisionize.com: http://mods.invisionize.com/db/index.php/f/4908).

 

-------

Для версии 2.1.х такого пока не видел.

Хотя, некое подобие встречал (для 2.1.х): http://mods.invisionize.com/db/index.php/f/5546

Ссылка на комментарий
Поделиться на других сайтах

  • 1 год спустя...
  • 2 недели спустя...

У нас транслируеться до 20-30 радиостанций, так что сделали максимально просто и удобно.....

http://city.brovary.net/portal/index.php?act=radio

Ссылка на комментарий
Поделиться на других сайтах

А с помощью какого мода у вас это реализовано ? Подойдёт ли он для 2.1.7 ? Просто MediaBox слишком тяжелый и грузный. И не нужны там больше половины функций. Ради одного радио не хотелось бы его слушать. Да и плюс ко всему он английский, что наиболее негативно для участников моего форума.
Ссылка на комментарий
Поделиться на других сайтах

Это просто приделаный к форуму интерфейс для работы с Icecast2, на котором крутяться все радиостанции. Там все елементарно, могу выложить код
Ссылка на комментарий
Поделиться на других сайтах

/sources/action_public/radio.php

<?php

/*
|   > Written by Frike
|   > Date started: 05.03.2007
|
|   > Module Version Number: 1.0.0
|   
+--------------------------------------------------------------------------
*/


if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Некорректный адрес</h1>Вы не имеете доступа к этому файлу напрямую. Если вы недавно обновляли форум, вы должны обновить все соответствующие файлы.";
exit();
}

class radio
{
var $ipsclass;
   var $output    = "";
   var $base_url  = "";
   var $html      = "";



   /*-------------------------------------------------------------------------*/
//
// Our constructor, load words, load skin, 
//
/*-------------------------------------------------------------------------*/

   function auto_run()
   {

       $this->ipsclass->load_template('skin_global');


       $this->base_url    = $this->ipsclass->base_url;
       $this->base_url_NS = "{$this->ipsclass->vars['board_url']}/index.{$this->ipsclass->vars['php_ext']}";

       //-----------------------------------------
	// What to do?
	//-----------------------------------------
		$this->show_form();

}


function show_form()
{

	$ip = "localhost";
	$port = 8000;
	$echo_radio = "";
	$fp = fsockopen($ip, $port, $errno, $errstr, 30);
	if(!$fp)
       {
		$echo_radio="<tr><td class=\"row1\"   align=\"center\"  colspan='4'>Сбой, зайдите позже</td></tr>";
            }

	if($fp){
	fputs($fp,"GET /status2.xsl HTTP/1.0\r\nUser-Agent: Icecast2 XSL Parser (Mozilla Compatible)\r\n\r\n");
	while(!feof($fp)) {
		$page .= fgets($fp, 1000);
	}
	fclose($fp);
	$page = ereg_replace(".*Source: ,,,,", "", $page);
	$page = ereg_replace("</pre>.*", ",", $page);
	$i=0;
	$listeners=0;
	$numbers = explode(",",$page);
	for($name_r=2 , $mount=0, $count_r=3; $name_r<count($numbers)-1; $name_r+=6 , $mount+=6, $count_r+=6)
             {
	$echo_radio .= "<tr><td class=\"row1\" align=\"center\" width=\"50%\"><a href=\"http://city.brovary.net:$port$numbers[$mount].m3u\" style='text-decoration:none'>".ereg_replace(".*/", "", $numbers[$mount])."</a></td>\n"
		."<td class=\"row1\" align=\"center\"><a href=\"http://city.brovary.net:$port$numbers[$mount].m3u\">Слушать</a></td>\n"
		."<td class=\"row1\" align=\"center\">$numbers[$count_r]</td>\n"
		."</tr>\n";

	$i=count($numbers)/6;
	$listeners=$listeners+$numbers[$count_r];
                                                             }
	$echo_radio_all=substr($i,0,strpos($i,"."));
	$echo_radio_list=$listeners;
	}
	$this->output = $this->ipsclass->compiled_templates['skin_global']->radio($echo_radio_all,$echo_radio_list,$echo_radio);

	$this->page_title  = "On-Line Радио";

	$this->nav         = array ( "<a href='{$this->base_url}'>{$this->forum['name']}</a>",  "<a href='.$this->base_url.'></a>", "On-Line Радио" );

	$this->ipsclass->print->add_output("$this->output");
       $this->ipsclass->print->do_output( array( 'TITLE' => $this->page_title, 'JS' => 0, NAV => $this->nav ) );

}

}

?> 

В index.php после

				 'component'  => array( 'component'		  , 'component'	, array() ),

добавить

				 "radio"	  => array( "radio"			  , 'radio' 		  , array() ),

 

В skin_global добавить шаблон radio (Входящие переменные - $radio_all=0,$radio_list=0,$radio="")

	<div class="borderwrap">
	<div class="maintitle"><{CAT_IMG}> Радио Brovary.net</div>

	<table class='ipbtable' cellspacing="0" align="center">
		<tr>
			<td class="subtitle" width="50%" align="center"><b>Радиостанций</b></td>
			<td class="subtitle" width="50%" align="center"><b>Всего слушателей</b></td>
		</tr>
		<tr>
			<td class="row1"  width="50%" align="center">{$radio_all}</td>
			<td class="row1" width="50%"  align="center">{$radio_list}</td>
		</tr>
	</table>
	<table class='ipbtable' cellspacing="0" align="center">
		<tr>
			<td class="subtitle" align="center" width="50%"><b>Название</b></td>
							<td class="subtitle" align="center"><b> </b></td>
			<td class="subtitle" align="center"><b>Слушают</b></td>
		</tr>
{$radio}
	</table>

	</div>

 

ну вот и все....в файле radio.php указываеться IP и порт Icecast сервера

Ссылка на комментарий
Поделиться на других сайтах

Тоже хотелось бы мод гороскопов посмотреть.

 

Тут, кстати, есть несколько вариантов.

Можно создать целый подраздел и рсс-потоком постить на каждый день гороскопы. Можно вычисолять по дате рождения гороскоп и выдавать автоматом, можно как отдельный сервис, как у Frike.

Ссылка на комментарий
Поделиться на других сайтах

/sources/action_public/radio.php

<?php

/*
|   > Written by Frike
|   > Date started: 05.03.2007
|
|   > Module Version Number: 1.0.0
|   
+--------------------------------------------------------------------------
*/


if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Некорректный адрес</h1>Вы не имеете доступа к этому файлу напрямую. Если вы недавно обновляли форум, вы должны обновить все соответствующие файлы.";
exit();
}

class radio
{
var $ipsclass;
   var $output    = "";
   var $base_url  = "";
   var $html      = "";



   /*-------------------------------------------------------------------------*/
//
// Our constructor, load words, load skin, 
//
/*-------------------------------------------------------------------------*/

   function auto_run()
   {

       $this->ipsclass->load_template('skin_global');


       $this->base_url    = $this->ipsclass->base_url;
       $this->base_url_NS = "{$this->ipsclass->vars['board_url']}/index.{$this->ipsclass->vars['php_ext']}";

       //-----------------------------------------
	// What to do?
	//-----------------------------------------
		$this->show_form();

}


function show_form()
{

	$ip = "localhost";
	$port = 8000;
	$echo_radio = "";
	$fp = fsockopen($ip, $port, $errno, $errstr, 30);
	if(!$fp)
       {
		$echo_radio="<tr><td class=\"row1\"   align=\"center\"  colspan='4'>Сбой, зайдите позже</td></tr>";
            }

	if($fp){
	fputs($fp,"GET /status2.xsl HTTP/1.0\r\nUser-Agent: Icecast2 XSL Parser (Mozilla Compatible)\r\n\r\n");
	while(!feof($fp)) {
		$page .= fgets($fp, 1000);
	}
	fclose($fp);
	$page = ereg_replace(".*Source: ,,,,", "", $page);
	$page = ereg_replace("</pre>.*", ",", $page);
	$i=0;
	$listeners=0;
	$numbers = explode(",",$page);
	for($name_r=2 , $mount=0, $count_r=3; $name_r<count($numbers)-1; $name_r+=6 , $mount+=6, $count_r+=6)
             {
	$echo_radio .= "<tr><td class=\"row1\" align=\"center\" width=\"50%\"><a href=\"http://city.brovary.net:$port$numbers[$mount].m3u\" style='text-decoration:none'>".ereg_replace(".*/", "", $numbers[$mount])."</a></td>\n"
		."<td class=\"row1\" align=\"center\"><a href=\"http://city.brovary.net:$port$numbers[$mount].m3u\">Слушать</a></td>\n"
		."<td class=\"row1\" align=\"center\">$numbers[$count_r]</td>\n"
		."</tr>\n";

	$i=count($numbers)/6;
	$listeners=$listeners+$numbers[$count_r];
                                                             }
	$echo_radio_all=substr($i,0,strpos($i,"."));
	$echo_radio_list=$listeners;
	}
	$this->output = $this->ipsclass->compiled_templates['skin_global']->radio($echo_radio_all,$echo_radio_list,$echo_radio);

	$this->page_title  = "On-Line Радио";

	$this->nav         = array ( "<a href='{$this->base_url}'>{$this->forum['name']}</a>",  "<a href='.$this->base_url.'></a>", "On-Line Радио" );

	$this->ipsclass->print->add_output("$this->output");
       $this->ipsclass->print->do_output( array( 'TITLE' => $this->page_title, 'JS' => 0, NAV => $this->nav ) );

}

}

?> 

В index.php после

				 'component'  => array( 'component'		  , 'component'	, array() ),

добавить

				 "radio"	  => array( "radio"			  , 'radio' 		  , array() ),

 

В skin_global добавить шаблон radio (Входящие переменные - $radio_all=0,$radio_list=0,$radio="")

	<div class="borderwrap">
	<div class="maintitle"><{CAT_IMG}> Радио Brovary.net</div>

	<table class='ipbtable' cellspacing="0" align="center">
		<tr>
			<td class="subtitle" width="50%" align="center"><b>Радиостанций</b></td>
			<td class="subtitle" width="50%" align="center"><b>Всего слушателей</b></td>
		</tr>
		<tr>
			<td class="row1"  width="50%" align="center">{$radio_all}</td>
			<td class="row1" width="50%"  align="center">{$radio_list}</td>
		</tr>
	</table>
	<table class='ipbtable' cellspacing="0" align="center">
		<tr>
			<td class="subtitle" align="center" width="50%"><b>Название</b></td>
							<td class="subtitle" align="center"><b> </b></td>
			<td class="subtitle" align="center"><b>Слушают</b></td>
		</tr>
{$radio}
	</table>

	</div>

 

ну вот и все....в файле radio.php указываеться IP и порт Icecast сервера

 

всё сделал как написано. неработает

Ссылка на комментарий
Поделиться на других сайтах

  • 7 месяцев спустя...
/sources/action_public/radio.php

<?php



/*

|   > Written by Frike

|   > Date started: 05.03.2007

|

|   > Module Version Number: 1.0.0

|   

+--------------------------------------------------------------------------

*/





if ( ! defined( 'IN_IPB' ) )

{

    print "<h1>Некорректный адрес</h1>Вы не имеете доступа к этому файлу напрямую. Если вы недавно обновляли форум, вы должны обновить все соответствующие файлы.";

    exit();

}



class radio

{

    var $ipsclass;

    var $output    = "";

    var $base_url  = "";

    var $html      = "";





    

    /*-------------------------------------------------------------------------*/

    //

    // Our constructor, load words, load skin, 

    //

    /*-------------------------------------------------------------------------*/

    

    function auto_run()

    {



        $this->ipsclass->load_template('skin_global');

        

      

        $this->base_url    = $this->ipsclass->base_url;

        $this->base_url_NS = "{$this->ipsclass->vars['board_url']}/index.{$this->ipsclass->vars['php_ext']}";

        

        //-----------------------------------------

        // What to do?

        //-----------------------------------------

            $this->show_form();



    }

    



    function show_form()

    {

        

        $ip = "localhost";

        $port = 8000;

        $echo_radio = "";

        $fp = fsockopen($ip, $port, $errno, $errstr, 30);

        if(!$fp)

        {

            $echo_radio="<tr><td class=\"row1\"   align=\"center\"  colspan='4'>Сбой, зайдите позже</td></tr>";

             }



        if($fp){

        fputs($fp,"GET /status2.xsl HTTP/1.0\r\nUser-Agent: Icecast2 XSL Parser (Mozilla Compatible)\r\n\r\n");

        while(!feof($fp)) {

            $page .= fgets($fp, 1000);

        }

        fclose($fp);

        $page = ereg_replace(".*Source: ,,,,", "", $page);

        $page = ereg_replace("</pre>.*", ",", $page);

        $i=0;

        $listeners=0;

        $numbers = explode(",",$page);

        for($name_r=2 , $mount=0, $count_r=3; $name_r<count($numbers)-1; $name_r+=6 , $mount+=6, $count_r+=6)

              {

        $echo_radio .= "<tr><td class=\"row1\" align=\"center\" width=\"50%\"><a href=\"http://city.brovary.net:$port$numbers[$mount].m3u\" style='text-decoration:none'>".ereg_replace(".*/", "", $numbers[$mount])."</a></td>\n"

            ."<td class=\"row1\" align=\"center\"><a href=\"http://city.brovary.net:$port$numbers[$mount].m3u\">Слушать</a></td>\n"

            ."<td class=\"row1\" align=\"center\">$numbers[$count_r]</td>\n"

            ."</tr>\n";



        $i=count($numbers)/6;

        $listeners=$listeners+$numbers[$count_r];

                                                              }

        $echo_radio_all=substr($i,0,strpos($i,"."));

        $echo_radio_list=$listeners;

        }

        $this->output = $this->ipsclass->compiled_templates['skin_global']->radio($echo_radio_all,$echo_radio_list,$echo_radio);

        

        $this->page_title  = "On-Line Радио";

        

        $this->nav         = array ( "<a href='{$this->base_url}'>{$this->forum['name']}</a>",  "<a href='.$this->base_url.'></a>", "On-Line Радио" );

        

        $this->ipsclass->print->add_output("$this->output");

        $this->ipsclass->print->do_output( array( 'TITLE' => $this->page_title, 'JS' => 0, NAV => $this->nav ) );

        

    }



}



?>

В index.php после

                 'component'  => array( 'component'          , 'component'    , array() ),

добавить

                 "radio"      => array( "radio"              , 'radio'           , array() ),

 

В skin_global добавить шаблон radio (Входящие переменные - $radio_all=0,$radio_list=0,$radio="")

    <div class="borderwrap">

        <div class="maintitle"><{CAT_IMG}> Радио Brovary.net</div>



        <table class='ipbtable' cellspacing="0" align="center">

            <tr>

                <td class="subtitle" width="50%" align="center"><b>Радиостанций</b></td>

                <td class="subtitle" width="50%" align="center"><b>Всего слушателей</b></td>

            </tr>

            <tr>

                <td class="row1"  width="50%" align="center">{$radio_all}</td>

                <td class="row1" width="50%"  align="center">{$radio_list}</td>

            </tr>

        </table>

        <table class='ipbtable' cellspacing="0" align="center">

            <tr>

                <td class="subtitle" align="center" width="50%"><b>Название</b></td>

                                <td class="subtitle" align="center"><b> </b></td>

                <td class="subtitle" align="center"><b>Слушают</b></td>

            </tr>

{$radio}

        </table>

        

        </div>

 

ну вот и все....в файле radio.php указываеться IP и порт Icecast сервера

Большое спасибо. Всё работает кроме количества радиостанций :D

Ссылка на комментарий
Поделиться на других сайтах

  • 9 месяцев спустя...
под 2.3.1 попробовал, не прокатило... могу я попросить Вас изменить мод под версию 2.3.1 ?
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.