Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru Модули для DLE IF - Условия в шаблоне v3 для DLE 9.x - 11.x

IF - Условия в шаблоне v3 для DLE 9.x - 11.x


     12.03.2016    Модули для DLE    3709    12

Краткая информация о модуле (хаке)

Автор: Gameer
Версия DLE: DLE 9.x - 11.x
Контакты: http://gameer.name/feedback.html
Цена: 10$
Представляю вашему внимаю хак с помощью которого вы сможете делать разные проверки на подобии те что в PHP. Хак добавляет теги : if, elif, else - для того что бы выводить информацию заключенные в них в зависимости от результата условия.

Особенности хака:
- Поддержка актуальных версий. Поддерживает используемые версии движка от версии 9.0 и выше.
- Множественное использование. Можете использовать условия сколько раз угодно! Ограничений нет!
- Полное соответствие тегам PHP. В версии v3 теперь есть возможность использовать в одной проверке теги "&&" и "||".

Требования к установке :
  • Версия DLE: 9.0 и выше
  • Поддерживаемая кодировка: UTF-8
  • Версия php: 5.4 и выше
  • IonCube Loader: v.5.0 и выше

Поддержка сравнений :
  • > - Больше
  • = - Больше или равно
  • <= - Меньше или равно
  • != - Не равно
  • = - Равно
  • ~ - Находится ли искомое значение в исковом тексте
  • !~ - Не находится ли искомое значение в исковом тексте

Поддержка конструкций :
  1. [if *условия*] текст [/if]
  2. [if *условия*] текст [else] текст [/if]
  3. [if *условия*] текст [elif *условия*] текст [/elif][/if]
  4. [if *условия*] текст [elif *условия*] текст [/elif][else] текст [/if]
  5. [if *условия*] текст [elif *условия*] текст [/elif][elif *условия*] текст [/elif][elif *условия*] текст [/elif][elif *условия*] текст [/elif][else] текст [/if]

Примеры использования :
Вывод текста "Горячая новость если рейтинг новости равен или больше 5 и прочитали больше 100 человек или же новость набрала больше 20 комментариев.
[if rating>=5 && news_read>100 || comm_num>20]Горячая новость[/if]
Вывод дополнительного поля с плеером если в нем есть vk.com или moowalk.co если их не найдено, выведем другое доп поле которое содержит Трейлер
[if xf_video~vk.com || xf_video~moowalk.co][xfvalue_video][else][xfvalue_trailer][/if]
Так же в новой версии добавлена поддержка работы с датой, к примеру выведем что новость добавлена сегодня или вчера
[if date=today]Сегодня[elif date=days-1]Вчера[/elif][else]Старые новости[/if]
Для новостей что добавлены сегодня выведет - "Сегодня", для вчерашних - "Вчера" а для всех остальных - "Старые новости". Кроме этого можно передавать саму дату, к примеру
[if date=2016-03-11]Кажется это было очень давно[/if]

Дополнение :
Так же, если встречаются в сравнение два string (строк) и используется такие теги как
>, >=, <=, <
то они будут сравниваться по длине. Так же, для строки можно задавать сравнение по длине, с помощью этих сравнение
>, >=, <=, <
. К примеру
[if title>40]{title limit="40"}...[else]{title}[/if]
- эта конструкция выведет укороченный заголовок до 40 символов с троеточием если его длина больше 40 символом в другом случае выведет полный заголовок новости. Круто, правда ? И никаких доп правок в движке не нужно делать.
Скриншоты :

Цена : 10$
Купить в автоматическом режиме: http://gameer.name/store/24
Список обновлений : http://gameer.name/store/24
Как купить : http://gameer.name/blog/25
Условия покупки : http://gameer.name/buy.html
Контакты : http://gameer.name/feedback.html

Комментарии пользователей (12)

lutskboy
3

547 | 103

lutskboy - 30 августа 2015 17:56 - Юзер

вроде такое Sander делал
У этого функционал больше?
А вот это как применять?
~

Gameer
224

1120 | 395

