Перейти к содержимому



1-й стабильный релиз шаблонизатора SMARTY 3-й линейки

#1 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71
0

Отправлено 13 Ноябрь 2010 - 06:48

забираем отсюда http://www.smarty.net/download
дркументация на русском правда пока ко 2-й линейки тут http://www.smarty.net/documentation

 

 

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Шаблонизатор PHP
  2. Из PHP кода в код SMARTY
  3. Smarty и собственные функции
  4. Продам вечные ссылки на сайтах различных тематик
  5. Первый трафик - УРА, новые сомнения...

#2 ZiTosS

ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 14 Ноябрь 2010 - 11:44

sc2r2bey, что-то у них на сайте нифига не написано чем реализ третьей версии отличается от второй. Есть только логи фиксов багов. Если найдешь описание дополнений и нововведений, отпиши :)
  • 0

#3 surfer

surfer
    Topic Starter
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 21 Ноябрь 2010 - 23:06

вышел новый релиз 3.0.5

посмотри здесь http://www.smarty.net/v3_overview
внизу ссылка есть http://smarty-php.go...MARTY2_BC_NOTES
  • 0

#4 ZiTosS

ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 29 Ноябрь 2010 - 04:49

Решил перевести информацию о нововведениях и исправлениях на русский:

Крупные изменения относительно Smarty 2

Синтаксис

API Smarty 3 имеет новый синтаксис. Большая часть синтаксиса Smarty 2 поддерживается(обертки), но не рекомендуется(считается устаревшим). Загляните в README для ознакомления с новым синтаксисом Smarty 3.

Синтаксис {$array|@mod} всегда был немного запутанным, где "@" была необходима для применения модификатора к массиву, а не к каждому элементу массива. Как правило, вы всегда хотите применять модификатор к переменной, независимо от её типа. В Smarty 3, {$array|mod} и {$array|@mod} идентичны. Можно с уверенностью убрать "@" и модификатор будет по-прежнему применяться к массиву. Если вы хотите, чтобы модификатор применялся к каждому элементу массива, вы должны зациклить обраотку массива в шаблоне, или использовать пользовательский модификатор, который поддерживает итерации. Большинство функций Smarty уже экранируют значения, например такие как {html_options}

Версия PHP

Smarty 3 работает только с PHP5. Поддержка PHP4 отсутствует.

Тег {php}

Тег {php} по умолчанию отключен. Использование тегов {php} является устаревшим. Поддержку данного тега можно включить:

$smarty->allow_php_tag=true

Но если вы разбросаете PHP-код, который должен выполняться совместно в одном {php}, на несколько {php} он может просто напросто не заработать.

Разделители и пробельные символы

Разделители, окруженные пробелами, больше не рассматриваются как теги Smarty.
Поэтому, { foo } не будет скомпилирован как тег, вы должны писать {foo}. это изменение делает работу легче с Javascript/CSS и устраняет необходимость в теге {literal}. Это может быть отключено в настройках:
$smarty->auto_literal = false;


Строки без кавычек

Smarty 2 смотрел сквозь пальцы, когда дело доходило до строк без кавычек в параметрах. Smarty3 является более строгим и ограничивающим. Вы все еще можете передавать строки без кавычек, пока они не содержат специальных символов. (специальные символы - это что-либо вне A-Za-z0-9_)
Для примера, строка пути к файлу должна быть в кавычках
{include file='path/foo.tpl'}

Расширение Smarty класса

Smarty 3 использует __construct метод для инициализации. Если вы расширяете класс Smarty, этот конструктор явно не вызывается, если ваш дочерний класс имеет собственный конструктор. Для того чтобы выполнить конструктор Smarty, обязательно вызовите parent::__construct() внутри конструктора вашего дочернего класса.

class MySmarty extends Smarty {
function __construct() {
parent::__construct();

// ваша инициализация кода должна быть здесь

}
}


Автозагрузчик

Smarty 3 регистрирует собственный автозагрузчик с spl_autoload_register. Если в вашем коде существует функция __autoload, то эта функция должна быть явно зарегестрирована в стеке __autoload. Смотри http://us3.php.net/m...ad-register.php для уточнения деталей.

Имена файлов плагинов

Smarty 3 поддерживает в необязательном порядке PHP spl_autoloader. Автозагрузчик требует имена файлов в нижнем регистре. Из-за этого, имена файлов плагинов Smarty так же должны быть в нижнем регистре.
В Smarty 2 работали и смешанные имена файлов.

Видимость специальных переменных Smarty

В Smarty 2 специальные переменные Smarty $smarty.section... и $smarty.foreach... были глобальными. Если вы имели loops(петли) с теми же именами в подшаблонах, вы могли случайно перезаписать значения родительского шаблона.

В Smarty 3 специальные переменные Smarty локальны внутри шаблона, в котором определен loop. Если вам нужно их значение в подшаблоне, вы должны передать их как параметр. Например так:
{include file='path/foo.tpl' index=$smarty.section.foo.index}

SMARTY_RESOURCE_CHAR_SET

Smarty 3 назначает константе SMARTY_RESOURCE_CHAR_SET значение "utf-8" как дефолтную кодировку шаблона.
Это сейчас используется только в модификаторах таких как escape. Если ваш шаблон использует другую кодировку, вы можете определить константу соответственным образом. В противном случае вы можете не получить никакого вывода.

Новая строка в {if}-тегах

\n был добавлен в скомпилированный код после {if},{else},{elseif},{/if} тегов, чтобы получить ожидаемые переносы строк в шаблоне-источнике.
Если один из {if} тегов находится в конце вы теперь получите перевод строки в HTML выводе.

trigger_error()

API-функция trigger_error() была удалена, потому что функция trigger_error имеется в наличии в самом PHP.
Тем не менее данная функция ещё включена в обертку API Smarty2.

Константы Smarty

Константы
SMARTY_PHP_PASSTHRU
SMARTY_PHP_QUOTE
SMARTY_PHP_REMOVE
SMARTY_PHP_ALLOW
были заменены на константы класса Smarty
Smarty::PHP_PASSTHRU
Smarty::PHP_QUOTE
Smarty::PHP_REMOVE
Smarty::PHP_ALLOW


  • 0


Оформление форума – IPBSkins.ru