Перейти к публикации

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

№1

Первое что вам необходимо сделать это скопировать файл rss.php в папке /engine/, и назовем его например yandex_rss.php.

Далее открываем файл yandex_rss.php и находим в файле строчку:

$config['allow_cache'] = true;
и заменяем ее на
$config['rss_format'] = "2";

$config['allow_cache'] = false;
В настройках скрипта вы устанавливаете обычный формат RSS потока: простой или полный. Все теперь при обращению по адресу http://mysite.ru/engine/yandex_rss.php будет выводится RSS поток соответствующий системе Яндекс новости, для обычных посетителей которые обращаются по адресу http://mysite.ru/rss.xml будет выводится стандартный RSS поток №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 полностью отвечает техническим требованиям системы Яндекс Новости

КАК СДЕЛАТЬ ЧТОБ ВСЕ РАБОТАЛО КАК НАДО?

У меня нет /Шаблон/rss.tpl (это не проблема), но если его сделать, то он будет использоваться для всех каналов, а формат яндекс новостей не подходит для рамблера! Не повредят ли изменения в engine.php?

М.б. инфа устарела и есть другой способ?

Мой сайт

Изменено пользователем Konkyr
Ссылка на сообщение
Поделиться на других сайтах

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

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

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

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

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

×
×
  • Создать...