Вложить пару тегов записи канала ExpressionEngine в другую пару тегов записи канала? - PullRequest
8 голосов
/ 07 декабря 2011

Я провел некоторый поиск, но, похоже, не могу найти никакой информации о внедрении пары тегов входа в канал в другую.

Когда я пытаюсь использовать следующий код в шаблоне, он разрывает страницу, и я вижу отверстие {reverse_related_entries sort="desc"}, отображаемое в виде простого текста:

{exp:channel:entries channel="pages"}
    {reverse_related_entries sort="desc"}
        {if show_testimonial}
            {exp:channel:entries channel="testimonials" orderby="random" limit="1"}
                <blockquote>
                    {testimony}
                    <cite>
                        <span class="cite_name">{cite_name}</span><br />
                        <span class="cite_org">{cite_org}</span><br />
                        <span class="cite_title">{cite_title}</span>
                    </cite>
                </blockquote>
            {/exp:channel:entries}
        {/if}
    {/reverse_related_entries}
{/exp:channel:entries}

Есть ли в ExpressionEngine способ вложить пару тегов входа в канал внутри себя?

1 Ответ

14 голосов
/ 07 декабря 2011

Чтобы вложить пару тегов {exp:channel:entries} внутрь себя, вам нужно встроить шаблон в другой шаблон , используя переменную {embed}.

Для этого просто измените тэг записей основного канала, чтобы он выглядел следующим образом:

{exp:channel:entries channel="pages"}
    {reverse_related_entries sort="desc"}
        {if show_testimonial}
            {embed="template_group/template"}
        {/if}
    {/reverse_related_entries}
{/exp:channel:entries}

Затем создайте новый шаблон с содержимым вашей пары тегов записей вложенных каналов:

{exp:channel:entries channel="testimonials" orderby="random" limit="1"}
    <blockquote>
        {testimony}
        <cite>
            <span class="cite_name">{cite_name}</span><br />
            <span class="cite_org">{cite_org}</span><br />
            <span class="cite_title">{cite_title}</span>
        </cite>
    </blockquote>
{/exp:channel:entries}

Который вы можете включить в любой шаблон ExpressionEngine, используя следующий синтаксис, как показано ранее:

{embed="template_group/template"}

Использование шаблонов для встраивания является стандартным способом обхода некоторых изысков ExpressionEngine и Порядка разбора (PDF, 32 КБ) , но они несут с собой снижение производительности, поэтому будьте внимательны в выбор между {embed} и {snippet}.

...