Вызов сниппета в условии
Здравствуйте! Столкнулся с такой небольшой проблемой, как можно вызвать сниппет в условии if else?
Пример:
Пример:
[[*isfolder:is=`1`:then=`
[[!pdoMenu?
&level=`2`
&outerClass = `side-menu`
&parents=`[[*id]]`
&where=``
&tplParentRow=`@INLINE <li[[+classes]]><h3 [[+attributes]]>[[+menutitle]]</h3>[[+wrapper]]</li>`
]]`:else=`
[[pdoResources?
&parents=`52`
&depth=`0`
&tpl=`tpl.SideNews`
]]
`]] Комментарии: 11
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Сделайте 2 разных шаблона:
1. Категория
2. Публикация
Но… «вложенные условия» работают несколько иначе, чем в php, а именно — [[действия]] срабатывают «изнутри», т.е. сначала срабатывают все внутренние сниппеты/чанки, а уже потом — внешние.
Грубо говоря, в вашем примере сначала 2 раза срабатывает pdoResources, а уже потом условие. Из-за этого при генерации страницы обрабатываются ненужные запросы. Лучший выход при таких задачах (имхо) — писать свой сниппет на пшп, где используются обычные условия if else, а уже внутри — запускаются сниппеты.
И вызываешь в нужном месте [[!yoba1]]. Итог: в 2 раза меньше запросов к бд.
Y.O.B.A.