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

<<<12

Dr2005alex
#16 25.10.2018 10:29

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

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

WebKaa.ru - Cotonti Relax
Kopusha
#17 25.10.2018 12:09
#43753 Dr2005alex:

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

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

 

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

Спасибо!

Added 48 minutes later:

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

Відредаговано: Kopusha (25.10.2018 12:57, 5 років тому)
Dr2005alex
#18 25.10.2018 13:58

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

ДА 

WebKaa.ru - Cotonti Relax

Відредаговано: Dr2005alex (26.10.2018 05:24, 5 років тому)
Kopusha
#19 19.01.2019 10:04

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

Dr2005alex
#20 20.01.2019 09:18

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

WebKaa.ru - Cotonti Relax
Roffun
#21 20.01.2019 12:56
#43753 Dr2005alex:

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

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

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

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

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

Alex300
#23 30.09.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/

Відредаговано: Alex300 (03.10.2023 11:49, 5 місяців тому)
Kabak
#24 30.09.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 01.10.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 - создание сайтов, разработка плагинов и тем для Котонти

Відредаговано: Kort (01.10.2023 07:57, 5 місяців тому)
Alex300
#26 01.10.2023 06:39

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

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

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

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

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

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

<<<12