Forums / National / Russian / Идеи / Развитие шаблонизатора (XTemplate 2.8.1)

<<<12

Dr2005alex
#16 2018-10-25 10:29

Все именно так!!! С целью сокращения костылей в этом духе что в примере.

Рад что виден смысл в использовании. Данное добавление расширяен возможности шаблонизатора и исключает необходимость писать доп функции для сайта.

WebKaa.ru - Cotonti Relax
Kopusha
#17 2018-10-25 12:09
#43753 Dr2005alex:

Все именно так!!! С целью сокращения костылей в этом духе что в примере.

Рад что виден смысл в использовании. Данное добавление расширяен возможности шаблонизатора и исключает необходимость писать доп функции для сайта.

 

Я уже уполовинил свой файл с кастомными функциями. С учетом того что у меня овердофига функционала и плагинов как биржи так и прочего и все работает как и прежде с новым файлом котемплейта - он нигде не конфликтует. 

Спасибо!

Added 48 minutes later:

я так понял что можно и более двух переменных закидывать?
This post was edited by Kopusha (2018-10-25 12:57, 5 years ago)
Dr2005alex
#18 2018-10-25 13:58

я так понял что можно и более двух переменных закидывать?

ДА 

WebKaa.ru - Cotonti Relax
This post was edited by Dr2005alex (2018-10-26 05:24, 5 years ago)
Kopusha
#19 2019-01-19 10:04

Прошло куча времени - полет ОК. Спс!

Dr2005alex
#20 2019-01-20 09:18

Спасибо за тест!

WebKaa.ru - Cotonti Relax
Roffun
#21 2019-01-20 12:56
#43753 Dr2005alex:

Рад что виден смысл в использовании. Данное добавление расширяен возможности шаблонизатора и исключает необходимость писать доп функции для сайта.

Алексей, а в ветку на github.com не планируется предложение улучшений ?

Одно дело дополнительная функция, другое дело шаблонизатор. Получается правка ядра, и при обновлении из репозитория, или сборки биржи, изменения перезапишутся.

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Kopusha
#22 2020-04-22 16:33

У меня кстати всюду без проблем работает. И на последнем php и котонти, я все обновляю. Так что можно юзать!

Alex300
#23 2023-09-30 11:08

Вот этим коммитом в мастер ветку добавлена возможность подставлять функцию любые аргументы, а не только один через $this.
Теперь можно писать и так, например:

{PHP|cot_url('page', 'c=news')|var_dump({PHP.L.Home}, $this, {PHP.cfg.mainurl}, {PHP|cot_url('page', 'c=news')}, {HEADER_TITLE})}

 

И теперь он еще понимает в функциях и условиях что TRUE или true - это true, а 'true' или "True" - с кавычками - это строка. То же самое для false,null.
1 и 10.5 - это числа, а '1', "10.5" это строки.

т.е. {PHP|cot_url('page', c={PHP.c}, '', false, true)} должно корректно работать. Т.е. он должен понять что false это именно FALSE, а не строка, содержащая 'false', которая будет преобразована в TRUE при выполнении.

Нуждается в тестировании и фидбеке ).

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
This post was edited by Alex300 (2023-10-03 11:49, 6 months ago)
Kabak
#24 2023-09-30 11:52
#47181 Alex300:

Вот этим коммитом в мастер ветку добавлена возможность подставлять функцию любые аргументы, а не только один через $this.
Теперь можно писать и так, например:

{PHP|cot_url('page', 'c=news')|var_dump({PHP.L.Home}, $this, {PHP.cfg.mainurl}, {PHP|cot_url('page', 'c=news')}, {HEADER_TITLE})}

Нуждается в тестировании и фидбеке ).

какие возможности это открывает ?   что конкретно можно делать такими вызовами и от каких плагинов теперь можно отказаться благодаря этому новшеству ?

Kort
#25 2023-10-01 06:09

До этого момента вызов функции в шаблоне можно было делать или с явным указанием аргументов или с динамической подстановкой только одного:

// Явно указываем аргумент $params
{PHP|cot_url('page', 'c=docs')}

// Аргумент формируется "на лету" для "раздело-зависимого" результата
{PHP.c|cot_url('page', 'c=$this')}

