Обновление шаблонизатора Smarty до версии 3.0.7

В SVN версии LS произошло обновление шаблонизатора Smarty, теперь используется последняя 3.0.7 версия, написанная на PHP 5.2.
Обновление в ядре прошло гладко, единственное пришлось внести изменения в стандартный класс Smarty — trac.lsdev.ru/livestreet/changeset/1129, это позволит делигировать шаблоны плагинами.

Теперь самое важное — для работы текущих шаблонов на новой версии шаблонизатора необходимо внести в них некоторые изменения. А именно:
  • везде, где используется
    {include file='file_name.tpl'}
    имя файла нужно брать в кавычках, по сути это относится к любым параметрам
  • не использовать апострофы `, т.е. было
    {include file='paging.tpl' aPaging=`$aPaging`}
    стало
    {include file='paging.tpl' aPaging=$aPaging}
    для математических выражений
    {section name=closelist1  loop=`$nesting-$cmtlevel+1`}
    меняем их на скобки
    {section name=closelist1  loop=($nesting-$cmtlevel+1)}
  • после открывающей фигурной скобки { и перед закрывающей } не должно быть пробельных символов, иначе они не считаются за конструкции Smarty
  • в условиях логические операторы необходимо отделять пробелами, было
    {if $aParams[0]=='favourites'and$aParams[1]!='comments'}
    стало
    {if $aParams[0]=='favourites' and $aParams[1]!='comments'}
Эти правила должны помочь достаточно легко адаптировать ваши шаблоны под текущую(а в последствии и новую версию) SVN версию LS.
Пример адаптации шаблона «new» — trac.lsdev.ru/livestreet/changeset/1128

18 комментариев

avatar
Приятная новость!
avatar
как по скорости? Я только о тормозах по сравнению с smarty 2 нашел на сайтах нета :(
avatar
Максим, спасибо огроменское!
Замена Smarty спровоцировала внесение изменений с самого релиза 0.4.2, уже 5 час вожусь.
Еще осталось решить, что с Mootools 1.2.5 и попапами вставки картинок в комментариях.
Давно хотелось это сделать, но только сегодня пошло-поехало.
Еще раз спасибо, солома кое-где задымилась :)
avatar
Это офигетельно!
avatar
да ну его, этот смарти =\
avatar
Notice: Constant LS_VERSION already defined in /hdd/www/web/config/loader.php on line 21 Notice: Constant SYS_HACKER_CONSOLE already defined in /hdd/www/web/config/loader.php on line 22


Появляется в шапке сайта, что делать?
avatar
сравнить index.php с SVN версией
avatar
[ERROR:classLoad] Smarty_Internal_Data
File not found: /hdd/www/web/classes/modules/internal/Internal.class.php
[ERROR:classLoad] Smarty_Internal_Template
File not found: /hdd/www/web/classes/modules/internal/Internal.class.php
[ERROR:classLoad] Smarty_Internal_Resource_File
File not found: /hdd/www/web/classes/modules/internal/Internal.class.php
[ERROR:classLoad] Smarty_Internal_TemplateCompilerBase
File not found: /hdd/www/web/classes/modules/internal/Internal.class.php
[ERROR:classLoad] Smarty_Internal_Templatelexer
File not found: /hdd/www/web/classes/modules/internal/Internal.class.php
[ERROR:classLoad] Smarty_Internal_Templateparser
File not found: /hdd/www/web/classes/modules/internal/Internal.class.php
[ERROR:classLoad] Smarty_Internal_CompileBase
File not found: /hdd/www/web/classes/modules/internal/Internal.class.php


Полностью скачал с svn, удалил все старое, поставил с нуля, оставив БД старую.
Как быть?
avatar
ort, подскажи пожалуйста, куда копать?
avatar
нужно обновить полностью ядро сайта (каталог engine), если не поможет, то отключить админку и проверить
avatar
Отключив плагин Админка, проблема ушла…
avatar
не туда запостил.

По теме:
Из-за админки не загружаются изображения. Отключил админку, проблема ушла.
avatar
для новой версси ls, сделай шаблон на jQuery
avatar
есть куча шаблонов на jQ для 0.4.3
avatar
слишком уж у вас вызовы великоваты на LS. Сложновато ориентироваться, слава богу сделали разделение по блокам(файлам)
avatar
Было бы неплохо в транковой версии обновить шаблоны профайлера, а то ругается смарти :)
avatar
пофиксил
avatar
Обновил, внес изменения в стандартный класс Smarty, пофиксил шаблон, но не могу активировать ни один плагин. Помогите разобраться. Просто пишет «Ошибка: NOT_FOUND_LANG_TEXT» и даже не понятно где исправлять.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.