Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
andylars 20.07.2015 19:52 / 20.07.2015 19:54
Подхожу к краеугольному камню - подхода к шаблонизации. Хочется простого, но элегантного и удобного.@main[] # ... ^switch[$Url]{ ^case[/;DEFAULT]{ ^Tpl:MainGrid[ $.Pagename[Main page] ] } ^case[/article]{ ^Tpl:MainGrid[ $.Pagename[Article] $.Content{^Tpl:Content_Article[]} $.Footer{ ^Tpl:Footer[ $.Year{ ^for[i](3;0){ ^eval(2015-$i) }[,] } ] } ] } } @CLASS Tpl @MainGrid[_param][locals] $_slot[ $.Title[SiteName] $.Header{^Tpl:Header[$.Size[big] ]} $.Pagename[Undefined] $.Content{^Tpl:Content_Main[]} $.Footer[Copyright (c)] ] ^_slot.add[$_param] <html> <head><title>$_slot.Title</title></head> <body> $_slot.Header <hr> <h3>$_slot.PageName</h3> $_slot.Content $_slot.Footer </body> @Header[_param][locals] $_slot[ $.Size[small] ] ^_slot.add[$_param] ^if($_slot.Size eq 'big'){ <h1>BIG Header</h1> }{ <h2>Small Header</h2> } @Content_Main[] <p>Main content</p> @Content_Article[] <p>Article content</p> @Footer[_param][locals] $_slot[ $.Year[2015] ] ^_slot.add[$_param] <i>$_slot.Year</i>