Forums / National / Russian / Идеи / Chunks

Куски кода в шаблоне

Macik
#39745 2014-09-02 08:46
#39742 esclkm:

Macik, если займешся, то сразу подумай, как бы при этом механизме выглядели бы  колбэки с множественными парметрами.

Это, собственно, к «универсальному механизму» расширенных тегов иметь отношения не будет. Точнее саму реализацию будет определять код «условно сторонней» функции. 

Синтаксис мне кажется надо смотреть у {FILE }

Вот это надо обсудить. Есть конкретные предложения по полному виду тега с мультипараметрами? И на сколько при этом необходимо оставить конвейерную обработку через пайп («|»)? Приведи реальные примеры где нехватает мультипараметров, какие ф-и вызываются.

 

Если без конвеера, то можно плясать от формата МодИкса:

{{=cot_crazy_widget ?PAGE_ID, PHP.catname, 'string', 15}} — знак «=», чтобы система знала что это вызов ф-и

Можно в более привычном виде:

{{=cot_crazy_widget(PAGE_ID, PHP.catname, 'string', 15)}}

все строковые параметры не заключенные в кавычки трактуются как название переменных шаблона и заменяются их значениями, цифровые соотв. как фифры.

Можно добавить именованных параметров:

{{=cot_crazy_widget(id=PAGE_ID, cat=PHP.catname, text='string', count=15)}}

Вопрос как объединять в цепочку? Например так:

{{=cot_date('date_full',PAGE_DATE) | cot_show_label(PAGE_ID, $this, text='string')}}

Можно даже пофантазировать и сделать реализацию такого:

{{=func1(TAG) | func2('text') | widget($func1, $func2) }}

Где `$func1` и `$func2` это результаты выполнения соотв. функций.

 

 

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

Тут опиши подробнее. Я с этим не особо сталкивался. Что именно хочется видеть и в каких случаях? Думаю, что расширенный вывод ошибок стоит делать токльо в режиме отладки. Т.к. в продакшене логичнее поведение шаблона, когда весь непонятный мусор или пустые теги «скрываются».

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F