DLE Conditions

Условия в шаблонах DataLife Engine.

version: 2.2.0 dle: 13.0 - 15.0 charset: UTF-8 php: 7.0 - 7.4
  • Поддержка операндов: >, <, >=, <=, ==, !==, =, !=, ~, !~
  • Поддержка вложеных условий.
  • Поддержка логических операторов И (&&) и ИЛИ (||).
  • Создание глобальных тегов.
  • Удобная работа с датой добавления / редактирования новости.
  • Поддержка работы с количеством фотографий в дополнительном поле типа Галерея.
  • Дополнительные проверки в условиях.
  • Дополнительные теги для шаблонизатора.

Установка


Установка модуля еще никогда не была такой простой

Установка для DataLife Engine 13.0 и выше
  • Шаг первый

    Загрузите файлы с папки Module на свой сервер.

  • Шаг второй

    Установить через систему плагинов XML файл dle-conditions.xml.

Работа с условиями


Инструкция по работе с условиями

Модуль поддерживает следующий ряд операндов
[if field=текст]Значение поля равно указанному тексту[/if]
[if field!=текст]Значение поля не равно указанному тексту[/if]
[if field==текст,текст2]Значение поля имеет текст и текст2[/if] // Только для категорий, тегов и дополнительных полей у которых значения разделены запятой
[if field!==текст,текст2]Значение поля не имеет текст и текст2[/if] // Только для категорий, тегов и дополнительных полей у которых значения разделены запятой
[if field>100]Значение поля строго больше 100[/if]
[if field>=55]Значение поля больше либо равно 55[/if]
[if field<300]Значение поля строго меньше 300[/if]
[if field<=444]Значение поля меньше или равно 444[/if]
[if field~кофе]В тексте поля встречается слово кофе[/if]
[if field!~кофе]В тексте поля НЕ встречается слово кофе[/if]
[if field]Поле не пустое[/if]
[if !field]Поле пустое[/if]
Модуль включает в себя возможность вложенных условий, пример:
[if xfvalue_status=new]
    Новая [if1 rating>50 || news_read>1000]популярная[else1]не популярная[/if1] новость
[/if]
То есть, каждое новое вложение должно иметь число по возрастающему.

Для работы с датой новостей добавлены два параметра, это day. и date.
Пример параметра day.:
[if day.date<1]Добавлено больше 1 дня назад[/if]
[if day.date>1]Добавлено меньше 1 дня назад[/if]
[if day.date=0]Добавлено сегодня[/if]
[if day.editdate=0]Отредактировано сегодня[/if]
Как должно было быть понятно из примеров, параметр day. преобразовывает указаное количество дней в дату и сравнивает с датой новости.
Пример параметра date.:
[if date.date=сегодня]Добавлено сегодня[/if]
[if date.date=вчера]Добавлено вчера[/if]
[if date.date=1 день]Добавлено 1 день назад[/if]
[if date.date=2 дня]Добавлено 2 дня назад[/if]
[if date.date=5 дней]Добавлено 5 дня назад[/if]
[if date.date=1 неделя]Добавлено 1 неделю назад[/if]
[if date.date=2 недели]Добавлено 2 недели назад[/if]
[if date.date=5 недель]Добавлено 5 недель назад[/if]
[if date.date=завтра]Будет добавлено завтра[/if]
[if date.date=1 месяц]Добавлено 1 месяц назад[/if]
[if date.date=2 месяца]Добавлено 2 месяца назад[/if]
[if date.date=5 месяцев]Добавлено 5 месяцев назад[/if]
[if date.date=1 год]Добавлено 1 год назад[/if]
[if date.date=2 года]Добавлено 2 года назад[/if]
[if date.date=5 лет]Добавлено 5 лет назад[/if]
Как должно было быть понятно из примеров, параметр date. работает с датой в строчном виде.

Количество фотографий в дополнительном поле типа Галерея, пример с проверкой сколько фото в дополнительном поле (galery разумеется это название дополнительного поля):
[if count.galery>5]Много фотографий[/if]

В условиях вы можете использовать логические операторы И (&&) и ИЛИ (||). Пример:
[if date.date=сегодня && r.news_read>1000 || r.rating>50]Новость популярна![/if]
Выведет «Новость популярна!» если она добавлена сегодня и имеет больше 1000 просмотров ИЛИ рейтинг новости больше 50! Вы можете комбинировать эти операторы как хотите.

Вы можете указывать второй параметр так же дополнительные поля или другие параметры новости. Пример:
[if xfvalue_status=xfvalue_status_end]Товар закончен, только под заказ.[/if]

Модуль автоматически определяет сравнение строки и числового значения, вам больше ничего дописывать не нужно. Пример:
{title limit="45"}[if r.title>45]...[/if]

В main.tpl и в других файлах шаблона доступны следующие условия
[if info]Есть какая-то ошибка или уведомление[/if]
[if !info]Ошибки или уведомления нет![/if]

Краткие условия для проверки есть ли что-то в поле или оно пустое, пример:
[if xfvalue_count]Есть в наличии[/if]
[if !xfvalue_count]Под заказ[/if]

Параметры для условий


Описание всех параметров для условий

