Konkyr 1 Опубликовано: 12 октября 2010 Рассказать Опубликовано: 12 октября 2010 (изменено) №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? М.б. инфа устарела и есть другой способ? Мой сайт Изменено 12 октября 2010 пользователем Konkyr Цитата Ссылка на сообщение Поделиться на других сайтах
Konkyr 1 Опубликовано: 13 октября 2010 Рассказать Опубликовано: 13 октября 2010 Автор Меня интересует отдельный канал для Яндекс новостей Цитата Ссылка на сообщение Поделиться на других сайтах
Konkyr 1 Опубликовано: 14 октября 2010 Рассказать Опубликовано: 14 октября 2010 Автор Господа, для меня тема очень актуальна. Убедительная просьба, хоть ссылку киньте, где прочитать Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.