ExpressionEngine показывает содержимое канала вне цикла - PullRequest
0 голосов
/ 21 февраля 2011

Я знаю, это звучит безумно, но мне нужно показать некоторую информацию поста за пределами цикла в модуле канала механизма выражения. Возможно ли это?

Ответы [ 4 ]

1 голос
/ 21 февраля 2011

Вы можете использовать теги шаблона SQL-запроса EE (если вы знаете или имеете доступ к именам таблиц базы данных и знаете, что искать в базе данных):

http://expressionengine.com/user_guide/modules/query/index.html

По сути, вы выводите только то, что вам нужно - оно не обязательно должно принадлежать каналу или чему-то конкретному. Одно замечание: вам нужно знать основы синтаксиса SQL, но если вы немного разбираетесь в нем, вы можете сделать с ним кучу дополнительных вещей.

0 голосов
/ 24 октября 2012

Я бы также посоветовал посмотреть Шкатулка .

0 голосов
/ 24 октября 2012

Существует надстройка под названием MX Jumper, которая позволяет вам «установить» переменную внутри цикла записи, а затем «получить» ее в другом месте шаблона (до или после в цикле HTML не имеет значения, потому что он анализирует).позже).

В качестве альтернативы подход, который сейчас в моде, состоит в том, чтобы использовать надстройку Stash для хранения любых элементов, которые вам нужно использовать, в качестве переменных хранения, которые вы устанавливаете, а затем получаете - аналогичновыше, за исключением того, что, как только вы установите их, получение их должно произойти на более позднем этапе анализа.Прелесть этого подхода в том, что stash будет хранить «установленные» переменные для повторного использования либо на уровне пользователя, либо на уровне сайта, и вы сможете определить, каков период истечения срока действия - что затем приведет к повышению производительности.Когда вы применяете это широко, используя образ мышления «частичные шаблоны», вы можете хранить все в stash, а затем вызывать их в небольшое количество шаблонов-оболочек.Это позволяет использовать stash для установки, например, заголовка вашей записи, а затем получить его три раза в шаблоне оболочки без какой-либо дополнительной загрузки - нет необходимости в отдельных циклах в вашем шаблоне - один цикл для установки переменной, а затемВы можете вызывать эту переменную по мере необходимости в своем шаблоне - это похоже на создание глобальных переменных на лету.

0 голосов
/ 22 февраля 2011

Если вы не заинтересованы в SQL, вы можете просто встроить шаблон в шаблон, над которым вы работаете. Вот простой пример, который предполагает, что вы редактируете шаблоны index и meta внутри группы шаблонов с именем 'news':

index содержимое шаблона:

{exp:channel:entries channel="news"}
  <div class="entry">
    <h1>{title}</h1>
    <div class="content">{body}</div>
    {embed="news/meta" this_entry_id="{entry_id}"}
  </div>
{/exp:channel:entries}

meta содержимое шаблона:

{exp:channel:entries channel="news" dynamic="no" limit="1" entry_id="{embed:this_entry_id}"}
  <div class="meta">
    <p>{entry_date}</p>
    <p>{author}</p>
  </div>
{/exp:channel:entries}

Как видите, шаблон index встраивает шаблон meta. Обратите внимание, что мы передаем параметр в шаблон meta, чтобы он знал, какой идентификатор записи для печати информации. Если вы не знакомы с функцией встраивания шаблонов в EE, вы можете узнать больше об этом в EE docs . Внедрение шаблонов в другие шаблоны - это отличный способ многократного обращения к циклу {exp:channel:entries}.

...