Установите пользовательскую переменную шаблона в expressionengine - PullRequest
10 голосов
/ 26 сентября 2011

Мне нужно вывести категорию для записи несколько раз в шаблоне записи.

Поэтому я хочу получить вывод из следующего и назначить переменную, чтобы я мог повторно использовать в шаблоне:

{exp:channel:entries channel="product" limit="1" status="open"}
    {categories}{category_name}{/categories}
{/exp:channel:entries}"

Как это сделать?

Ответы [ 3 ]

9 голосов
/ 10 октября 2011

Теперь вы можете включить шаблон для разрешения PHP, затем вы можете написать что-то вроде этого:

{exp:channel:entries channel="product" limit="1" status="open"}
    {categories}
        <?php $category = '{category_name}'; ?>
    {/categories}
{/exp:channel:entries}

Тогда у вас есть {category_name}, хранящийся в php-переменной "category". Позже вы можете использовать его по своему усмотрению, например, повторив:

<?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}
3 голосов
/ 11 октября 2011

Croxton's Stash: http://devot -ee.com / add-ons / stash делает почти то же самое, что NSM Transplant (упомянутое Дереком выше), и является бесплатным. Один из этих дополнений, безусловно, будет самым простым способом сделать то, что вы пытаетесь сделать.

2 голосов
/ 26 сентября 2011

В EE нет встроенного способа сохранения данных из цикла тегов и повторного их использования в другом месте шаблона, вне этого цикла тегов.

Одним из решений будет использование NSM Transplant , чтобы сделать именно то, что вы хотите сделать.

Другой вариант - обернуть всю страницу ввода в тег channel:entries, чтобы вы могли просто использовать цикл categories там, где вам это нужно,затем используйте вставки для всего, что не может быть вложено в channel:entries.

...