Тема: Snakeskin
Показать сообщение отдельно
  #477 (permalink)  
Старый 11.02.2015, 08:46
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
1. proto может быть только один?
Сколько угодно, но имя должно быть уникально в рамках шаблона, внутрь также можно включать другие прототипы и блоки, есть ещё анонимные прототипы - они нужны когда просто нужно сделать рекурсию (которая кстати, оптимизируется), но не хочется вводить именованный элемент. Размещать прототипы (как и вызываемые блоки) можно как в шаблоне, так и вне до декларации шаблона, к которому они принадлежат, можно выносить в отдельный файл.

{proto foo->some(a, b)}
    {a + b}
{/}

{template foo()}
    {proto bar(a)}
        {a * 2}
    {/}

    {apply some(1, 2)} /// 3
    {apply bar(2)} /// 4
{/}


Цитата:
2. block или blocks? В чем отличия или это опечатка?
Опечатка, есть только block.

Цитата:
Фильтры клева. Немного чудно, что !html отменяет html, который задается неявно, но клева


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

{var a = '  fooo '|trim}

{if ' fooo  '|trim}


и т.д.

Если нужно наложить фильтр на определённую часть выражения, а не на всю, то нужно выделить её скобками.

{var a = (' ffffuuu '|trim) + ' bar  '}


Но фильтр !html можно применять только глобально.

PS: на меня тут гора дел навалилась, поэтому не смог сделать релиз как обещал Буду стараться к концу этой недели сделать.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 11.02.2015 в 09:20.
Ответить с цитированием