YML для сайта на CMS MODx в юникоде
Yandex Маркет почему то отказывается принимать XML в UTF-8. Ну а если сайт на MODx в кодировке UTF-8 то и xml получается на выходе в юникоде. Вообщем не беда , перекодируем.
Для работоспособности этого кода необходимо установить PHx. Проверьте конфигурацию PHP на предмет наличия рабочей функции iconv
1) Создаём докумет с шаблоном "(blank)" ,Тип содержимого = "text/xml" и следующим содержимым: (Описание на стандарт YML ищите на ... Яндексе )
-
- <?xml version="1.0" encoding="windows-1251"?>
-
- <shop>
- <name>Мой магазин</name>
- <company>ООО Рога и копыта</company>
- <url>[(site_url)]</url>
-
- <currencies>
- <currency id="RUR" rate="1"/>
- </currencies>
-
- <categories>
- [!Ditto? &id=`category` &parents=`XXX` &depth=`0` &display=`all` &filter=`isfolder,1,1` &tpl=`yml-category-tpl`!]
- </categories>
-
- <offers>
-
- [!Ditto? &id=`yml` &parents=`XXX` &depth=`0` &display=`all` &tpl=`yml_tpl` &paginate=`0` &showPublishedOnly=`1` &hidefolder=`1` &tagData=`tvyandex-yml` &tags=`1` !]
-
- </offers>
- </shop>
- </yml_catalog>
-
Вместо XXX вставляем id папок где хранятся продукты.
2) Создаём следующие TV и назначаем их соответствующему шаблону:
price - текстовое поле (цена)
vendorcode - текстовое поле (название произодителя)
yandex-yml - Check box, Возможные значения "Да==1" , Значение по умолчанию "Нет==0"
yml-image - текстовое поле ( путь к картинке )
3) Создаём чанк {{yml_tpl}}
-
- <offer id="[+id+]" available="true">
- <url>[(site_url)][~[+id+]~]</url>
- <price>[+price+]</price>
- <currencyId>RUR</currencyId>
- <categoryId>[+parent+]</categoryId>
- <picture>[+tvyml-image:ifnotempty=`[(site_url)][+yml-image+]`+]</picture>
- <delivery>true</delivery>
- <name>[+pagetitle:notags+]</name>
- <vendorCode>[+vendorcode+]</vendorCode>
-
- <description>
- [+introtext:notags+]
- </description>
- </offer>
-
4) Создаём чанк {{yml-category-tpl}}
-
- <category id="[+id+]"> [+pagetitle+] </category>
-
5) Создаём файлик shop.php и помещаем его, например, в корень сайта.
Содержимое следующее:
-
- <?php
- $contents = '';
- }
-
- ?>
-
Меняем домен сайта и вместо YYY вставляем id документа, куда помещали код с вызовами Ditto.
Открываем в FF http://мой домен.ru/shop.php и проверяем свойства страницы.
Ну осталось только пробежаться по страничкам и проставить галки на против yandex-yml.
Write a comment