cot_url() здесь только для примера, и на самом деле динамическая подстановка аргумента очень удобная на практике штука. Например, для таких вещей:

{USERS_DETAILS_ID|sedby_comlist(‘comlist’, 5, 'com_date DESC', 'com_authorid = $this'}

т.е. вывод последних пяти комментов от пользователя на его странице. Привязка к тегу со значением user_id.

Вообще, если с аргументами начинаются сложности, все можно решить плагином с хуком, соответствующим проблемной локации:

$someresult = cot_somefunction($c, $usr['id'], $pag['page_id']);

После чего вывести в шаблоне уже готовую переменную:

{PHP.someresult}

Ну или так:

$t->assign('SOME_TAG', cot_somefunction($c, $usr['id'], $pag['page_id']));

И тогда в шаблоне просто:

{SOME_TAG}

Естественно, аргументы для примера.

Добавление в шаблонизатор возможности использовать более одного аргумента принципиально ничего не изменит. Такие случаи не так часты. Однако для тех пользователей, которые предпочитают большинство задач решать через шаблонизатор, это позволит расширить диапазон таких задач, не строя излишне сложных конструкций.

Использование плагинов и данная фича никак не связаны))

SED.by - создание сайтов, разработка плагинов и тем для Котонти
This post was edited by Kort (2023-10-01 07:57, 6 months ago)
Alex300
#26 2023-10-01 06:39

не строя излишне сложных конструкций.

Именно. Фреймворк должен давать инструменты, а не накладывать ограничения.

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
Kabak
#27 2023-10-01 07:58
#47184 Alex300:

не строя излишне сложных конструкций.

Именно. Фреймворк должен давать инструменты, а не накладывать ограничения.

Тогда нужно сдеать возможным выводить любую информацию в любой локации сайта на Cotonti.  Хотябы заменить старые плагины которые накладывают такие ограничения.  Тот же Recent Items не позволяет вывести некоторую информация о пользователе на  титульной странице. ( о создателе темы на форуме и о последнем ответившем )    Если он устарел, то нужно заменить его в коробочной версии Cotonti и написать статью, как можно выводить информацию из Страниц, Форумов и Коментариев в разных разделах сайта : на главной странице, в профиле пользователя.

Как, пометить какие-нибудь статьи или типики на форуме, чтобы можно было сделать на главной на них акцент - вывести отдельным блоком, типа важное или интересное обсуждение...

Добавлено 2 минуты спустя:

#47181 Alex300:

Вот этим коммитом в мастер ветку добавлена возможность подставлять функцию любые аргументы, а не только один через $this.
Теперь можно писать и так, например:

{PHP|cot_url('page', 'c=news')|var_dump({PHP.L.Home}, $this, {PHP.cfg.mainurl}, {PHP|cot_url('page', 'c=news')}, {HEADER_TITLE})}

Нуждается в тестировании и фидбеке ).

Как только разберусь как это работает, попробую это использовать и расскажу что нравится, а что нет 

Alex300
#28 2023-11-06 08:00

В шаблонизатор добавлены операторы строго сравнения: === и !==

Например проверить на строгое соотвествие null теперь можно так:

<!-- IF {ADMIN_EXTENSIONS_DETAILS_ROW_ORDER_INSTALLED} !== null AND {ADMIN_EXTENSIONS_DETAILS_ROW_ORDER_INSTALLED} != {ADMIN_EXTENSIONS_DETAILS_ROW_ORDER} -->
    <span class="highlight_red">{ADMIN_EXTENSIONS_DETAILS_ROW_ORDER_INSTALLED}</span> /
    <span class="highlight_green">{ADMIN_EXTENSIONS_DETAILS_ROW_ORDER}</span>
<!-- ELSE -->
    {ADMIN_EXTENSIONS_DETAILS_ROW_ORDER}
<!-- ENDIF -->

 

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
Argont
#29 2023-11-08 19:07
{PHP|cot_url('page', 'c=news')|var_dump({PHP.L.Home}

пожалуйста, можете для примера подсказать, что здесь вэтой конструкции, в котонти может быть вместо "var_dump"

хоть пару примеров. спасибо

иногда поржать над задравшим подбородок разработчиком

<<<12