Задайте настраиваемую переменную шаблона в expressionengine
Мне нужно вывести категорию для записи несколько раз в шаблон записи.
Итак, я хочу получить результат из следующего и назначить переменной, чтобы я мог повторно использовать внутри шаблона:
{exp:channel:entries channel="product" limit="1" status="open"}
{categories}{category_name}{/categories}
{/exp:channel:entries}"
Как это сделать?
Ответы
Ответ 1
Теперь вы можете позволить шаблону разрешить PHP, тогда вы можете написать что-то вроде этого:
{exp:channel:entries channel="product" limit="1" status="open"}
{categories}
<?php $category = '{category_name}'; ?>
{/categories}
{/exp:channel:entries}
Затем у вас есть {category_name}
, хранящийся в категории "php-variable". Позже вы можете использовать его так, как хотите, например, эхом:
<?php echo $category; ?>
Вы даже можете сравнить его с другими тегами EE:
{exp:channel:entries channel="product" limit="1" status="open"}
{if <?php $echo($category) ?> == title}
This title have got the same value as the category!
{/if}
{/exp:channel:entries}
Ответ 2
Croxton Stash: http://devot-ee.com/add-ons/stash делает почти то же самое, что и NSM Transplant (упомянутый Дереком, выше), и является бесплатным. Один из этих аддонов определенно будет самым простым способом сделать то, что вы пытаетесь сделать.
Ответ 3
EE не имеет встроенного способа сохранения данных из цикла тегов и повторного использования его в другом месте шаблона вне цикла тега.
Одним из решений было бы использовать NSM Transplant, чтобы сделать именно то, что вы хотите сделать.
Другим было бы обернуть всю вашу страницу входа в тэг channel:entries
, чтобы вы могли просто использовать цикл categories
везде, где вам это нужно, а затем использовать вставки для всего, что не может быть вложено внутри channel:entries
.