16.10.13, 13:18
0 комментарий
  DLE Модули

Текстовый рейтинг с Кинопоиска и IMDB

Модуль выводит текстовые средние значения рейтинга и голосов с Кинопоиска и IMDB. Данные не кешируются!

Установка:

Создайте доп. поле к новостям с фильмами:
Название поля: kp
Описание поля: ID фильма на КиноПоиске
Категория: /*выбрать категории с фильмами*/
Тип поля: одна строка
Значение по умолчанию

Создайте файл kinopoisk.php с таким содержимым:




<?                                                

if( ! defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}

    $kinopoisk = xfieldsdataload($row['xfields']);
    $kinopoisk['kp'] = preg_replace('#<(.+?)>#', '', $kinopoisk['kp']);
    
    $kinopoisk = $kinopoisk['kp'];
    
    $rating = file_get_contents("http://rating.kinopoisk.ru/{$kinopoisk}.xml");

    preg_match("/kp_rating num_vote=['"](.+)['"]>(.+)</isU", $rating, $kp);
    $kino_rating = $kp[2];
    $kino_votes = ($kino_rating) ? $kp[1] : "";
    $kino_votes = $kino_votes;

    preg_match("/imdb_rating num_vote=['"](.+)['"]>(.+)</isU", $rating, $imdb);
    $imdb_rating = $imdb[2];
    $imdb_votes = ($imdb_rating) ? $imdb[1] : "";
    $imdb_votes = $imdb_votes;

    if     ($imdb_rating =='') {

        $kino_rate = round(($kino_rating), 1);
        $sum_vote = number_format($kino_votes);
        
    } elseif ($kino_rating =='') {
    
        $kino_rate = round(($imdb_rating), 1);
        $sum_vote = number_format($imdb_votes);
        
    } else {

        $kino_rate = round(($kino_rating+$imdb_rating)/2, 1);
        $sum_vote = number_format(($kino_votes+$imdb_votes)/2);
        
    };

$tpl->set('{kinopoisk}', $kino_rate);
$tpl->set('{kinopoisk_vote}', $sum_vote);

?>


И поместите его к себе в /engine/modules

В файле show.full.php добавьте:

require_once ROOT_DIR.'/engine/modules/kinopoisk.php';


После:

$tpl->set( '[/full-link]', "</a>" );


Используйте в своем fullstory.tpl:

{kinopoisk} - цифровой рейтинг
{kinopoisk_vote} - количество голосов

Напишите своё мнение