Хак хак RSS для Яндекс новостей

Тема в разделе "DLE", создана пользователем esencija, 6 фев 2007.

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

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

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

    esencija Прохожие

    с офф сайта, есть у кого?
     
  2. noway

    noway Создатель

    Регистр.:
    12 янв 2007
    Сообщения:
    19
    Симпатии:
    9
    Ща выложу. Мне ссылки не дает форум постить. Пишу этот пост для этого. Набираю одно сообщение. Не знаю, где там в коде ссылку нашел...

    Добавлено через 42 секунды
    Назначение модуля: Данный хак позволяет привести вывод ваших новостей в RSS канал в соответствии с техническими требованиями поисковой системы Яндекс Новости, что позволит добавить ваш сайт для индексации в системе Яндекс Новости. Это модификация уже существующего хака, который совместим с версией 5.2.

    Совместимые версии: 5.2

    Данный мод публикуется только для клиентов.

    Установка модуля:

    Откройте файл engine/rss.php и найдите:
    Код:
    <?xml version="1.0" encoding="windows-1251"?>
    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    заменить на:
    Код:
    <?xml version="1.0" encoding="windows-1251"?>
    <rss version="2.0" xmlns="http://backend.userland.com/rss2" xmlns:yandex="http://news.yandex.ru">
    Далее в этом же файле найдите:
    Код:
    <description>{$config['home_title']}</description>
    Ниже добавьте
    Код:
    <image>
    <url>{$config['http_home_url']}yandexlogo.gif</url>
    <title>{$config['home_title']}</title>
    <link>{$config['http_home_url']}</link>
    </image>
    Откройте файл engine/modules/show.short.php и найдите:
    Код:
    $tpl->set('{short-story}', stripslashes("<div id='news-id-".$row['id']."'>".$row['short_story']."</div>"));
    Ниже добавьте
    Код:
    if ($view_template == "rss") {
    
    $rssfull = htmlspecialchars(strip_tags(stripslashes($row['full_story'])));
    $rssshort =htmlspecialchars(strip_tags(stripslashes($row['short_story'])));
    
    if ($rssfull == "") $rssfull = $rssshort;
    
    $tpl->set('{short-rss}', $rssshort);
    
    $tpl->set('{full-rss}', $rssfull);
    }
    Откройте файл engine/engine.php и найдите:
    Код:
    // ################ Новости на главной #################
        if ($year == '' AND $month == '' AND $day == '') {
            if ($cstart){
            $cstart = $cstart - 1;
            $cstart = $cstart * $config['news_number'];}
    
        $url_page = substr($config['http_home_url'], 0, strlen ($config['http_home_url'])-1);
    
            if (isset($view_template) AND $view_template == "rss") {
    
                $sql_select = "SELECT id, autor, date, short_story, full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read FROM " . PREFIX . "_post WHERE {$stop_list}approve = '1' AND allow_main = '1' AND date < '$thisdate' order by ".$config['news_sort']." ".$config['news_msort']." LIMIT ".$cstart.",".$config['news_number'];
                $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}approve = '1' AND allow_main = '1' AND date < '$thisdate'";
    
            } else {
    
                $sql_select = "SELECT id, autor, date, short_story, full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read FROM " . PREFIX . "_post WHERE {$stop_list}approve = '1' AND allow_main = '1' AND date < '$thisdate' order by fixed desc, ".$config['news_sort']." ".$config['news_msort']." LIMIT ".$cstart.",".$config['news_number'];
                $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}approve = '1' AND allow_main = '1' AND date < '$thisdate'";
    
            }
        }
    заменить на:
    Код:
    // ################ Новости на главной #################
        if ($year == '' AND $month == '' AND $day == '') {
            if ($cstart){
            $cstart = $cstart - 1;
            $cstart = $cstart * $config['news_number'];}
    
        $url_page = substr($config['http_home_url'], 0, strlen ($config['http_home_url'])-1);
    
            if (isset($view_template) AND $view_template == "rss") {
    
                $sql_select = "SELECT id, autor, date, short_story, full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read FROM " . PREFIX . "_post WHERE {$stop_list}approve = '1' AND date < '$thisdate' order by ".$config['news_sort']." ".$config['news_msort']." LIMIT ".$cstart.",".$config['news_number'];
                $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}approve = '1' AND date < '$thisdate'";
    
            } else {
    
                $sql_select = "SELECT id, autor, date, short_story, full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read FROM " . PREFIX . "_post WHERE {$stop_list}approve = '1' AND allow_main = '1' AND date < '$thisdate' order by fixed desc, ".$config['news_sort']." ".$config['news_msort']." LIMIT ".$cstart.",".$config['news_number'];
                $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}approve = '1' AND allow_main = '1' AND date < '$thisdate'";
    
            }
        }
    Полностью замените файл шаблона templates/rss.tpl на текст:
    Код:
    <item>
    <title>{title}</title>
    <link>{rsslink}</link>
    <description>{short-rss}</description>
    <category>{category}</category>
    <author>{rssauthor}</author>
    <pubDate>{rssdate}</pubDate>
    <yandex:full-text>{full-rss}</yandex:full-text>
    </item>
    В корневую папку вашего сайта поместите файл yandexlogo.gif это ваш логотип на Яндексе.

    Все теперь вас RSS полностью отвечает техническим требованиям системы Яндекс Новости
     
    $aSH и kachi нравится это.
Статус темы:
Закрыта.