LazyDev
  • Основной сайт
  • Продукты
    • DLE Filter

      Фильтр новостей

    • DLE Search

      Улучшенный поиск новостей

    • DLE Subscribe

      Подписки на новости, категории, теги, доп. поля

    • DLE Seo

      Улучшенная SEO оптимизация страниц

    • DLE Dynamic xField

      Динамические дополнительные поля

    • DLE Collections

      Подборки новостей

    • DLE Emote Lite

      Рейтинг новостей "эмоциями"

    • DLE xField Tab PRO

      Группирование дополнительных полей во вкладках

    • DLE Conditions

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

    • DLE YouWatch

      Вывод недавно просмотренного

    • DLE Scroll News

      Подгрузка новостей в полной новости

  • Начало
  • briefcaseСовместимость
  • Установка
  • Обновление
  • Работа с условиями
  • Параметры для условий
  • Глобальные теги
  • Другие теги
  • Список обновлений

DLE Conditions

Условия и проверки для шаблонизатора DataLife Engine.

Операнды

Поддержка операндов: >, <, >=, <=, ==, !==, =, !=, ~, !~

Условия

Поддержка вложенных условий.

Логические операторы

Поддержка логических операторов И (&&) и ИЛИ (||).

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

Создание глобальных тегов.

Дата

Удобная работа с датой добавления / редактирования новости.

Галерея

Поддержка работы с количеством фотографий в дополнительном поле типа Галерея.

Дополнительные возможности

Дополнительные проверки в условиях и дополнительные теги для шаблонизатора.

Совместимость

DataLife Engine version for DLE Seo

Установка

  • Шаг первый

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

  • Шаг второй

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

Обновление на версию 2.2.1

  • Шаг первый

    Замените файл в папке /engine/lazydev/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]

Для создания вложенных условий нужно к каждому вложенному условию добавлять число. Пример
[if условие] текст
    [if1 условие] текст
        [elif1 условие]текст[/elif1]
        [elif1 условие][if2 условие]текст[/if2][/elif1]
    [else1]текст[/if1]
[/if]

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

Параметр Описание
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
Место жительства.
Параметр Описание
xfvalue_X
Значение дополнительного поля новости (где 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 автора публикации.
Параметр Описание
r.post_id
Id новости.
r.autor
Ник комментатора.
r.user_id
Id комментатора.
r.date
Дата добавление комментария.
r.email
E-mail комментатора.
r.text
Текст комментария.
r.ip
IP комментатора.
r.is_register
Зарегистрирован ли тот кто оставил комментарий (1 - да, 0 - нет).
r.approve
Опубликован ли комментарий (1 - да, 0 - нет).
r.rating
Рейтинг комментария.
r.vote_num
Количество голосов рейтинга.
Параметр Описание
xfvalue_X
Значение дополнительного поля новости (где X - название дополнительного поля на латинице).
r.email
E-mail пользователя.
r.name
Ник пользователя.
r.user_id
Id пользователя.
r.news_num
Количество новостей.
r.comm_num
Количество комментариев.
r.user_group
Id группы пользователя.
r.lastdate
Последняя дата входа пользователя.
r.reg_date
Дата регистрации.
r.allow_mail
Разрешено ли писать на Email (1 - да, 0 - нет).
r.info
Подробней о пользователе.
r.signature
Подпись пользователя.
r.fullname
Полное имя пользователя.
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}
Выведет описание дополнительного поля которое указано в админ панели.

Список обновлений

15 Июня, 2023
2.2.1

НововведениеПоддержка DLE 15.3 - 16.1.

НововведениеПоддержка PHP 8.1.

25 Августа, 2022
2.2.0b

НововведениеПоддержка DLE 15.1 - 15.2.

15 Октября, 2021
2.2.0

ИзменениеОптимизирован код.

НововведениеПоддержка DLE 15.0.

23 Ноября, 2020
2.1.0

ИзменениеИзменен параметр {each, теперь можно указывать лимит данных.

НововведениеДобавлена поддержка условий в описании краткой и полной новости.

28 Августа, 2020
2.0.2

ИсправлениеИсправлена ошибка работы модуля связанная с параметром r.

26 Августа, 2020
2.0.1

ИсправлениеИсправлена ошибка работы модуля.

© 2022 All Rights Reserved by LazyDev