Изображение для RSS турбо-страниц
Здравствуйте!
Никак не могу получить изображение для вставки в шапку турбо-страницы через RSS.
Нужно изображение из хедера страницы, которое вставляется туда с помощью кода:
RSS генерю с помощью общеизвестного способа в чанке:
Никак не могу получить изображение для вставки в шапку турбо-страницы через RSS.
Нужно изображение из хедера страницы, которое вставляется туда с помощью кода:
{set $image = $_modx->runSnippet('ms2Gallery', ['tpl' => '@INLINE {$files.0.header}','limit' => 1, 'sortby' => 'rank'])}
<figure class="listar-featuredimg">{$image ? "<img src=\"{$image}\" alt=\"{$_modx->resource.pagetitle}\">" : ""}</figure>
Пример страницы turlog.ru/travel-notes/czvetyi-ludorvaya.htmlRSS генерю с помощью общеизвестного способа в чанке:
<item turbo="true">
<link>{$_modx->config.site_url ~ $id | url}</link>
<title>{'!rssText' | snippet : [ 'cnt' => ( $longtitle ?: $pagetitle ) ]}</title>
<pubDate>{$publishedon | date : 'D, d M Y G:i:s +0300'}</pubDate>
<turbo:content>
<![CDATA[
<header>
<figure>
<img src=" " alt=" " />
</figure>
<h1>{($longtitle ?: $pagetitle)}</h1>
</header>
{'!rssCDATA' | snippet : [ 'cnt' => ( $id | resource : 'content' | replace : '"assets/' : ('"' ~ $_modx->config.site_url ~ 'assets/') ) ]}
]]>
</turbo:content>
</item>
Подскажите, как мне поставить сюда это изображение из хедера? Комментарии: 8
Использовать leftJoin:
{$_modx->runSnippet('pdoResources', [
...params...
'loadModels' => 'ms2gallery',
'leftJoin' => [
'Image' => [
'class' => 'msResourceFile',
'on' => 'modResource.id = Image.resource_id AND Image.parent = 0 AND Image.rank = 0',
],
'Thumb' => [
'class' => 'msResourceFile',
'on' => 'Image.id = Thumb.parent AND Thumb.path LIKE "%afisha%"', // здесь afisha это название thumbnails из источника файлов, заменить на своё.
]
],
'select' => [
'modResource' => '*',
'Image' => 'Image.url as image',
'Thumb' => 'Thumb.url as thumb',
]
])}
Thumb обязательно?
Я правильно понимаю, что этот код вставляется в страницу, формирующую xml, а передается значение Image чанку? Или этот код вставить в чанк, перед вызовом значения?
params — это какие-то мои значения для вызова чанка?
Я правильно понимаю, что этот код вставляется в страницу, формирующую xml, а передается значение Image чанку? Или этот код вставить в чанк, перед вызовом значения?
params — это какие-то мои значения для вызова чанка?
Код страницы такой:
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru" version="2.0">
<channel>
<title>[[++site_name]]</title>
<link>[[++site_url]]</link>
<description>[[*description]]</description>
<language>ru</language>
[[!pdoResources?
&parents=`3, 22, 47, 197`
&tpl=`tpl.yandex.turbo.rss`
&limit=`0`
]]
</channel>
</rss>
Не совсем понимаю где надо использовать предлженный вами код. Я правильно понимаю, что этот код вставляется в страницу, формирующую xml, а передается значение Image чанку?Да, всё верно, это код в страницу формирующую xml, т.е. вызов pdoResources заменить на:
{$_modx->runSnippet('!pdoResources', [
'parents' => '3,22,47,197',
'tpl' => 'tpl.yandex.turbo.rss',
'limit' => 0,
'loadModels' => 'ms2gallery',
'leftJoin' => [
'Image' => [
'class' => 'msResourceFile',
'on' => 'modResource.id = Image.resource_id AND Image.parent = 0 AND Image.rank = 0',
],
'Thumb' => [
'class' => 'msResourceFile',
'on' => 'Image.id = Thumb.parent AND Thumb.path LIKE "%afisha%"', // здесь afisha это название thumbnails из источника файлов, заменить на своё.
]
],
'select' => [
'modResource' => '*',
'Image' => 'Image.url as image',
'Thumb' => 'Thumb.url as thumb',
]
])}
Thumb обязательно?Нет, если миниатюра не нужна, можно убрать. В чанке соответственно вставляем или thumb или image:
<figure>
<img src="{$image}" alt=" " />
</figure>
Не работает :((
Код протестирован, т.к. взят с действующего сайта и 100% работает, только параметры из вашей страницы подставил.
Если есть возможность — присылайте доступы в телеграм или на почту (кнопка и контакт в профиле), посмотрю из за чего не работает.
Если есть возможность — присылайте доступы в телеграм или на почту (кнопка и контакт в профиле), посмотрю из за чего не работает.
Поправил синтаксис (лишние запятые) — все ОК. Спасибо!
Если вдруг все «испортится», воспользуюсь вашим предложением, напишу в личку:)
Если вдруг все «испортится», воспользуюсь вашим предложением, напишу в личку:)
Добрый день.
Не подскажете, как сделать вывод изображений в RSS, добавленных в статьи через плейсхолдеры [[+ms2g.1]], [[+ms2g.2]]..?
Чанк:
— Если вызвать без шаблона, то изображения в статье будут выглядеть так:
А нужны изображения статей.
Не подскажете, как сделать вывод изображений в RSS, добавленных в статьи через плейсхолдеры [[+ms2g.1]], [[+ms2g.2]]..?
Чанк:
[[!pdoResources?
&parents=`11`
&class=`modResource`
&loadModels=`ms2gallery`
&tpl=`test4567.tpl`
&leftJoin=`{
"Image": {
"class": "msResourceFile",
"on": "modResource.id = Image.resource_id AND Image.parent = 0 AND Image.rank = 0"
},
"Thumb": {
"class": "msResourceFile",
"on": "Image.id = Thumb.parent AND Thumb.path LIKE '%big%'"
}
}`
&select=`{
"modResource": "*",
"Image": "Image.url as image",
"Thumb": "Thumb.url as big"
}`
&showLog=`1`
&limit=`0`
&groupby=`modResource.id`
]]
В итоге:— Если вызвать без шаблона, то изображения в статье будут выглядеть так:
[[+ms2g.1]]
[[+ms2g.2]]
— Если добавить изображения в ресурс RSS (во вкладке Галерея), то они будут выводиться во всех статьях.А нужны изображения статей.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.