DLE Conditions
Условия и проверки для шаблонизатора DataLife Engine.
Работа с условиями
Модуль поддерживает следующий ряд операндов
[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]
Для создания вложенных условий нужно к каждому вложенному условию добавлять число. Пример
[if условие] текст
[if1 условие] текст
[elif1 условие]текст[/elif1]
[elif1 условие][if2 условие]текст[/if2][/elif1]
[else1]текст[/if1]
[/if]