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

19
В 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
  • +6
  • 28 апреля 2011, 00:09
  • ort

Комментарии (18)

RSS свернуть / развернуть
Приятная новость!
0
как по скорости? Я только о тормозах по сравнению с smarty 2 нашел на сайтах нета :(
0
Максим, спасибо огроменское!
Замена Smarty спровоцировала внесение изменений с самого релиза 0.4.2, уже 5 час вожусь.
Еще осталось решить, что с Mootools 1.2.5 и попапами вставки картинок в комментариях.
Давно хотелось это сделать, но только сегодня пошло-поехало.
Еще раз спасибо, солома кое-где задымилась :)
0
Это офигетельно!
0
да ну его, этот смарти =\
0
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


Появляется в шапке сайта, что делать?
0
сравнить index.php с SVN версией
0
[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, удалил все старое, поставил с нуля, оставив БД старую.
Как быть?
0
ort, подскажи пожалуйста, куда копать?
0
нужно обновить полностью ядро сайта (каталог engine), если не поможет, то отключить админку и проверить
0
Отключив плагин Админка, проблема ушла…
0
не туда запостил.

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