Импорт новостей в формат YML средствами движка DLE

Импорт новостей в формат YML средствами движка DLE

Выбрав в 2006 году DLE в качестве платформы для разработки сайтов все еще не пожалел. В том числе из-за шикарного шаблонизатора, благодаря которому с минимальными знаниями основ программирования любой начинающий вебмастер может адаптировать под себя внешний вид своего проекта. В данной статье будут описаны принципы создания шаблона в формате XML для дальнейшей самостоятельной модификации. Стоит обратить внимание, что у каждого сайта свой набор полей, их можно и нужно прописывать в шаблоны самостоятельно. Я лишь показываю, что штатными средствами движка DLE можно генерировать XML файлы которые будут корректно обработаны при импорте на внешние сайты.


Стандартный RSS поток DLE формируется на основе шаблона tempates/rss.tpl и содержит в себе отдельные секции вывода информации в зависимости от настроек шаблона:
  • Обычный RSS поток
  • В формате Яндекс-Турбо
  • В формате Яндекс Новости

Все три этих варианта объединены единой оберткой описанной в файле engine/rss.php:
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru" version="2.0">
<channel>
....
</channel>
</rss>

И именно в этом проблема, почему нельзя получить правильный YML формат для товарного фида Яндекс Маркета. Тоже самое для автоматического импорта новостей для Avito.

Но все как оказалось решается штатными средствами движка - мы просто создаем новый шаблон для определенной категории сайта и именно его адрес в качестве ссылки на YML отдаем Яндексу.

Готовые шаблоны импорта в формате YML и в формате XML для Avito можно скачать в конце этой статьи.

Что такое YML (Yandex Market Language) формат и зачем он нужен сайту.
О формате YML вы можете прочитать тут. Стандарт YML разработан Яндексом и основан на стандарте XML. Формат YML предоставляет больше возможностей и преимуществ, чем форматы XLS, CSV. Типовой пример в формате .yml

Нам данный формат интересен для создания Яндекс Турбо страниц интернет-магазинов. Заходим в свой кабинет на Яндекс Вебмастере и ищем раздел «Турбо-страницы для интернет-магазинов»:



Общая инструкция по подключению от Яндекса находится тут.

Главное, без чего не будет произведен импорт - это цена товара. Если ваш сайт на DLE используется в том числе для создания витрины товаров, то отдельное дополнительное поле с ценой у вас скорее всего уже есть. После подключения турбо-страниц для магазинов у вас получиться что-то типа:



И так, примеры шаблонов скачены и установлены на сайт. Остается добавить (при необходимости) нужные дополнительные поля. Для этого переходим Настройки скрипта > Дополнительные поля новостей. Добавить в разделе дополнительных полей новостей следующие поля:



Либо по FTP открыть engine/data/xfields.txt и дописать в самый конец:
xml2tpl_io-yml|Включить вывод в формат YML||yesorno||0|0|0|0|||0|0|||||0|Если выключено - Данная новость не попадает в товарный фид||||||||
xml2tpl_io-avito|Включить вывод в формат Avito.ru||yesorno||0|0|0|0|||0|0|||||0|Если выключено - Данная новость не попадает в товарный фид||||||||
xml2tpl_price|Цена для xml2tpl||text||1|0|0|1|||0|0||||||Используется для импорта в форматы YML и Avito||||||||
xml2tpl_currencyid|Валюта, в которой указана цена товара для xml2tpl||select|RUR__NEWL__USD__NEWL__EUR__NEWL__BYN__NEWL__KZT__NEWL__UAH|0|0|0|0|||0|0||||||Цена и валюта должны соответствовать друг другу. Например, вместе с USD надо указывать цену в долларах, а не в рублях.||||||||
xml2tpl_vendor|Название производителя  для xml2tpl||text||1|0|0|1|||0|0||||||||||||||
xml2tpl_vendorcode|Код товара, который ему присвоил производитель  для xml2tpl||text||1|0|0|1|||0|0||||||||||||||

После чего при редактировании новостей появятся новые поля для корректного заполнения товарного фида:


Следующим шагом вам потребуется создать новую категорию сайта и в ее настройках выбрать в секции Установить другой шаблон для категории: шаблон с именем xml2yml для товарного фида YML:



Или шаблон с именем xml2avitoru для импорта объявлений на Avito:



Так же рекомендуется установить в настройках категории запрет на поиск по сайту и отключить генерацию яндекс турбо страниц:



Далее получаем ссылки на категории сайтов внутри которых у нас формируются новости. Для демонстрации работы я сделал 2 таких категории https://tcse-cms.com/archive/xml2yml/ для формата YML:



И https://tcse-cms.com/archive/xml2avitoru/ для Avito:



Переходим в Яндекс Вебмастер и добавляем ссылку на источник:



Тестируем правильность фида:


Там же можно посмотреть предварительную версию:



Примерно так же все происходит и с форматом импорта на Avito.ru. Сам фид можно протестировать на соответствие перейдя по этой ссылке.



Стоит обратить внимание, что у каждого сайта свой набор полей, их можно и нужно прописывать в шаблоны самостоятельно. Я лишь показал, что штатными средствами движка DLE можно генерировать XML файлы которые будут корректно обработаны при импорте на внешние сайты.



Готовые шаблоны импорта в виде плагина:
import-novostej-v-format-yml-sredstvami-dvizhka-dle-xml2tpl.zip
Создайте аккаунт или авторизуйтесь для скачивания


 
Автор: TCSE
Источник
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.