<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Долгожданный Smarty 3.1 - LabCMS</title>
    <link>https://labcms.ru/discussion-theme.63/</link>
    <atom:link href="https://labcms.ru/discussion-theme.63.xml" rel="self" type="application/rss+xml"/>
    <description>Тема в форуме LabCMS</description>
    <language>ru-ru</language>
    <pubDate>Fri, 12 Jun 2026 13:46:20 +0300</pubDate>
    <lastBuildDate>Fri, 12 Jun 2026 13:46:20 +0300</lastBuildDate>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>LabCMS Feeder</generator>
    <item>
      <title>mushtat</title>
      <link>https://labcms.ru/discussion-theme.63/1/#p459</link>
      <description><![CDATA[О, вот теперь понял <img width="16" height="16" src="https://labcms.ru/skins/labcms/images/smiles/smiley.png" alt=""><br />
]]></description>
      <pubDate>Fri, 22 Jul 2011 00:43:14 +0400</pubDate>
      <guid>https://labcms.ru/discussion-theme.63/1/#p459</guid>
    </item>
    <item>
      <title>Loki</title>
      <link>https://labcms.ru/discussion-theme.63/1/#p458</link>
      <description><![CDATA[Нет, базовый, он же стандартный, он же дефолтный - один<img width="16" height="16" src="https://labcms.ru/skins/labcms/images/smiles/smiley.png" alt=""><br />
Но иногда бывает так, что в процессе жизни проекта дизайн меняется. Это приводит к такой ситуации:<br />
Text<br />
/skins<br />
&#160; &#160; /default<br />
&#160; &#160; /old_skin<br />
&#160; &#160; &#160; &#160; /my_module/temlate.tpl<br />
&#160; &#160; /new_skin<br />
&#160;<br />
Переключились на новый скин, а шаблон temlate.tpl для модуля my_module не скопировали. В этом случае система попробует его подключить из скина new_skin, затем из default (где его тоже нет, так как модуль не из стандартной поставки), а потом выбросит ошибку что, в принципе, правильно. Но есть идея заставить ее просмотреть и другие каталоги скинов. В этом случае она шаблон все же подключит.]]></description>
      <pubDate>Fri, 22 Jul 2011 00:36:18 +0400</pubDate>
      <guid>https://labcms.ru/discussion-theme.63/1/#p458</guid>
    </item>
    <item>
      <title>mushtat</title>
      <link>https://labcms.ru/discussion-theme.63/1/#p457</link>
      <description><![CDATA[<blockquote class="bb bb_quote">со временем я планирую<br />
добавить к списку все<br />
доступные скины</blockquote> Немного не понял. Разве в системе, кроме стандартного скина есть еще дэфолтные шаблоны?]]></description>
      <pubDate>Fri, 22 Jul 2011 00:13:55 +0400</pubDate>
      <guid>https://labcms.ru/discussion-theme.63/1/#p457</guid>
    </item>
    <item>
      <title>Loki</title>
      <link>https://labcms.ru/discussion-theme.63/1/#p456</link>
      <description><![CDATA[Ну кроме того, что я описал выше, изменения коснулись работы самих шаблонов. Появилась интересная возможность указывать из какого скина брать шаблон
<br />&#160;<br />
Smarty&#123;include file=&quot;[skin]module/template.tpl&quot;&#125;
<br />&#160;<br />
Я сделал так, чтобы список возможных скинов состоял из текущего и default скина. Так что теперь можно легко взять недостающий шаблон из базового дизайна
<br />&#160;<br />
Smarty&#123;include file=&quot;[dafault]module/template.tpl&quot;&#125;
<br />&#160;<br />
Более того, теперь удобно то, что смарти будет сам просматривать подключенные скины в поисках шаблона
<br />&#160;<br />
Smarty&#123;include file=&quot;module/template.tpl&quot;&#125;<br />
{*сначала проверит наличие шаблона в текущем скине, потом в скине default*}
<br />&#160;<br />
со временем я планирую добавить к списку все доступные скины. Правда, это может сделать сильно неочевидной отладку для начинающих, так что пока не решил окончательно.
<br />&#160;<br />
появилась возможность использовать для шаблонов различные хранилища. В LabCMS это пока не нашло отражения (и не уверен найдет ли), но сама возможность получить шаблон прямо, скажем, из БД - интересная.
<br />&#160;<br />
Smarty&#123;include file=&quot;db:template.tpl&quot;&#125;
<br />&#160;<br />
Появилась возможность "наследования" шаблонов, при котором они ведут себя подобно классам. Полезность этого я пока не понял, но сама функция интересная.
<br />&#160;<br />
Немного доработали алгоритм проверки актуальности шаблонов. Раньше он работала в друх режимах:<br />
включено, когда проверяется наличие шаблона, его дата, наличие скомпилированной копии и ее актуальности, а так же наличие кэша и его актуальности. Курочка по зернышку, но при большой посещаемости выливалось это в ощутимую нагрузку.<br />
и выключено - когда проверялся только кэш и, при отсутствии кэша, скомпилированная копия. При этом после каждой правки шаблонов приходилось шаблоны принудительно перекомпилировать.<br />
Теперь добавился алгоритм, который проверяет актуальность скомпилированной копии только в случае отсутствия кэша. Вроде все логично и удобно - если шаблон исправил, то код обновиться после истечения срока жизни кэша или принудительного его сброса.<br />
Еще перекомпиляция должна происходить при обновлении версии смарти, но у меня сложилось впечатление что эта опция то ли не работает, то ли работает криво.
<br />&#160;<br />
Так же порадовало что они включили поддержку многобайтовых кодировок во все плагины. Раньше некоторые плагины приходилось патчить руками при каждом обновлении. Благо, обновляли они их крайне редко. Но вроде я уже начал повторяться<img width="16" height="16" src="https://labcms.ru/skins/labcms/images/smiles/smiley.png" alt=""><br />
]]></description>
      <pubDate>Thu, 21 Jul 2011 22:50:49 +0400</pubDate>
      <guid>https://labcms.ru/discussion-theme.63/1/#p456</guid>
    </item>
    <item>
      <title>mushtat</title>
      <link>https://labcms.ru/discussion-theme.63/1/#p455</link>
      <description><![CDATA[<strong class="bb">Loki</strong>, расскажите, как эти нововведения повлияли на новый релиз системы? Интересно, много ли мороки было. Какие модули претерпели изменений, в связи с новым смарти?]]></description>
      <pubDate>Thu, 21 Jul 2011 22:01:55 +0400</pubDate>
      <guid>https://labcms.ru/discussion-theme.63/1/#p455</guid>
    </item>
    <item>
      <title>Loki</title>
      <link>https://labcms.ru/discussion-theme.63/1/#p428</link>
      <description><![CDATA[Мда... зато с путями ребята наворотили такого, что в пору за голову хвататься<img width="16" height="16" src="https://labcms.ru/skins/labcms/images/smiles/smiley_sad.png" alt=""><br />
Прежде всего, запретили при использовании методов fetch и display указывать пути начинающиеся с точки.<br />
То есть вот так нельзя:
<br />&#160;<br />
PHP$smarty-&gt;fetch&#40;'../some.tpl'&#41;;
<br />&#160;<br />
при том, что вот так можно:
<br />&#160;<br />
PHP$smarty-&gt;fetch&#40;'sub/../../some.tpl'&#41;;
<br />&#160;<br />
Логику этого они пытались донести до меня на форуме, но либо я слишком глуп, либо сильно мешал языковой барьер, либо и то и другое сразу. В любом случае их увещевания про "неочевидность" и "небезопасность" на меня действия не возымели.
<br />&#160;<br />
Это еще полбеды - перейти на абсолютные пути в коде не проблема... но что они удумали с с путями в шаблонах!<br />
Как вы думаете, что сделает нижеприведенный код?
<br />&#160;<br />
Smarty&#123;include file=&quot;../foo.tpl&quot;&#125;<br />
&#123;include file=&quot;bar.tpl&quot;&#125;<br />
&#160;
<br />&#160;<br />
Ну очевидно вроде: первая строчка подключит файл foo.tpl, лежащий в родительском каталоге текущего каталога шаблонов ($template_dir), а вторая строчка подключит шаблон bar.tpl лежащий в $template_dir... Во всяком случае так было в прежних версиях.
<br />&#160;<br />
Теперь же во главу угла поставлен каталог текущего шаблона. Думаете, пути будут отсчитываться от текущего шаблона? Ничего подобного!
<br />&#160;<br />
Первая строчка будет отсчитываться от текущего шаблона, а вторая - от $template_dir. Все то начинается с точек отсчитывается от текущего, все что не с точек (ну за исключением абсолютных путей) - отсчитывается от $template_dir. Решение окончательное и обжалованию не подлежит<img width="16" height="16" src="https://labcms.ru/skins/labcms/images/smiles/smiley_sad.png" alt="">
<br />&#160;<br />
Будем с этим жить...]]></description>
      <pubDate>Sun, 10 Jul 2011 19:59:29 +0400</pubDate>
      <guid>https://labcms.ru/discussion-theme.63/1/#p428</guid>
    </item>
    <item>
      <title>Loki</title>
      <link>https://labcms.ru/discussion-theme.63/1/#p420</link>
      <description><![CDATA[Как-то, утомившись ждать, я пропустил в конце июня выход новой (правда, пока еще релиз-кандидат) версии smarty. Да это и не удивительно - изначально она планировалась на конец февраля<img width="16" height="16" src="https://labcms.ru/skins/labcms/images/smiles/smiley.png" alt=""><br />
Обещают много вкусного.
<br />&#160;<br />
Из "животрепещущего" - наконец-то, вроде бы, пофиксили проблему с относительными путями, из-за которой приходилось патчить каждый новый релиз, чтобы он нормально работал.
<br />&#160;<br />
Ввели класс для работы с key-value хранилищами, так что теперь не придется пользоваться собственным классом (точнее, его можно будет сильно упростить).
<br />&#160;<br />
Изменили алгоритм проверки актуальности скомпилированной версии. Теперь можно настроить проверку только в том случае, если не найдена кэшированная копия. Думаю, это может быть полезным.
<br />&#160;<br />
Появился новый тег<br />
Smarty&#123;setfilter filter1|filter2|filter3....&#125;...&#123;/setfilter&#125;<br />
с его помощью можно применять различные фильтры к произвольным блокам кода. Пока еще не уверен в абсолютной его полезности, но выглядит интересно.
<br />&#160;<br />
Столь же интересно и спорно выглядит опция escape_html, которая эскейпит все выводимые переменные.
<br />&#160;<br />
Наконец-то все плагины переписаны с учетом существования других языков, кроме английского! Теперь они без допиливания должны нормально работать с многобайтовыми кодировками.
<br />&#160;<br />
Прекращена поддержка обратной совместимости с версией 2.х. Для ее поддержки создан отдельный класс SmartyBC. Это радует - меньше "зоопарка" в синтаксисе, меньше старого кода.
<br />&#160;<br />
Остальные нововведения меня не столь возбудили и больше касаются изменения внутреннего устройства, но и то что я перечислил, для меня, вполне показывает интересность данной версии.<br />
Будем пробовать.]]></description>
      <pubDate>Thu, 07 Jul 2011 13:40:05 +0400</pubDate>
      <guid>https://labcms.ru/discussion-theme.63/1/#p420</guid>
    </item>
  </channel>
</rss>