Gameer - 30 августа 2015 18:02 - Эксперт

lutskboy, Вы можете купить и сопоставить эти модули, я не знаю как у Sander'a. Если нужно, я могу предоставить ему модуль что бы не возникало вопросов. Да, функционала тут побольше, здесь есть elseif и else а так же возможность сразу несколько условий в if и elif. А так же взаимодействие с ячейками пользователя и так же возможность использовать условия в кратком или полном описании.

Тег ~ ищет подстроку в строке которое было задано для поиска.

Истина в противоречии.​

lutskboy
3

547 | 103

lutskboy - 30 августа 2015 18:23 - Юзер

Вы можете купить и сопоставить эти модули

А нет, спасибо. Мне просто интересен функционал. Вот и спрашиваю.
Мне не нужно. У меня на сайте файлы шаблона php а не tpl.

Sokolov
92 | 9

Sokolov - 13 сентября 2015 10:05 - Юзер

Идея классная, упрощает многие действия. Возможно скоро куплю!

ПафНутиЙ
1064

3394 | 2433

ПафНутиЙ - 6 декабря 2015 22:20 - Админ

Хак из разряда "делаем шаблонизатор DLE похожим на нормальный" smile
Наверняка полезная штука!

Каков вопрос - таков и ответ. Просто помните об этом.

beoro
4

beoro - 18 декабря 2015 23:23 - Юзер

ПафНутиЙ,

не вижу нечего нормально в нативизации шаблонизатора ДЛЕ.

beoro
4

beoro - 18 декабря 2015 23:34 - Юзер

шаблонизатор построенный на str_replace является самым безопастным но с ограничеными возможностями не опытному программисту, а если есть опыт, можно построить такие конструкциии что даже завидовал бы сам Смарти или Твиг

ПафНутиЙ
1064

3394 | 2433

ПафНутиЙ - 21 декабря 2015 19:42 - Админ

Интересно увидеть конструкцию на шаблонизаторе DLE, которой позавидует смарти smile
заодно с тестами производительности.

Каков вопрос - таков и ответ. Просто помните об этом.

beoro
4

beoro - 23 декабря 2015 16:08 - Юзер

чем тебе не устраивает



$temlates->load_template('images.tpl');

foreach($row['images'] as $image_key){
      preg_match(
        "'\{%row-images\%}(.*?)\{%/row-images\%}'si",
             $temlates->copy_template,
         $row_images
      );

     $replace = array(
              '{image}' => $image_key['image']
      );

     $temlates->copy_template = strtr($temlates->copy_template, $replace);
     $temlates->copy_template = preg_replace(
        "'\{%row-images\%}(.*?)\{%/row-images\%}'si",
        "\\1\n".$row_images[0],
        $temlates->copy_template
       );
}

$temlates->set_block("'\{%row-images\%}(.*?)\{%/row-images\%}'si", "");

шаблон

{%row-images%}
<src ='{image}'>
{%/row-images%}


ПафНутиЙ
1064

3394 | 2433

ПафНутиЙ - 23 декабря 2015 17:46 - Админ

Не нужно путать зависть и ужас.

И сколько раз нужно скопипастить этот код, что бы выводить картинки в custom, topnews, relatednews, shotrstory и fullstory ?

Если не ошибаюсь, в смарти такая конструкция пишется в 4 строки.

$tpl->assign(['images' => $row['images']]);

И в шаблоне:

{foreach $images as $image}
    <img src="{$image}">
{/foreach}

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

Каков вопрос - таков и ответ. Просто помните об этом.

beoro
4

beoro - 23 декабря 2015 21:52 - Юзер

ПафНутиЙ,

Смарти грузит ОЗУ и медленее в пять раз, я тебе показал пример, и вообще что бы не копипастить можно организовать функцию и выводить без нативизации и вывода из компилированного php-шного файла

Iceman
3

69 | 6

Iceman - 10 июля 2016 09:18 - Юзер

Подскажи, что и куда добавить, чтоб этот ХАК работал в модуле LinkEnso PRO.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте