ExpressionEngine: встраивание условного шаблона

У меня возникла небольшая проблема с порядком синтаксического анализа и условной логикой Expression Engine.

Я хочу встроить шаблон на основе условного оператора в канал.

Что-то вроде этого:

             {exp:channel:entries channel="project" limit="3"}
                      {if count >2}
                          <h1>title{/h1}
                       {if:else}
                        {embed="test/.test.html}
                       {/if}

             {/exp:channel:entries}

Проблема в том, что вставка вызывается несколько раз из цикла. Я попытался использовать Stash для установки переменной (затем вызвать вставку, если переменная была установлена), но это слишком поздно или слишком рано в порядке синтаксического анализа.

Кто-нибудь знает способ условного встраивания на основе значений канала?


person jorblume    schedule 29.07.2014    source источник
comment
Это выглядит хорошо для меня. Я бы предложил заключить count в фигурные скобки и посмотреть, имеет ли это значение.   -  person JamesNZ    schedule 31.07.2014


Ответы (1)


Какую версию ЕЕ вы используете? EE 2.9 вносит существенные изменения (улучшения!) в то, как обрабатываются условные операторы. Я еще не использую EE 2.9, но, судя по тому, что я прочитал документацию "Этапы рендеринга" то, что вы пытаетесь сделать, должно работать как написано в 2.9.

Обратите внимание, что условные выражения оцениваются на шаге 19 и внедряются на шаге 21.

В более ранних версиях EE вставки обрабатывались до «сложных условий». См. объявление и журнал изменений для получения подробной информации.

person AllInOne    schedule 30.07.2014
comment
Это было все, я на EE 2.8. Спасибо! Отмечен как правильный ответ. - person jorblume; 01.08.2014