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

ErsteVorherige12

Dr2005alex
#16 25. Oktober 2018, 10:29

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

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

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

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

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

 

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

Спасибо!

Added 48 minutes later:

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

Dieser Beitrag wurde von Kopusha (am 25. Oktober 2018, 12:57, vor 5 Jahre) bearbeitet
Dr2005alex
#18 25. Oktober 2018, 13:58

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

ДА 

WebKaa.ru - Cotonti Relax

Dieser Beitrag wurde von Dr2005alex (am 26. Oktober 2018, 05:24, vor 5 Jahre) bearbeitet
Kopusha
#19 19. Januar 2019, 10:04

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

Dr2005alex
#20 20. Januar 2019, 09:18

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

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

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

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

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

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

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

Alex300
#23 30. September 2023, 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/

Dieser Beitrag wurde von Alex300 (am 3. Oktober 2023, 11:49, vor 6 Monate) bearbeitet
Kabak
#24 30. September 2023, 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 1. Oktober 2023, 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 - создание сайтов, разработка плагинов и тем для Котонти

Dieser Beitrag wurde von Kort (am 1. Oktober 2023, 07:57, vor 6 Monate) bearbeitet
Alex300
#26 1. Oktober 2023, 06:39

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

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

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

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

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

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

ErsteVorherige12