Сообщение от 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')}
{/}
Внутри блоков/прототипов можно определять другие блоки/прототипы и так до бесконечности