Weblog entries - Условные переменные

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

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

Вот пример условия, которое проверяет, заполнено или нет поле "summary":

{if summary != ""}

The summary is not empty!

{/if}

Используя альтернативный укороченный синтаксис можно получить тот же результат:

{if summary}

The summary is not empty!

{/if}

Если в условии указано только имя переменной, то производиться проверка, что она "не пустая".

Доступные условия

Многие из одиночных переменных могут использоваться в условном операторе. Вы всегда можете использовать короткое имя ваших заказных полей в условных операторах. Кроме того, существует несколько уникальных условных операторов.

if allow_comments

{if allow_comments}
content
{/if}

Это специальное условие позволяет вам выводить его содержимое, если для текущей записи разрешены комментарии. Это условие возвращает FALSE, если срок комментирования истек.

{if allow_comments}

({comment_total}) <a href="{comment_path="weblog/comments"}">Comments</a> •

{/if}

Вы можете вывести содержимое условного выражения, если комментарии отключены:

{if allow_comments == FALSE}
content
{/if}

if allow_trackbacks

{if allow_trackbacks}
content
{/if}

Это специальное условие позволяет вам отображать его содержимое, если для текущей записи разрешены трекбэки.

{if allow_trackbacks}

({trackback_total}) <a href="{trackback_path="weblog/trackbacks"}">Trackbacks</a> •

{/if}

Вы можете вывести содержимое условного выражения, если трекбэки отключены:

{if allow_trackbacks == FALSE}
content
{/if}

if avatar

{if avatar}
content
{/if}

Это специальное условие дает вам возможность отображать по условию содержимое, если для автора текущей записи задан аватар,

{if avatar}
<img src="{avatar_url}" width="{avatar_image_width}" height="{avatar_image_height}" alt="{author}'s avatar" />
{/if}

if category_request

{if category_request}
content
{/if}

Это специальное условие дает вам возможность отображать содержимое, если отображение текущего тега основано на категории, указанной в URL. Например, если рассматривать такой URL http://www.example.com/index.php/weblog/archives/C13/, то он вызвал бы срабатывания условия.

if count

{if count > 5} content {/if}

Используя это условие, вы можете проверить номер отображаемой записи. Вы можете использовать это условие, например, для наложения другого стиля оформления первой записи или иначе оформить последние 5 записей из 10.

if forum_topic

{if forum_topic}
content
{/if}

Этот условие выводит содержимое, если с записью раздела связана тема форума. Эта опция доступна, если установлен модуль форума. Обычно используется следующим образом:

{if forum_topic}
<a href="{path=forums/viewthread}{forum_topic_id}">Discuss this in our forums</a>
{/if}

if no_results

{if no_results}
content
{/if}

Вы можете использовать это условие для вывода определенного сообщения, если не найдено ни одной записи. Содержимое условного выражения будет выведено в тех случаях, когда тег не возвращает никаких результатов.

{if no_results}

<p>There are no entries available.</p>

{/if}

Вы можете указать, чтобы отображался другой шаблон в случае, когда нет никаких результатов. Чтобы сделать это, вы должны использовать переменную redirect=:

{if no_results}
{redirect="weblog/noresult"}
{/if}

Наконец, вы можете просто выводить страницу 404 (с заголовками 404), если не возвращена ни одна запись, используя "404", как название шаблона.

{if no_results}
{redirect="404"}
{/if}

if not_category_request

{if not_category_request}
content
{/if}

Это специальное условие позволяет вам выводить содержимое, если вывод текущего тега не основан на категории, указанной в URL. Например, если рассматривать такой URL http://www.example.com/index.php/weblog/archives/C13/, то он не вызовет срабатывания условия.

if not_forum_topic

{if not_forum_topic}
content
{/if}

Вы можете использовать это условие для вывода контента, если с данной записью раздела не связана тема на форуме. Эта опция доступна, если установлен модуль форума. Обычно используется следующим образом:

{if not_forum_topic}
There is no forum discussion available.
{/if}

if signature_image

{if signature_image}
content
{/if}

Этот условное выражение позволяет вам выводить его содержимое, если для автора текущей записи указано изображение подписи.

{if signature_image}
<img src="{signature_image_url}" width="{signature_image_width}" height="{signature_image_height}" alt="{author}'s signature" />
{/if}

if sticky

{if sticky=='y'} content {/if}

Вы можете проверить, является ли запись "прикрепленной". Также вы можете проверить обратное условие.

{if sticky=='n'} content {/if}

Примеры:

Проверка идентификатора группы пользователей:

{if group_id == "4"}

This author, {author}, is in group 4

{/if}

Проверка количества комментариев, например 10 и более:

{if comment_total >= "10"}

Look out! Hot topic!!

{/if}

Множественные условия

Вы можете использовать вложенные операторы условий для проверки более сложных условий.

{if summary != ""}
{if username =="fred"}

Hey Fred! Look at this summary.

{/if}
{/if}

или

{if comment_total == 0}
{if trackback_total == 0}

No one has posted yet! Come on guys!

{/if}
{/if}

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

{if comment_total == 10}

Следующая запись не разрешена: {if comment_total = 10}

Специальные условия

Вы, конечно, можете использовать глобальные условия для проверки авторизован или нет пользователь и других условий. Например, если вы хотите показывать некоторую часть контента только авторизованным пользователям:

{if logged_in}

stuff...

{/if}

Или не авторизованным:

{if logged_out}

stuff...

{/if}

ПРИМЕЧАНИЕ: Условия {if logged_in} и {if logged_out} в тегах weblog entries не будут работать должным образом в кэшируемых шаблонах. Статус авторизованного пользователя, записанный в кэш, будет постоянно воздействовать на информацию, выдаваемую всем посетителям.

Наверх страницы