RSS и Minishop
Здравствуйте!
Понадобилось экспортировать сайт с minishop2 в ВК через RSS. При таком экспорте текста в группе публикуется совсем немного, поэтому вся надежда на картинки. Вот здесь, замечательная статья про экспорт Tickets в RSS. На практике всё хорошо работает, ВК съедает и текст и картинки.
Теперь понадобилось экспортировать и ресурсы Minishop2. Можно было бы вполне обойтись pdoResources и чанком вида:
Так же пробовал использовать &element=`msProducts`, что бы с его помощью подтянуть картинки через например [[+thumb]], но наладить дело не удалось. К тому же, необходима полноразмерная картинка или большое превью — тогда в ВК всё смотрится достойно.
Ещё теоретически есть вариант использовать вот такое решение.
Пока реализовать не удалось, не уверен что одно с другим связывается.
Буду благодарен за совет или ориентир в правильном направлении!
Особенно если решение будет универсальным, ввиду того, что встречаются ресурсы без минишопа, то есть обычные обычные, но там используется галерея MsGallery2.
Понадобилось экспортировать сайт с minishop2 в ВК через RSS. При таком экспорте текста в группе публикуется совсем немного, поэтому вся надежда на картинки. Вот здесь, замечательная статья про экспорт Tickets в RSS. На практике всё хорошо работает, ВК съедает и текст и картинки.
Теперь понадобилось экспортировать и ресурсы Minishop2. Можно было бы вполне обойтись pdoResources и чанком вида:
<item>
<title>[[+pagetitle:cdata]]</title>
<link>[[++site_url]][[~[[+id]]]]</link>
<description>
[[+content:striptags=`<p>`:ellipsis=`600`:cdata]]
</description>
<enclosure url="[[++site_url]][[+tv.image]]" type="image/jpeg" />
<pubDate>[[+publishedon:ShowDateEn]] +0600</pubDate>
<guid isPermaLink="false">[[++site_url]][[~[[+id]]]]</guid>
</item>
Но вот беда, не очень понятно как переместить первую картинку галереи минишопа в TV, и нужно ли это вообще делать. Может уже есть штатные средства?Так же пробовал использовать &element=`msProducts`, что бы с его помощью подтянуть картинки через например [[+thumb]], но наладить дело не удалось. К тому же, необходима полноразмерная картинка или большое превью — тогда в ВК всё смотрится достойно.
Ещё теоретически есть вариант использовать вот такое решение.
Пока реализовать не удалось, не уверен что одно с другим связывается.
Буду благодарен за совет или ориентир в правильном направлении!
Особенно если решение будет универсальным, ввиду того, что встречаются ресурсы без минишопа, то есть обычные обычные, но там используется галерея MsGallery2.
Комментарии: 5
Самое простое решение — вызвать msProducts в xml-шаблоне со своим чанком. Просто взять из стандартного чанка:
{if $thumb?}
<img src="{$thumb}" alt="{$pagetitle}" title="{$pagetitle}"/>
{else}
<img src="{'assets_url' | option}components/minishop2/img/web/ms2_small.png"
srcset="{'assets_url' | option}components/minishop2/img/web/ms2_small@2x.png 2x"
alt="{$pagetitle}" title="{$pagetitle}"/>
{/if}
И кроме того есть возможность выбрать нужный вариант картинок. ВК, насколько помню, любит картинки размером 500+ px.
Алексей, благодарю за отклик! Но я не совсем понял как реализовать ваш совет (хотя пытался).
В xml-шаблоне у меня следующее
В xml-шаблоне у меня следующее
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>[[!+title]] / [[++site_name]]</title>
<link>[[~[[*id]]?scheme=`full`]][[+params]]</link>
<description>[[*description:cdata]]</description>
<language>ru</language>
<copyright></copyright>
<ttl>120</ttl>
<atom:link href="[[~[[*id]]?scheme=`full`]][[+params]]" rel="self" type="application/rss+xml" />
[[!pdoResources?
&element=`msProducts`
&tpl=`rssItem`
&limit=`10`
&parents=`3`
&depth=`3`
&sortby=`publishedon`
&sortdir=`DESC`
&showHidden=`1`
&hideContainers=`1`
&includeContent=`1`
&includeThumbs=`640x480`
]]
</channel>
</rss>
В чанке:<item>
<title>[[+pagetitle:cdata]]</title>
<link>[[++site_url]][[~[[+id]]]]</link>
<description>
[[+content:striptags=`<p>`:ellipsis=`600`:cdata]]
</description>
<enclosure url="[[+640x480]]" type="image/jpeg" />
<pubDate>[[+publishedon:ShowDateEn]] +0600</pubDate>
<guid isPermaLink="false">[[++site_url]][[~[[+id]]]]</guid>
</item>
То есть, msProducts пытаюсь вызвать. Спасибо!
Имелось в виду вызвать именно msProducts самостоятельно — без pdoResources. Потому что:
msProductsи
Сниппет для вывода товаров.
Сниппет msProducts, как и все сниппеты miniShop2, использует pdoTools для работы. Поэтому все основные его параметры совпадают с pdoResources, но есть и особенности.В первую очередь:
Сниппет msProducts сразу присоединяет несколько связанных таблиц товара, позволяя вам получать данные из них без лишних запросов.К тому же Василий написал:
Конечно, вы можете пользоваться pdoResources для вывода каталога, но msProducts делает это гораздо лучше.Потому что.
В конечном итоге работает такая конструкция
При всём при этом, FireFox никак не хочет видеть разметку, а вот Opera видит нормально (хотя и не преобразует). Но зато ВК видит нормально, что в общем то целью и является.
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>[[!+title]] / [[++site_name]]</title>
<link>[[++site_url]]rss.xml</link>
<description>[[*description]]</description>
<language>ru</language>
<copyright></copyright>
<ttl>120</ttl>
<atom:link href="[[++site_url]]rss.xml" rel="self" type="application/rss+xml" />
[[!msProducts?
&includeContent=`1`
&hideContainers=`1`
&tpl=`rssItem`
&limit=`10`
&parents=`3`
&depth=`3`
&sortby=`publishedon`
&sortdir=`DESC`
&includeThumbs=`640x480`
]]
</channel>
</rss>
— <item>
<title>[[+pagetitle]]</title>
<link>[[++site_url]][[~[[+id]]]]</link>
<description>
[[+content:striptags=`<p>`:ellipsis=`600`:cdata]]
</description>
<enclosure url="https://site.ru[[+640x480]]" type="image/jpeg" />
<pubDate>[[+publishedon:date=`%a, %d %b %Y %H:%M:%S %z`]]</pubDate>
<guid>[[++site_url]][[~[[+id]]]]</guid>
</item>
Вместо !msProducts? также работает !pdoPage?&element=`msProducts`, но первый вариант действительно лучше.При всём при этом, FireFox никак не хочет видеть разметку, а вот Opera видит нормально (хотя и не преобразует). Но зато ВК видит нормально, что в общем то целью и является.
upd
FireFox не отображал из-за нестандартных кавычек. То есть, в заголовке когда ставлю обычные кавычки («заголовок») — все отлично отображается
FireFox не отображал из-за нестандартных кавычек. То есть, в заголовке когда ставлю обычные кавычки («заголовок») — все отлично отображается
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.