Цитата:
А вообще я наблюдаю за развитием твоего проекта, пока не придумал конечно куда это внедрить. Но мысли некоторые навивают. |
Цитата:
Из последнего: закончил реализацию тега script, буквально пару часов назад. Пара примеров: <tsn:script> <[CDATA[ // Код выполняется в глобальной области видимости шаблона. // Созданные переменные будут доступны в других JS-выражениях и тегах script. var data = { key: 'value' }; ]]> </tsn:script> <tsn:echo data="data.key" /> Выведет: "value". Или так: <tsn:script type="local"> <[CDATA[ // Код выполняется в локальной области видимости анониймной функции. // Тег этого типа может выводить текстовые данные в результат через return: return 'Text'; ]]> </tsn:script> На выходе: "Text". Ещё есть атрибут context в теге типа local, работает так же как и в других тегах. Вообще раньше я был против подобных возможностей в шаблоне, но потом понял, что раз шаблон реализует view-логику, то такой тег необходим для написания костылей или упрощения преобразования данных. Как вариант, в нем можно создавать функции-модификаторы, что бы потом использовать в JS-выражениях в других шаблонах. |
Цитата:
|
Цитата:
|
В примере есть одно некрасивое решение с переопределением блока CONTENT. Сейчас, что бы обернуть существующий блок в разметку и заменить его, нужно изъебываться с сохранением в хранилище данных результат рендеринга блока. Для такой ситуации я реализовал новый тип блока wrapper:
<tsn:block name="CONTENT" type="wrapper"> <div class="service"> <tsn:render block="CONTENT" /> </div> </tsn:block> Этот блок сначала сохраняет глобальный блок с именем name как локальный, а затем заменяет глобальный блок собой. Это позволяет вызывать оригинальный блок CONTENT внутри блока типа wrapper, потому как локальные блоки имеют больший приоритет при использовании тега render. Если смотреть на код шаблона, не должно возникать двусмысленностей с именами блоков, если знать про тип wrapper. Как вам такое решение? Пока не пушил на гитхаб. |
B~Vladi,
вот сижу выбираю шаблонизатор какой нить, но нужен что бы работал c PHP а не NodeJS, есть идеи? Твой реально на PHP переписать? И как ты на это смотришь? |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 20:05. |