<?
/*
=====================================
Модуль для DATA LIFE ENGINE
=====================================
Назначение: ТВ-программа v2
=====================================
Автор: BDSoft
Сайт: http://myws.ru/
Пример работы:
http://myws.ru/tv-program
ICQ: 1-454-461
E-mail: mywsru@gmail.ru
=====================================
=====================================================================
Если хотите убрать ссылку "Модули для DLE"
обращайтесь в ICQ: 1-454-461 или Емайл: mywsru@gmail.com
Также можно заказать модули и любые другие скрипты на
php, обращайтесь по выше указанным контактам.
Если Вы нашли баг или придумали как можно доработать данный
модуль пишите в комментарии
на странице http://myws.ru/dle/modulesfordle/tvprogv2.html
=====================================================================
*/
if(!defined('DATALIFEENGINE'))
{
die("Попытка взлома!");
}
// НАСТРОЙКИ
// кешировать телепрограмму даже если отключено кэшироание на сайте
// внимание! отключение кэширование приводит к блокировке доступа скрипта к tv.mail.ru
// true - кешировать телепрограмму
// false - не кешировать
$cache_tvprog = true;
// КОНЕЦ НАСТРОЕК
function bds_get_code($file) {
$data = false;
echo '<!--обновлено-->';
if (function_exists('curl_init')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $file);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$data = curl_exec($ch);
curl_close($ch);
} else {
$data = @file_get_contents($file);
}
if ($data) return $data; else return false;
}
if (isset ($_REQUEST['open'])) $open = $_REQUEST['open']; else $open = "";
if (isset ($_REQUEST['channel'])) $channel = $_REQUEST['channel']; else $channel = "1";
if (isset ($_REQUEST['date'])) $date = $_REQUEST['date']; else $date = date("Y-m-d");
if (isset ($_REQUEST['programm'])) $programm = $_REQUEST['programm']; else $programm = "";
$module_name = basename(dirname(__FILE__));
$mmpage_title = "TV-Программа";
$mmpage_keywords = 'TV-Программа, телеканал, МТВ, MTV, телепередач, программа, телепередачь, телевизионая, програма, тв-программа, тв, программа на следующюю неделю';
$mmpage_description = 'TV-Программа, все каналы';
$index = 1;
$mmpage_text ='';
function index() {
global $module_name, $date, $channel, $mmpage_title, $mmpage_text, $period,$config,$cache_tvprog;
// $date0 = date("Y-m-d");
if (isset($_REQUEST['dayadd'])) {
if ($_REQUEST['dayadd']==0) $date = date("Y-m-d");
if ($_REQUEST['dayadd']==1) $date = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+1, date("Y")));
if ($_REQUEST['dayadd']==2) $date = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+2, date("Y")));
} else $dayadd=-1;
if ($cache_tvprog)
{
$config_allow_cache_bds = $config['allow_cache'];
$config['allow_cache'] = "yes";
}
$RetrieveFile = dle_cache("tv-program", md5($channel.$date));
if ($RetrieveFile)if (time()+1200<@filemtime (ENGINE_DIR.'/cache/tv-program_'.md5($channel.$date).'.tmp'))$RetrieveFile=false;
if (!strpos(file_get_contents(__FILE__),"6d7977"."732e7275")) die ();
if (!$RetrieveFile) {$RetrieveFile = bds_get_code("http://tv.mail.ru/?period=3&channel=".$channel."&date=".$date);
create_cache ("tv-program", $RetrieveFile, md5($channel.$date));
}
if ($cache_tvprog) $config['allow_cache'] = $config_allow_cache_bds;
$RetrieveFile = preg_replace('/<script[^>]*?>.*?<\/script[\s]*>/si','',$RetrieveFile);
eregi("(<select.*</select>)",$RetrieveFile,$dataprint);
$dataprint[1] = str_replace("<option value=\"0\">все настроенные</option>","",$dataprint[1]);
if ($config['allow_alt_url'] == "yes"){
$mmpage_text.='
<table width="100%">
<tr>
<td width="135" valign="top"><br /><br /><table>
<tr>
<td><a href=/tv-program/'.$date.'/1/><img src="/img/tv/channel/8304.gif" border="0" align="middle" width="35" height="35" alt="Первый"></td>
<td><a href=/tv-program/'.$date.'/1/>Первый</td>
</tr>
<tr>
<td><a href=/tv-program/'.$date.'/2/><img src="/img/tv/channel/17748.gif" border="0" align="middle" width="35" height="35" alt="Россия"></td>
<td><a href=/tv-program/'.$date.'/2/> Россия</td>
</tr>
<tr>
<td><a href=/tv-program/'.$date.'/3/><img src="/img/tv/channel/8306.gif" width="35" height="35" border="0" align="middle" alt="ТВЦ"></td>
<td><a href=/tv-program/'.$date.'/3/> ТВЦ</td>
</tr>
<tr>
<td><a href=/tv-program/'.$date.'/4/><img src="/img/tv/channel/18206.gif" width="35" height="35" border="0" align="middle" alt="НТВ"></td>
<td><a href=/tv-program/'.$date.'/4/> НТВ</td>
</tr>
<tr>
<td><a href=/tv-program/'.$date.'/5/><img src="/img/tv/channel/17749.gif" width="35" height="35" border="0" align="middle" alt="Культура"></td>
<td><a href=/tv-program/'.$date.'/5/> Культура</td>
</tr>
<tr>
<td><a href=/tv-program/'.$date.'/235/><img src="/img/tv/channel/19068.gif" width="35" height="35" border="0" align="middle" alt="Спорт"></td>
<td><a href=/tv-program/'.$date.'/235/> Спорт</td>
</tr>
<tr>
<td><a href=/tv-program/'.$date.'/101/><img src="/img/tv/channel/8312.gif" width="35" height="35" border="0" align="middle" alt="ТНТ"></td>
<td><a href=/tv-program/'.$date.'/101/> ТНТ</td>
</tr>
<tr>
<td><a href=/tv-program/'.$date.'/103/><img src="/img/tv/channel/8314.gif" width="35" height="35" border="0" align="middle" alt="REN TV"></td>
<td><a href=/tv-program/'.$date.'/103/> REN TV</td>
</tr>
<tr>
<td><a href=/tv-program/'.$date.'/104/><img src="/img/tv/channel/8315.gif" width="35" height="35" border="0" align="middle" alt="СТС - Москва"></td>
<td><a href=/tv-program/'.$date.'/104/> СТС - Москва</td>
</tr>
<tr>
<td><a href=/tv-program/'.$date.'/105/><img src="/img/tv/channel/8894.gif" width="35" height="35" border="0" align="middle" alt="ТВ-3 Россия"></td>
<td><a href=/tv-program/'.$date.'/105/> ТВ-3 Россия</td>
</tr>
<tr>
<td><a href=/tv-program/'.$date.'/107/><img src="/img/tv/channel/18228.gif" width="35" height="35" border="0" align="middle" alt="МTV"></td>
<td><a href=/tv-program/'.$date.'/107/> МTV</td>
</tr>
<tr>
<td><a href=/tv-program/'.$date.'/108/><img src="/img/tv/channel/8319.gif" width="35" height="35" border="0" align="middle" alt="Муз ТВ"></td>
<td><a href=/tv-program/'.$date.'/108/> Муз ТВ</td>
</tr>
<tr>
<td><a href=/tv-program/'.$date.'/109/><img src="/img/tv/channel/18018.gif" width="35" height="35" border="0" align="middle" alt="ДТВ"></td>
<td><a href=/tv-program/'.$date.'/109/> ДТВ</td>
</tr>
<tr>
<td><a href=/tv-program/'.$date.'/208/><img src="/img/tv/channel/17753.gif" width="35" height="35" border="0" align="middle" alt="EuroNews"></td>
<td><a href=/tv-program/'.$date.'/208/> EuroNews</td>
</tr>
</table></td>
<td><h3>Телепрограмма на '.$date.' число</h3>';
$mmpage_text.= "<form action=/tv-program/ method=\"post\"><b>Выберите дату и <br>нужный вам канал:</b><br>
<select name=\"dayadd\" style=\"width:100%\">
<option value=\"-1\" selected>".$date."</option>
<option value=\"0\">на сегодня</option>
<option value=\"1\">на завтра</option>
<option value=\"2\">на послезавтра</option>
</select><br><br>";
$mmpage_text.= $dataprint[1];
$mmpage_text.= "<br><input type=\"hidden\" name=\"ch\" value=\"$channel\">
<input type=\"hidden\" name=\"_day\" value=\"$dayadd\">
<br><input type=\"submit\" value=\"Посмотреть\"></form>";
}
else
{
$mmpage_text.='
<table width="100%">
<tr>
<td width="135" valign="top"><br><hr><table>
<tr>
<td><a href=/?do=tv-program&date='.$date.'&channel=1><img src="/img/tv/channel/8304.gif" border="0" align="middle" width="35" height="35" alt="Первый"></td>
<td><a href=/?do=tv-program&date='.$date.'&channel=1>Первый</td>
</tr>
<tr>
<td><a href=/?do=tv-program&date='.$date.'&channel=2><img src="/img/tv/channel/17748.gif" border="0" align="middle" width="35" height="35" alt="Россия"></td>
<td><a href=/?do=tv-program&date='.$date.'&channel=2> Россия</td>
</tr>
<tr>
<td><a href=/?do=tv-program&date='.$date.'&channel=3><img src="/img/tv/channel/8306.gif" width="35" height="35" border="0" align="middle" alt="ТВЦ"></td>
<td><a href=/?do=tv-program&date='.$date.'&channel=3> ТВЦ</td>
</tr>
<tr>
<td><a href=/?do=tv-program&date='.$date.'&channel=4><img src="/img/tv/channel/18206.gif" width="35" height="35" border="0" align="middle" alt="НТВ"></td>
<td><a href=/?do=tv-program&date='.$date.'&channel=4> НТВ</td>
</tr>
<tr>
<td><a href=/?do=tv-program&date='.$date.'&channel=5><img src="/img/tv/channel/17749.gif" width="35" height="35" border="0" align="middle" alt="Культура"></td>
<td><a href=/?do=tv-program&date='.$date.'&channel=5> Культура</td>
</tr>
<tr>
<td><a href=/?do=tv-program&date='.$date.'&channel=235><img src="/img/tv/channel/19068.gif" width="35" height="35" border="0" align="middle" alt="Спорт"></td>
<td><a href=/?do=tv-program&date='.$date.'&channel=235> Спорт</td>
</tr>
<tr>
<td><a href=/?do=tv-program&date='.$date.'&channel=101><img src="/img/tv/channel/8312.gif" width="35" height="35" border="0" align="middle" alt="ТНТ"></td>
<td><a href=/?do=tv-program&date='.$date.'&channel=101> ТНТ</td>
</tr>
<tr>
<td><a href=/?do=tv-program&date='.$date.'&channel=103><img src="/img/tv/channel/8314.gif" width="35" height="35" border="0" align="middle" alt="REN TV"></td>
<td><a href=/?do=tv-program&date='.$date.'&channel=103> REN TV</td>
</tr>
<tr>
<td><a href=/?do=tv-program&date='.$date.'&channel=104><img src="/img/tv/channel/8315.gif" width="35" height="35" border="0" align="middle" alt="СТС - Москва"></td>
<td><a href=/?do=tv-program&date='.$date.'&channel=104> СТС - Москва</td>
</tr>
<tr>
<td><a href=/?do=tv-program&date='.$date.'&channel=105><img src="/img/tv/channel/8894.gif" width="35" height="35" border="0" align="middle" alt="ТВ-3 Россия"></td>
<td><a href=/?do=tv-program&date='.$date.'&channel=105> ТВ-3 Россия</td>
</tr>
<tr>
<td><a href=/?do=tv-program&date='.$date.'&channel=107><img src="/img/tv/channel/18228.gif" width="35" height="35" border="0" align="middle" alt="МTV"></td>
<td><a href=/?do=tv-program&date='.$date.'&channel=107> МTV</td>
</tr>
<tr>
<td><a href=/?do=tv-program&date='.$date.'&channel=108><img src="/img/tv/channel/8319.gif" width="35" height="35" border="0" align="middle" alt="Муз ТВ"></td>
<td><a href=/?do=tv-program&date='.$date.'&channel=108> Муз ТВ</td>
</tr>
<tr>
<td><a href=/?do=tv-program&date='.$date.'&channel=109><img src="/img/tv/channel/18018.gif" width="35" height="35" border="0" align="middle" alt="ДТВ"></td>
<td><a href=/?do=tv-program&date='.$date.'&channel=109> ДТВ</td>
</tr>
<tr>
<td><a href=/?do=tv-program&date='.$date.'&channel=208><img src="/img/tv/channel/17753.gif" width="35" height="35" border="0" align="middle" alt="EuroNews"></td>
<td><a href=/?do=tv-program&date='.$date.'&channel=208> EuroNews</td>
</tr>
</table><hr></td>
<td><h3>Телепрограмма на '.$date.' число</h3>';
$mmpage_text.= "<form action=/?do=tv-program method=\"post\"><b>Выберите дату и <br>нужный вам канал:</b><br>
<select name=\"dayadd\" style=\"width:100%\">
<option value=\"-1\" selected>".$date."</option>
<option value=\"0\">на сегодня</option>
<option value=\"1\">на завтра</option>
<option value=\"2\">на послезавтра</option>
</select><br><br>";
$mmpage_text.= $dataprint[1];
$mmpage_text.= "<br><input type=\"hidden\" name=\"ch\" value=\"$channel\">
<input type=\"hidden\" name=\"_day\" value=\"$dayadd\">
<br><input type=\"submit\" value=\"Посмотреть\"></form>";
}
if (eregi("(<!-- START: Programm Content -->.*<!-- END: Programm Content -->)",$RetrieveFile,$dataprint)) {
if ($config['allow_alt_url'] == "yes"){
$dataprint[1] = str_replace("href=\"?zone=5&channels=1,2,3,4,101,103,104,235&types=1","href=\"/tv-program/1,2,3,4,101,103,104,235",$dataprint[1]);
$dataprint[1] = str_replace("&period=3&programmtype=","",$dataprint[1]);
$dataprint[1] = str_replace("date=","",$dataprint[1]);
$dataprint[1] = str_replace("&programm=","/",$dataprint[1]);
$dataprint[1] = str_replace("href=\"/info.html?","href=\"/tv-program/info/",$dataprint[1]);
$dataprint[1] = str_replace("&gosetup=1","",$dataprint[1]);
$dataprint[1] = str_replace("/?gosetup=1&","/tv-program/",$dataprint[1]);
}
else
{
$dataprint[1] = str_replace("href=\"?zone=5&channels=1,2,3,4,101,103,104,235&types=1","href=\"/tv-program/1,2,3,4,101,103,104,235",$dataprint[1]);
$dataprint[1] = str_replace("&period=3&programmtype=","",$dataprint[1]);
$dataprint[1] = str_replace("date=","&date=",$dataprint[1]);
//$dataprint[1] = str_replace("&programm=","/",$dataprint[1]);
$dataprint[1] = str_replace("href=\"/info.html?","href=\"?do=tv-program&open=info",$dataprint[1]);
$dataprint[1] = str_replace("&gosetup=1","",$dataprint[1]);
$dataprint[1] = str_replace("/?gosetup=1&","/?do=tv-program",$dataprint[1]);
}
$dataprint[1] = str_replace("&period=3","",$dataprint[1]);
$dataprint[1] = str_replace("src=\"/img/","src=\"img/tv/",$dataprint[1]);
$dataprint[1] = str_replace("src=\"http://img.tv.mail.ru/img/","src=\"img/tv/",$dataprint[1]);
$dataprint[1] = str_replace("class=prico>","class=prico> ",$dataprint[1]);
$dataprint[1] = str_replace("class=grey>","style=\"color: #C2C2C2\"> ",$dataprint[1]);
$dataprint[1] = str_replace("<table cellspacing=0 cellpadding=0 border=0>","<table cellspacing=2 cellpadding=2 border=0>",$dataprint[1]);
$dataprint[1] = preg_replace('/<div class=mb15>.*?<\/div[\s]*>/si','',$dataprint[1]);
$dataprint[1] = preg_replace('/Телепрограмма на этот день »/si','',$dataprint[1]);
}
$mmpage_text.= $dataprint[1]."</td></tr></table>";
//$mmpage_text.= "<br /><a href=\"/tv-program/".date("Y-m-d")."/\"><b>Телепрограмма на сегодня »</b></a>";
}
function info($date,$programm) {
global $module_name, $mmpage_title, $mmpage_text,$config,$cache_tvprog;
$link = "http://tv.mail.ru/info.html?gosetup=1&programm=".$programm."&date=".$date;
if ($cache_tvprog)
{
$config_allow_cache_bds = $config['allow_cache'];
$config['allow_cache'] = "yes";
}
$page = dle_cache("tv-program_info", md5($programm.$date));
if (!$page) {
$page = bds_get_code($link);
create_cache ("tv-program_info", $page, md5($programm.$date));
}
if ($cache_tvprog) $config['allow_cache'] = $config_allow_cache_bds;
$page = ereg_replace("(.*)<!-- BEGIN: MainCell -->", "", $page);
$page = ereg_replace("<!-- START: Programm Content -->(.*)", "", $page);
$page = str_replace("<table ","<table width=100% ",$page);
$page = str_replace("<a href=\"print_i.html?","<!--",$page);
$page = str_replace("alt=\"Версия для печати\"></a>","-->",$page);
$page = str_replace("gosetup=1&","",$page);
if ($config['allow_alt_url'] == "yes")
{
$page = str_replace("/?date=","/tv-program/",$page);
$page = str_replace("&period=3&channel=","/",$page);
}
else
{
$page = str_replace("/?date=","/?do=tv-program&date=",$page);
$page = str_replace("&period=3&channel=","&channel=",$page);
}
$page = str_replace(' class=phone><img src="http://tv.mail.ru/img/ico_phone.gif" width=16 height=16 border=0 align=absmiddle alt="SMS-уведомление" style="margin-right:5px">',' target="_blank" class=phone><img src="http://tv.mail.ru/img/ico_phone.gif" width=16 height=16 border=0 align=absmiddle alt="SMS-уведомление" style="margin-right:5px">',$page);
$page = str_replace('<a href="http://r.mail.ru/cln3048/tv.mail.ru/smsremind.html?programm=8981151" target="_blank" class=phone><img src="http://tv.mail.ru/img/ico_phone.gif" width=16 height=16 border=0 align=absmiddle alt="SMS-уведомление" style="margin-right:5px">Напомнить мне об этой передаче</a>','',$page);
$page = str_replace("width=100% width=100%","width=100%",$page);
$mmpage_text.= '<!-- OPEN -->
<table width=100% cellspacing=0 cellpadding=0 border=0 class="tvinfo"><tr>
'.$page.'
</td></tr></table><!-- END -->';
}
switch($open) {
case 'info':
info($date,$programm);
break;
default:
index();
break;
}
$metatags['title']='Телепрограмма';
$metatags['keywords']=$mmpage_keywords;
$metatags['description']=$mmpage_description;
$mnpage_taxt = '
<style type="text/css">
<!--
#tvprog .tvinfo img {
padding-right: 10px;
text-align:left;
}
#tvprog .time{
padding:0px 10px 2px 0px;
}
#tvprog .tvinfo h3 {
font-size:9px;
}
-->
</style>
<div id="tvprog">'.$mmpage_text.pack("H*",'3c64697620636c6173733d22747662746d22207374796c653d22746578742d616c69676e3a63656e7465723b207669736962696c6974793a76697369626c653b2070616464696e672d746f703a31303070783b20646973706c61793a20626c6f636b3b223e3c61207374796c653d227669736962696c6974793a76697369626c653b20646973706c61793a20636f6d706163743b2220687265663d22687474703a2f2f6d7977732e72752f22207461726765743d225f626c616e6b223e2623313035323b2623313038363b2623313037363b2623313039313b2623313038333b2623313038303b202623313037363b2623313038333b2623313130333b20444c453c2f613e3c2f6469763e').'</div>';
$tpl->load_template('static.tpl');
$tpl->set('{description}',$mmpage_title);
$tpl->set('{static}',$mnpage_taxt);
$tpl->compile('content');
$tpl->clear();
?>