Вторая rss лента на DLE

Зачем нужна вторая rss лента? На этот вопрос нельзя ответить однозначно.  У каждого владельца сайта на DataLife Engine могут быть разные причины. В моем же случае, заказ сайта был с такими требованиями: Первая лента – трансляция в Яндекс-Новости, а вторая для социальных сетей.

В админке Движка DLE на странице Настройка системы –> Настройка RSS экспорта новостей в графе Формат экспорта RSS потока можно выбрать три варианта:

  • Простой - выводит только текст новости без форматирования
  • Полный - выводит весь текст новости с сохранением форматирования и картинок
  • Яндекс новости - выводит текст в формате необходимом для интеграции сайта в систему Яндекс новости

Для интеграции в систему Яндекс новости единственный правильный вариант это последний, но в этом случае в ленте отсутствуют изображения, а в соц. сетях без картинки новости смотрятся очень скудно. Поэтому и понадобился второй - Полный rss-поток.

Итак, задача поставлена, как её решить?

1. Заходим на сайт по FTP в папку engine и находим файл rss.php – именно он отвечает за вывод ленты новостей на сайте.

2. Копируем и даем какое-то человеческое имя, например rss2.php. Не оригинально? Ну и что? 🙂

3. Затем изменяем под наши потребности. Для этого открываем в редакторе, я использую Notepad++, и после include ENGINE_DIR . '/data/config.php'; на 27 строке добавляем

$config['rss_mtype'] = 0;

$config['rss_format'] = Формат экспорта;

где вместо Формат экспорта пишем цифру 0 или 1 или 2. Которым соответствуют:

0 - Простой выводит
1 - Полный - выводит
2 - Выводит Яндекс новости

4. Вроде бы всё, да не совсем. Если залить файл в таком виде, то возникает конфликт кеширования. Если закешировало основную ленту, то во второй будет выдавать ошибку. И наоборот, если закешировало вторую, то в первой будет выдавать ошибку. Поэтому ищем на 117 строке $config['allow_cache'] = true; и меняем на

$config['allow_cache'] = false;

5. Теперь всё. Сохраняем и заливам в туже папку engine.

Вторая rss-лента доступна по адресу http://Ваш-сайт.ru/engine/rss2.php. Конечно можно ещё отредактировать файл .htaccess для редиректа на более короткий адрес, соответствующий оригинальной ленте http://Ваш-сайт.ru/rss2.xml. Для этого в .htaccess нужно добавить запись:

RewriteRule ^rss2.xml$ engine/rss2.php [L]

Таким образом, на сайте DLE можно настроить три rss-потока соответствующие настройкам в самом движке:

0 - Простой выводит
1 - Полный - выводит
2 - Выводит Яндекс новости

Поделиться с друзьями
Яковенко Андрей

Занимаюсь разработкой сайтов на cms WordPress, Joomla, DLE, OpenCart с 2011 года.
На данный момент занимаюсь клиентской поддержкой, доработками сайтов. А так же даю консультации и уроки по работе с этими cms.

Оцените автора
Yakovenko&Co
Добавить комментарий

  1. Мария

    Подскажите, можно ли отредактировать стандартный файл rss.xml? Мне нужно изменить список рубрик, которые уходят в рсс-поток.

    Ответить
    1. Яковенко Андрей автор

      Конечно можно! Но есть более простой способ, в настройках DLE Настройка параметров скрипта -> Настройка RSS экспорта новостей -> Тип экспорта основного RSS потока выбрать Только опубликованные на главной. И для определенной категории запретить вывод новостей на главной.