Как передать параметр из одного сниппета в другой?
Всем привет! Прошу помощи. Ситуация следующая.
Делаю страничку категории блога. Для вывода постов использую сниппет pdoPage. Интро постов выводятся.
В интро каждого поста выводятся: заголовок поста, их привью — картинка, теги поста. Для вывода тегов использую сниппет tvSuperSelect.
Заголовок поста и картинка выводятся правильно, а вот теги нет. Как все вывожу смотрите ниже.
Код для вывода интро постов в категории блога:
Код чанка blog-post-item:
Как видно, в коде чанка blog-post-item теги выводятся с помощью сниппета tvSuperSelect. У этого сниппета нужно указать id конкретного поста, теги которого будут выводиться.
По инструкции сниппета tvSuperSelect, id поста указывается таким образом:
Такой вариант указания id отлично выводит теги на странице самого поста. А на странице категории блога внутри интро каждого поста такое указание id выводит теги страницы категории блога, но не теги постов.
Если id поста для сниппета tvSuperSelect указывается таким образом:
то интро постов блога перестают выводиться, а в логах появляется ошибка
мол неправильно указывается id для сниппета tvSuperSelect. Хотя такая же запись id отрабатывает в коде чанка выше правильно.
Получается, что для pdoPage айдишники постов определяются правильно и правильно выводятся заголовки и картинки. А для тегов, выводимых tvSuperSelect внутри pdoPage, айдишники постов определяются неправильно.
Как правильно передать id поста в сниппет tvSuperSelect из сниппета pdoPage?
Делаю страничку категории блога. Для вывода постов использую сниппет pdoPage. Интро постов выводятся.
В интро каждого поста выводятся: заголовок поста, их привью — картинка, теги поста. Для вывода тегов использую сниппет tvSuperSelect.
Заголовок поста и картинка выводятся правильно, а вот теги нет. Как все вывожу смотрите ниже.
Код для вывода интро постов в категории блога:
[[!pdoPage?
&parents=`{$id}`
&limit=`4`
&tpl=`blog-post-item`
&includeTVs=`img,tags`
]]
<div class="clearfix"></div>
[[!+page.nav]]
Код чанка blog-post-item:
<div class="post-info blog-post-item">
<div class="post-img">
<a href="{$uri}"><div class="preview-bg" style="background-image: url([[#{$id}.img]]);"></div></a>
</div>
<div class="post-dopinfo">
<div class="dopinfo-item h2"><a href="{$uri}"><h2>{$pagetitle}</h2></a></div>
<div class="dopinfo-item">Тэги:
{$_modx->runSnippet('tvssTags', [
'id' => $_modx->resource.id,
'tpl' => '@INLINE <a rel="nofollow" href="{$link}">{$tag}</a>',
'tv' => 4,
'pageId' => 11,
])}
</div>
</div>
</div>
Как видно, в коде чанка blog-post-item теги выводятся с помощью сниппета tvSuperSelect. У этого сниппета нужно указать id конкретного поста, теги которого будут выводиться.
По инструкции сниппета tvSuperSelect, id поста указывается таким образом:
'id' => $_modx->resource.id,
Такой вариант указания id отлично выводит теги на странице самого поста. А на странице категории блога внутри интро каждого поста такое указание id выводит теги страницы категории блога, но не теги постов.
Если id поста для сниппета tvSuperSelect указывается таким образом:
'id' => {$id},
то интро постов блога перестают выводиться, а в логах появляется ошибка
Unexpected token '{' in expression in modchunk/35 line 8, near '{$_modx->runSnippet('tvssTags', [↵ 'id' => {' <- there
мол неправильно указывается id для сниппета tvSuperSelect. Хотя такая же запись id отрабатывает в коде чанка выше правильно.
Получается, что для pdoPage айдишники постов определяются правильно и правильно выводятся заголовки и картинки. А для тегов, выводимых tvSuperSelect внутри pdoPage, айдишники постов определяются неправильно.
Как правильно передать id поста в сниппет tvSuperSelect из сниппета pdoPage?
Комментарии: 2
Потому что, нужно так:
'id' => $id,
Спасибо за помощь, заработало!!!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.