Помощь Модуль телепрограммы

Тема в разделе "DLE", создана пользователем ksana, 2 апр 2011.

Информация :
Актуальная версия DataLife Engine 12.0
( Final Release v.12.0 | Скачать DataLife Engine | Скачать 12.0 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.3 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. ksana

    ksana

    Регистр.:
    15 июл 2008
    Сообщения:
    160
    Симпатии:
    15
    Нашла модуль телепрограммы для дле.

    Модуль рабочий, но, к сожалению, на версии 9.2 он выводит вверху страницы список ошибок:


    PHP:
    Deprecated: Function ereg_replace() is deprecated in X:/home/sait/www/engine/modules/tv.php on line 111 
    Deprecated
    : Function ereg_replace() is deprecated in X:/home/sait/www/engine/modules/tv.php on line 115 
    Deprecated
    : Function ereg_replace() is deprecated in X:/home/sait/www/engine/modules/tv.php on line 116 
    Deprecated
    : Function ereg_replace() is deprecated in X:/home/sait/www/engine/modules/tv.php on line 117
    Может, есть заинтересованные в работе модуля, которые помогут избавиться от ошибок?


    Перейти по ссылке
     
  2. ksana

    ksana

    Регистр.:
    15 июл 2008
    Сообщения:
    160
    Симпатии:
    15
    Я так полагаю, что этот модуль не для версии 9.2, а для какой то из более ранних версий.

    Может кто нибудь переделать его?
     
  3. Doctor_zlo

    Doctor_zlo

    Moderator
    Регистр.:
    25 апр 2008
    Сообщения:
    464
    Симпатии:
    1.027
    Это не от версии DLE а от php 5.3 понизьте версию php или отключите вывод ошибок в php.ini или вместо ereg_replace использовать preg_replace
     
    ksana нравится это.
  4. ksana

    ksana

    Регистр.:
    15 июл 2008
    Сообщения:
    160
    Симпатии:
    15
    В каком файле можно заменить ereg_replace на preg_replace ?
    Я не очень в этом разбираюсь.
     
  5. Vadim5000

    Vadim5000

    Регистр.:
    8 окт 2007
    Сообщения:
    402
    Симпатии:
    56
    Вам же написали

    Эта переменная доступна на уровне администрирования сервера
     
  6. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.035
    Симпатии:
    703
    tv.php больше там негде менять
    PHP:
    <?php
    if( ! defined'DATALIFEENGINE' ) ) {
        die( 
    "Hacking attempt!" );
    }


    /*
    $defcountry = 1;         #Страна по умолчанию 1 = Россия, 2 = Украина
    $cache_allow = 1;        #Кеширование
    */
    $defcountry $config['tv_country'];
    $cache_allow $config['tv_cache'];

    function 
    check_screen($image)
    {
    $url "http://tv.mail.ru/".$image;
    $Headers = @get_headers($url);
        if(
    preg_match("|200|"$Headers[0]))
        return 
    1;
        else
        return 
    0;
    }

    //**********************************************************************
    // Фильтрация входящих данных
    //**********************************************************************
    if(isset($_REQUEST['country'])) $country trim(strip_tags($_REQUEST['country']));
    if(isset(
    $_REQUEST['channel'])) $channel intval($_REQUEST['channel']);
    if(isset(
    $_REQUEST['date'])) $date $_REQUEST['date'];
    if(isset(
    $_REQUEST['period'])) $period  intval($_REQUEST['period']);
    if(isset(
    $_REQUEST['programm'])) $programm intval($_REQUEST['programm']);
    if (!
    preg_match('!(\d+)-(\d+)-(\d+)!ism',$date)) $date '';
    if(isset(
    $_REQUEST['act'])) $act trim(strip_tags($_REQUEST['act']));
    if(
    $act and $act != 'showinfo'$act '';
    //**********************************************************************
    // Генерация главной страницы модуля
    //**********************************************************************
    if($act != 'showinfo' OR !$act)
    {
        
    $uastr  'zone=63&savesetup=1&channelsetup.303=1&channelsetup.304=1&channelsetup.305=1&channelsetup.306=1&channelsetup.307=1&channelsetup.308=1&channelsetup.311=1&channelsetup.319=1&channelsetup.320=1&channelsetup.321=1&typesetup.1=1&typesetup.4=1&typesetup.2=1&typesetup.10=1&typesetup.3=1&typesetup.20=1&typesetup.5=1';
        if(
    $defcountry == 1)
        {
        if(!
    $country OR $country =="" OR ($country AND $country =="")) { $switchto ''$switchmain ''; }
        if(
    $country AND $country =="ua")
        {
        
    $switchto $uastr;
        
    $desc '?';
        
    $and '&';
        
    $descto 'country=ua';
        } else { 
    $switchto ''$desc ''$and=''; }
        }
        else
        {
        if(!
    $country OR $country =="" OR ($country AND $country ==""))
            {
            
    $switchto $uastr;
            
    $desc '?';
            
    $and '&';
            
    $descto '';
            }
            if(
    $country AND $country =="rus")
            {
            
    $switchto '';
            
    $desc '?';
            
    $and '&';
            
    $descto 'country=rus';
            } else
            {
            
    $switchto $uastr;
            
    $desc '?';
            
    $and '&';
            
    $descto '';
            }
        }

        if(!
    $channel and !$date and !$period$file 'http://tv.mail.ru/'.$desc.$switchto;
        elseif(!
    $channel and !$date and $period$file 'http://tv.mail.ru/?period='.$period.'&'.$switchto;
        elseif(!
    $channel and $date and !$period$file 'http://tv.mail.ru/?date='.$date.'&'.$switchto;
        elseif(!
    $channel and $date and $period)  $file 'http://tv.mail.ru/?date='.$date.'&period='.$period.'&'.$switchto;
        elseif(
    $channel and !$date and !$period$file 'http://tv.mail.ru/?channel='.$channel.'&'.$switchto;
        elseif(
    $channel and !$date and $period)  $file 'http://tv.mail.ru/?channel='.$channel.'&period='.$period.'&'.$switchto;
        elseif(
    $channel and $date and !$period)  $file 'http://tv.mail.ru/?channel='.$channel.'&date='.$date.'&'.$switchto;
        elseif(
    $channel and $date and $period)   $file 'http://tv.mail.ru/?channel='.$channel.'&period='.$period.'&date='.$date.'&'.$switchto;

        @
    $txt file_get_contents($file);
        
    $p1=strpos($txt,"<!-- START: Programm Content -->");
        
    $p2=strpos($txt,"<!-- END: Programm Content -->");
        
    $content substr($txt,$p1,$p2-$p1);
        
    $content str_replace('info.html?''?do=tv&act=showinfo&'$content);
        
    $content preg_replace('/<script[^>]*?>.*?<\/script[\s]*>/si','',$content);
        
    $content str_replace('&gosetup=1'''$content);
        
    $content str_replace('?gosetup=1''?do=tv'.$and.$descto$content);
        
    $content str_replace('info.html?''?do=tv&act=showinfo&'$content);
        
    $content preg_replace('~<span class="nowrap t70">.*</span>~siU','',$content);
        
    $content str_replace('img/channel/''{THEME}/images/tv/channel/'$content);
        
    $content str_replace('img/programmtype/''{THEME}/images/tv/programmtype/'$content);
        
    $content str_replace('/img/rate''{THEME}/images/tv/rate/rate'$content);
        
    $content preg_replace('~<span class="nowrap t70">.*</span>~siU','',$content);
        
    $content preg_replace("(.*)Рейтинг:&nbsp;"""$content);
        
    $content str_replace('Афиша@Mail.Ru'''$content);
        
    $content str_replace('&&''&'$content);

        
    $pbuf preg_replace("(.*)<table cellpadding=0 cellspacing=0 width=100%>""<table cellpadding=0 cellspacing=0 width=100%>"$txt);
        
    $pbuf preg_replace("<!-- START: Programm Content -->(.*)"""$pbuf);
        
    $pbuf preg_replace("<td align=right>(.*)alt=\"Версия для печати\"></a></td>"""$pbuf);
        
    $pbuf str_replace('http://img.mail.ru''img/tv'$pbuf);
        
    $pbuf str_replace('/?date=''/?do=tv&date='$pbuf);
        
    $pbuf str_replace('?gosetup=1''?do=tv'$pbuf);
        
    $pbuf str_replace('&gosetup=1'''$pbuf);
        if(
    $defcountry == OR ($country and $country='rus')) $pbuf str_replace('?do=tv''?do=tv'.$and.$descto$pbuf);
        else 
    $pbuf str_replace('?do=tv''?do=tv'.$descto$pbuf);
        if(
    $defcountry == 1)
        {
            if(
    $country AND $country =="ua")
            {
                
    $pbuf str_replace('?period''?do=tv&country=ua&period'$pbuf);
                
    $pbuf str_replace('?channel''?do=tv&country=ua&channel'$pbuf);
            }
            else
            {
                
    $pbuf str_replace('?period''?do=tv&period'$pbuf);
                
    $pbuf str_replace('?channel''?do=tv&channel'$pbuf);
            }
        }
        else
        {
            if(
    $country AND $country =="rus")
            {
                
    $pbuf str_replace('?period''?do=tv&country=rus&period'$pbuf);
                
    $pbuf str_replace('?channel''?do=tv&country=rus&channel'$pbuf);
            }
            else
            {
                
    $pbuf str_replace('?period''?do=tv&period'$pbuf);
                
    $pbuf str_replace('?channel''?do=tv&channel'$pbuf);
            }

        }
        
    $pbuf str_replace('img/''{THEME}/images/tv/'$pbuf);
        
    $tpl->load_template('tv_days_panel.tpl');
        
    $tpl->set('{panel}'$pbuf);
        
    $tpl->compile('tvpanel');
        
    $tpl->clear();

        
    $tpl->load_template('tv_content_main.tpl');
        
    $tpl->set('{channel_programm}'$content);
        
    $tpl->compile('tvcontent');
        
    $tpl->clear();
    }
    //**********************************************************************
    // Генерация Описания фильма, передачи и и.д
    //**********************************************************************
    elseif($act AND $act == 'showinfo')
    {
        if(
    $cache_allow == 1)
        {
        
    $config['allow_cache'] = "yes";
        }
        
    $tpl->result['tvcontent'] = dle_cache"tv"$programm );

        if(!
    $tpl->result['tvcontent'])
        {
        
    $file 'http://tv.mail.ru/info.html?programm='.$programm;

        @
    $txt file_get_contents($file);
        
    $p1=strpos($txt,"<!-- BEGIN: MainCell -->");
        
    $p2=strpos($txt,"<!-- END: MainCell -->");
        
    $content substr($txt,$p1,$p2-$p1);
        
    $content str_replace('?gosetup=1''?do=tv'$content);
        
    $content str_replace('&gosetup=1'''$content);
        
    $content str_replace('info.html?''?act=showinfo&'$content);
        
    $content preg_replace('/<script[^>]*?>.*?<\/script[\s]*>/si','',$content);
        
    $content preg_replace("<div class=\"grhr mb10\">(.*))</span></div>"""$content);
        
    $title preg_replace("<span class=\"remind\">(.*)</a></span>"""$content);
        
    $title preg_replace("<!-- BEGIN: MainCell -->(.*)class=mb5>"""$title);
        
    $title trim(strip_tags($title));
        
    $content str_replace('                    </h1>''<!-- EDEL -->'$content);
        
    $content preg_replace("<!-- BEGIN: MainCell -->(.*)<!-- EDEL -->"""$content);
        
    $content str_replace('<div class="rating mb5">'''$content);
        
    $content str_replace('?gosetup=1''?do=tv'$content);
        
    $content str_replace('?act=showinfo''?do=tv&act=showinfo'$content);
        
    preg_match("|<div class=prde>(.*)<a href=\"print_i.html|is",$content$info);
        
    preg_match('!img/channel/(\d+).gif!ism',$content$num_c);
        if(
    $dalee_related[0] == "")
        
    preg_match('~(<h2 class=chna>.*</table>)~siU',$content$dalee_related);

        
    $dalee_related[0] = str_replace('<div class="grhr">&nbsp;</div>'''$dalee_related[0]);
        
    $content preg_replace("(.*)Рейтинг:&nbsp;"""$content);
        
    $content preg_replace('/<div class=mb15>.*?<\/div[\s]*>/si','',$content);
        
    $content preg_replace("<a href=\"print_i.html?(.*)alt=\"Версия для печати\"></a>"""$content);
        
    $content str_replace("gosetup=1&","",$content);
        
    $content str_replace('Афиша@Mail.Ru'''$content);
        
    $content str_replace('img/channel/''{THEME}/images/tv/channel/'$content);
        
    $content str_replace('img/programmtype/''{THEME}/images/tv/programmtype/'$content);
        
    $content str_replace('img/rate''{THEME}/images/tv/rate/rate'$content);
        
    $content preg_replace('~<span class="nowrap t70">.*</span>~siU','',$content);

        
    preg_match("|<p class=t75>(.*)</p>|is",$content$sub_content);
        
    preg_match('|<img(.*) src="([^"]*)"[^>]*>|is'$sub_content[0], $pic);
        if(
    check_screen($pic[2]) AND $pic[2] !=""$screen '<img src="http://tv.mail.ru/'.$pic[2].'">';
        else 
    $screen '<img src="{THEME}/images/tv/noscreen.png">';
        
    $description trim(strip_tags($sub_content[0]));

        if(
    strpos($description'В ролях:'))
        {
        
    $parts_info explode('В ролях:'$description);
        
    $actors trim($parts_info[1]);
        
    $parts_info2 explode('Режиссер:'$description);
        
    $parts_info3 explode('Производство:'$description);
        
    $production trim($parts_info3[1]);
        
    $actors preg_replace("Производство:(.*)"""$actors);
        
    $actors preg_replace("Режиссер:(.*)"""$actors);
        
    $regisser preg_replace("Производство:(.*)"""$regisser);
        
    $description preg_replace("В ролях:(.*)"""$description);
        }
        if(
    strpos($description'Ведущие:'))
        {
        
    $parts_info explode('Ведущие:'$description);
        
    $vedushie trim($parts_info[1]);
        
    $parts_info2 explode('Производство:'$description);
        
    $production trim($parts_info2[1]);
        
    $vedushie preg_replace("Производство:(.*)"""$vedushie);
        
    $description preg_replace("Ведущие:(.*)"""$description);
        }
        if(
    strpos($description'Ведущий:'))
        {
        
    $parts_info explode('Ведущий:'$description);
        
    $vedushi trim($parts_info[1]);
        
    $parts_info2 explode('Производство:'$description);
        
    $production trim($parts_info2[1]);
        
    $vedushie preg_replace("Производство:(.*)"""$vedushie);
        
    $description preg_replace("Ведущий:(.*)"""$description);
        }
        
    $ch_image '<img src="{THEME}/images/tv/channel/'.$num_c[1].'.gif">';

        
    $info explode(','$info[0]);
        
    $channel_name trim($info[0]);
        
    $date_num trim(strip_tags($info[1]));
        
    $date_day trim(strip_tags($info[2]));
        
    $date_hours trim(strip_tags($info[3]));


        
    $tpl->load_template('tv_description.tpl');
        
    $tpl->set('{title}'$title);
        
    $tpl->set('{channel_name}'$channel_name);
        
    $tpl->set('{date_day}'$date_num);
        
    $tpl->set('{date_weekday}'$date_day);
        
    $tpl->set('{date_hours}'$date_hours);
        
    $tpl->set('{channel_icon}'$ch_image);
        
    $tpl->set('{description}'$description);
        
    $tpl->set('{screenshot}'$screen);
        
    $tpl->set('{actors}'$actors);
        
    $tpl->set('{vedushie}'$vedushie);
        
    $tpl->set('{vedushi}'$vedushi);
        
    $tpl->set('{production}'$production);
        
    $tpl->set('{regisser}'$production);
        
    $tpl->set('{year}'$year);
        
    $tpl->set('{related}'$dalee_related[0]);

        if(
    $actors == "")
        
    $tpl->set_block"'\\[actors\\](.*?)\\[/actors\\]'si""" );
        else
        {
        
    $tpl->set('[actors]''');
        
    $tpl->set('[/actors]''');
        }
        if(
    $vedushie == "")
        
    $tpl->set_block"'\\[vedushie\\](.*?)\\[/vedushie\\]'si""" );
        else
        {
        
    $tpl->set('[vedushie]''');
        
    $tpl->set('[/vedushie]''');
        }
        if(
    $production == "")
        
    $tpl->set_block"'\\[production\\](.*?)\\[/production\\]'si""" );
        else
        {
        
    $tpl->set('[production]''');
        
    $tpl->set('[/production]''');
        }
        if(
    $year == "")
        
    $tpl->set_block"'\\[year\\](.*?)\\[/year\\]'si""" );
        else
        {
        
    $tpl->set('[year]''');
        
    $tpl->set('[/year]''');
        }
        if(
    $vedushi == "")
        
    $tpl->set_block"'\\[vedushi\\](.*?)\\[/vedushi\\]'si""" );
        else
        {
        
    $tpl->set('[vedushi]''');
        
    $tpl->set('[/vedushi]''');
        }

        
    $tpl->compile('tvcontent');
        
    $tpl->clear();
        
    create_cache"tv"$tpl->result['tvcontent'], $programm );
        }
        else
        {
        
    $file 'http://tv.mail.ru/info.html?programm='.$programm;
        
    preg_match('|<title>Афиша@Mail.Ru: Телепрограмма: (.*):(.*)</title>|mi'file_get_contents($file), $result);
        
    $title trim($result[2]);
        
    $channel_name trim($result[1]);
        }

    }
    if(
    $country AND $country =="ua" OR ($defcountry != AND $country =="ua") OR ($defcountry != AND !$country))
    {
    if(!
    $country)
    {
    $tpl->load_template('tv_selector_ua.tpl');
    $tpl->copy_template "<form  action=\"{$config['http_home_url']}?do=tv\" method=\"get\">".$tpl->copy_template."
    <input type=\"hidden\" name=\"do\" value=\"tv\"></form>"
    ;
    }
    else
    {
    $tpl->load_template('tv_selector_ua.tpl');
    $tpl->copy_template "<form  action=\"{$config['http_home_url']}?do=tv\" method=\"get\">".$tpl->copy_template."
    <input type=\"hidden\" name=\"do\" value=\"tv\">
    <input type=\"hidden\" name=\"country\" value=\"ua\">
    </form>"
    ;
    }
    $tpl->compile('selector');
    $tpl->clear();

    }
    else
    {
    if(!
    $country)
    {
    $tpl->load_template('tv_selector_rus.tpl');
    $tpl->copy_template "<form  action={$config['http_home_url']}?do=tv method=\"get\">".$tpl->copy_template."
    <input type=\"hidden\" name=\"do\" value=\"tv\"></form>"
    ;
    }
    else
    {
    $tpl->load_template('tv_selector_rus.tpl');
    $tpl->copy_template "<form  action={$config['http_home_url']}?do=tv method=\"get\">".$tpl->copy_template."
    <input type=\"hidden\" name=\"do\" value=\"tv\">
    <input type=\"hidden\" name=\"country\" value=\"rus\">
    </form>"
    ;
    }
    $tpl->compile('selector');
    $tpl->clear();

    }
    if(
    $defcountry == 1)
    {
        
    $ua_link $config['http_home_url'].'?do=tv&country=ua';
        
    $rus_link $config['http_home_url'].'?do=tv';
    }
    if(
    $defcountry != 1)
    {
        
    $ua_link $config['http_home_url'].'?do=tv';
        
    $rus_link $config['http_home_url'].'?do=tv&country=rus';
    }

    $tpl->load_template('tv_page.tpl');
    if(
    $tpl->result['tvpanel'] != ""$tpl->set('{panel}'$tpl->result['tvpanel']);
    else 
    $tpl->set('{panel}''');
    if(
    $tpl->result['tvcontent'] != ""$tpl->set('{programm}'$tpl->result['tvcontent']);
    else 
    $tpl->set('{programm}''');
    $tpl->set('{selector}'$tpl->result['selector']);
    $tpl->set('[rus-link]'"<a href=\"$rus_link\">");
    $tpl->set('[/rus-link]'"</a>");
    $tpl->set('[ua-link]'"<a href=\"$ua_link\">");
    $tpl->set('[/ua-link]'"</a>");
    $tpl->compile('content');
    $tpl->clear();
    ?>
    был у меня раньше этот модуль но помоему он сейчас полное описание программы не парсит и есть проблема с кэшированием майл.ру часто банит по ip адресу
     
    ksana нравится это.
  7. ksana

    ksana

    Регистр.:
    15 июл 2008
    Сообщения:
    160
    Симпатии:
    15
    zzallexx, этот модуль действительно не парсит описание программ полностью, просто другого я не нашла.

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

    А что делать, чтобы сайт-донор не забанил по ip адресу?
     
Статус темы:
Закрыта.