Параметры для TPL файлов краткой, полной и custom новостей а так же поиска по сайту
Параметр Описание
xfvalue_X
Значение дополнительного поля новости (где X - название дополнительного поля на латинице).
xfvalue_X date:"Y"
Опция конвертации даты для дополнительного поля типа Дата и время. Тем самым вы можете выводить не только дату целиком но и ее отдельные части. Формат даты задается задается согласно формату принятому в PHP. Например тег date:"d" выведет день месяца публикации новости или комментария, а тег date:"F" выведет название месяца, а тег date:"d-m-Y H:i" выведет полную дату и время.(где X - название дополнительного поля на латинице).
r.id
Порядковый номер новости.
r.autor
Ник автора новости.
r.date
Дата публикации новости.
r.short_story
Текст краткой новости.
r.full_story
В шаблонах краткой новости это количество символов в полном описании. В шаблоне полной новости - сам текст..
r.title
Заголовок новости.
r.metatitle
Метатег Title.
r.descr
Метатег Description.
r.keywords
Метатег Keywords.
r.category
Список категорий новости.
r.alt_name
URL новости на латинице.
r.comm_num
Количество комментариев.
r.allow_comm
Разрешены ли комментарии в новости (1 - да, 0 - нет).
r.allow_main
Опубликована ли новость на главной (1 - да, 0 - нет).
r.approve
Прошла ли новость модерацию (1 - да, 0 - нет).
r.fixed
Зафиксирована ли новость (1 - да, 0 - нет).
r.symbol
Символьный код новости.
r.tags
Теги новости.
r.news_read
Количество просмотров новости.
r.allow_rate
Разрешен ли рейтинг новости (1 - да, 0 - нет).
r.rating
Рейтинг новости, сумма всех значений.
r.vote_num
Количество проголосовавших в рейтинге.
r.votes
Есть ли опрос в новости (1 - да, 0 - нет).
r.view_edit
Отображать причину редактирования (1 - да, 0 - нет).
r.disable_index
Запрещена ли индексация новости (1 - да, 0 - нет).
r.editdate
Дата редактирования новости.
r.editor
Ник редактора новости.
r.reason
Причина редактирования новости.
r.user_id
ID автора публикации.
В новостях так же доступны условия по текущему пользователю.
user.xfvalue_X
Значение дополнительного поля новости (где X - название дополнительного поля на латинице).
user.r.email
E-mail пользователя.
user.r.name
Ник пользователя.
user.r.user_id
Id пользователя.
user.r.news_num
Количество новостей.
user.r.comm_num
Количество комментариев.
user.r.user_group
Id группы пользователя.
user.r.lastdate
Последняя дата входа пользователя.
user.r.reg_date
Дата регистрации.
user.r.allow_mail
Разрешено ли писать на Email (1 - да, 0 - нет).
user.r.info
Подробней о пользователе.
user.r.signature
Подпись пользователя.
user.r.fullname
Полное имя пользователя.
user.r.land
Место жительства.

Глобальные теги


Инструкция по работе с глобальными тегами

Создание глобальных тегов позволяет выводить данные тегов в других tpl файлах где они не поддерживаются.
Для работы с глобальными тегами существует 4 тега:
[set-X] данные [/set]
Задает тег, где X любой произвольное название на латинице а внутри этих тегов может быть что угодно.
{global-X}
Выводит данные из тегов [set-X], где X тоже самое название что у тега [set-X].
[global-X] данные [/global]
Выводит данные из тегов если задан такой тег {global-X}, где X тоже самое название что у тега {global-X}.
[not-global-X] данные [/not-global]
Выводит данные из тегов если не задан такой тег {global-X}, где X тоже самое название что у тега {global-X}.
Пример для вывода данных из новости, fullstory.tpl, в main.tpl:
1. В fullstory.tpl делаем
[set-title]{title} {date}[/set]
2. В main.tpl вставляем в нужном месте
[global-title]{global-title}[/global]

Другие теги


Инструкция по работе с дополнительными тегами

Для новостей появились дополнительные теги, такие как:, {each}, {count}, {descr}.
{each field="xfvalue_X"} Данные {/each}
Тег позволяет обойти дополнительные поля типа галерея или перекрестные ссылки, где X название дополнительного поля.
{each field="xfvalue_X" limit="Y"} Данные {/each}
Тег позволяет обойти дополнительные поля типа галерея или перекрестные ссылки, где X название дополнительного поля а Y позволяет задать лимит вывода данных.
{src}
Работает внутри тега {each}, выводит ссылку на оригинальное изображение. [ Только для дополнительного поля типа Галерея ]
{alt}
Работает внутри тега {each}, выводит описание изображения. [ Только для дополнительного поля типа Галерея ]
{thumb}
Работает внутри тега {each}, выводит ссылку на уменьшеную копию изображения, если копии нет выводит ссылку на оригинальное изображение. [ Только для дополнительного поля типа Галерея ]
{url}
Работает внутри тега {each}, выводит ссылку страницу новостей с значением дополнительного поля. [ Только для дополнительного поля типа Перекрестные ссылки ]
{value}
Работает внутри тега {each}, выводит значение дополнительного поля. [ Только для дополнительного поля типа Перекрестные ссылки ]
{count.xfvalue_X}
Выведет число изображение или символов в дополнительном поле, где X название дополнительного поля.
{descr.xfvalue_X}
Выведет описание дополнительного поля которое указано в админ панели.

Обновление модуля


Инструкция по обновлению модуля

  • Шаг первый

    Загрузите файлы с папки Module на свой сервер.