Главное меню
все форумы все темы форума добавить тему
Долгожданный Smarty 3.1
Ну кроме того, что я описал выше, изменения коснулись работы самих шаблонов. Появилась интересная возможность указывать из какого скина брать шаблон
 
Smarty
{include file="[skin]module/template.tpl"}

 
Я сделал так, чтобы список возможных скинов состоял из текущего и default скина. Так что теперь можно легко взять недостающий шаблон из базового дизайна
 
Smarty
{include file="[dafault]module/template.tpl"}

 
Более того, теперь удобно то, что смарти будет сам просматривать подключенные скины в поисках шаблона
 
Smarty
{include file="module/template.tpl"}
{*сначала проверит наличие шаблона в текущем скине, потом в скине default*}

 
со временем я планирую добавить к списку все доступные скины. Правда, это может сделать сильно неочевидной отладку для начинающих, так что пока не решил окончательно.
 
появилась возможность использовать для шаблонов различные хранилища. В LabCMS это пока не нашло отражения (и не уверен найдет ли), но сама возможность получить шаблон прямо, скажем, из БД - интересная.
 
Smarty
{include file="db:template.tpl"}

 
Появилась возможность "наследования" шаблонов, при котором они ведут себя подобно классам. Полезность этого я пока не понял, но сама функция интересная.
 
Немного доработали алгоритм проверки актуальности шаблонов. Раньше он работала в друх режимах:
включено, когда проверяется наличие шаблона, его дата, наличие скомпилированной копии и ее актуальности, а так же наличие кэша и его актуальности. Курочка по зернышку, но при большой посещаемости выливалось это в ощутимую нагрузку.
и выключено - когда проверялся только кэш и, при отсутствии кэша, скомпилированная копия. При этом после каждой правки шаблонов приходилось шаблоны принудительно перекомпилировать.
Теперь добавился алгоритм, который проверяет актуальность скомпилированной копии только в случае отсутствия кэша. Вроде все логично и удобно - если шаблон исправил, то код обновиться после истечения срока жизни кэша или принудительного его сброса.
Еще перекомпиляция должна происходить при обновлении версии смарти, но у меня сложилось впечатление что эта опция то ли не работает, то ли работает криво.
 
Так же порадовало что они включили поддержку многобайтовых кодировок во все плагины. Раньше некоторые плагины приходилось патчить руками при каждом обновлении. Благо, обновляли они их крайне редко. Но вроде я уже начал повторяться