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

Сообщение от Gozar Посмотреть сообщение
Да, да, то, что нужно. Конечно же мне подойдет наследование. Встроенный механизм хорошо.
Я бы сказал, что в SS он самый лучший (по сравнению с другими известными JS шаблонками)

Чтобы заюзать его на полную катушку, то обязательно прочитай про константы:

https://github.com/kobezzza/Snakeskin/wiki/const

Затем про блоки и прототипы (16-я глава).
А потом про наследование (18-я глава).

Например, я также на разных уровнях наследования определяю методы:

/// Можно объявлять как вне шаблона
{proto foo->getLogo(style)}
    ...
{/}

{block foo->getTitle()}
    ...
{/}

{template foo()}
   /// Так и внутри
   {proto getFavicon(style)}
       ...
   {/}
{/}


Их также можно выносить в отдельный файл.

Как ты уже наверное догадался, эти методы также наследуются и их можно переопределять и доопределять. Для вызова этих методов используется apply (для прототипов) и callBlock (для блоков).

{block bar->getTitle()}
    {super} /// super - это вызов тела родителя
    ...
{/}

{template bar() extends foo}
   {apply getStyle('dark')}
{/}


Внутри блоков/прототипов можно определять другие блоки/прототипы и так до бесконечности
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 06.02.2015 в 14:28.
Ответить с цитированием