ExpressionEngine - PHP в шаблоне, напечатать что-нибудь, если запись имеет определенное значение поля? - PullRequest
0 голосов
/ 26 июля 2011

У меня есть шаблон, который используется для записей.Записи имеют поле, которое всегда будет иметь 1 из 2 значений.Могу ли я написать немного PHP, чтобы показать что-то другое в зависимости от значения поля?

Я пробовал следующее, но это дает мне ошибку PHP:

<?php if($my_field == 'value1') { ?>
   <h3>Value 1</h3>
   <?php } else { ?>
   <h3>Value 2</h3>
<?php } ?> 

Спасибо

Ответы [ 2 ]

0 голосов
/ 26 июля 2011

Вы можете использовать ExpressionEngine Условные глобальные переменные для отображения вашего контента без использования PHP в ваших шаблонах.

Перезапись вашего примера с использованием нативных тегов ExpressionEngine Simple Conditional приведет к следующему:

{exp:channel:entries channel="channel_name" dynamic="off"}
    {if "my_field" == "value1"}
        Value 1
    {/if}

    {if "my_field" == "value2"}
        Value 2
    {/if}
{/exp:channel:entries}

Вы можете использовать простых или сложных условных выражений в любом месте ваших шаблонов, причем первый из них менее дорогостоящ, но Порядок разбора ExpressionEngine (PDF, 32 КБ) Может влиять на то, как они оцениваются и заменяются.

В большинстве случаев вам нужно убедиться, что ваши пользовательские поля и условия находятся внутри цикла тега {exp:channel:entries}, чтобы значения правильно выводились и тестировались при создании страницы.

0 голосов
/ 26 июля 2011

Вам не нужно использовать PHP.

{if my_field == 'foo'}
    Value 1
{if:else}
    Value 2
{/if}

Если вы планируете выполнять какие-либо теги EE в этих условных выражениях, вам не следует использовать синтаксис if: else, так как с ним содержимое между условными выражениями будет всегда анализироваться, но просто не отображается, что излишне использует ресурсы сервера и увеличивает время загрузки.

Так что в этом случае используйте вместо этого простые условия:

{if my_field == 'foo'}
    Value 1
{/if}
{if my_field == 'bar'}
    Value 2
{/if}

См .: http://expressionengine.com/user_guide/templates/globals/conditionals.html

...