diff --git a/docs/configure.in b/docs/configure.in index a9b14eed..72539c72 100755 --- a/docs/configure.in +++ b/docs/configure.in @@ -346,7 +346,7 @@ AC_SUBST(LANG) AC_SUBST(BUILD_DATE) case "$LANG" in - ru) ENCODING="windows-1251" + ru) ENCODING="utf-8" FOP="$FOP -c fop/ru.cfg";; ja) ENCODING="utf-8";; *) ENCODING="ISO-8859-1";; diff --git a/docs/ru/appendixes/bugs.xml b/docs/ru/appendixes/bugs.xml index 96755267..f0aa76a7 100644 --- a/docs/ru/appendixes/bugs.xml +++ b/docs/ru/appendixes/bugs.xml @@ -1,11 +1,11 @@ - + - + Ошибки - BUGS, - Smarty . + Смотрите файл BUGS, который поставляется вместе с + стандартной поставкой Smarty или ищите список на сайте. - + - + Источники - Smarty: &url.smarty; - , - &ml.general.sub;. - - &url.ml.archive;. + Домашняя страница Smarty доступна по адресу + &url.smarty; + + + + + Вы можете подписаться на список рассылки, отправив e-mail на адрес + &ml.general.sub;. Архив списка рассылки можно + просмотреть здесь. + + + + + + Форумы доступны по адресу &url.forums; + + + + + + Wiki находится по адресу &url.wiki; + + + + + + Заходите в чат на irc.freenode.net#smarty. + + + + + + ЧаВО находятся тут и + тут. + + + - + - + Советы - + Обработка пустых переменных - , , , - , - "&nbsp;". - {if}, - Smatry - + Иногда, например, для того чтобы фон таблицы работал корректно, + необходимо вывести вместо пустого значения переменной, значение + по умолчанию, например &nbsp;. + Многие бы использовали конструкцию + {if} + в данной ситуации, + но в Smatry есть более короткий путь - используя модификатор переменной default. + + + + PHP выдаст ошибку Undefined variable в случае, если + + error_reporting() установлен в E_ALL + и переменная не была присвоена шаблону Smarty. + + + - &nbsp;, + Вывод &nbsp;, если переменная пуста - . default - . + См. также default и + Обработка переменных по умолчанию. - + Обработка переменных по умолчанию - , - default , - {assign}. + Если переменная встречается часто, то использование модификатора + default + каждый раз можно избежать, используя функцию + {assign}. - + Назначение переменной шаблона значения по умолчанию - . default - . + См. также + default и + Обработка пустых переменных. - (title) - + Присвоение переменной заголовка (title) шаблону-шапке - - , . , - ? - . + Если большинство ваших шаблонов имеют похожие верхние и нижние + части, то имеет смысл вынести их в отдельные файлы и + подключать их. + Но как быть, если шапка должна иметь различные заголовки на различных + страницах? Вы можете передавать текст заголовка шапке в качестве атрибута в момент её включения. - (title) - + Присвоение переменной заголовка (title) шаблону-шапке - mainpage.tpl - , - "Main Page" header.tpl, - . + mainpage.tpl - когда отображается главная страница, + заголовок Main Page передается в + header.tpl, + и будет в дальнейшем использован в качестве заголовка. - archives.tpl - , - "Archives". , - archives_page.conf, - , . + archives.tpl - когда отображается страница архива, + заголовок будет Archives. + Обратите внимание, что в этом примере мы + используем переменную из archives_page.conf, вместо + того, чтобы жестко прописать её в шаблоне. - header.tpl - , "Smarty News" - , $title , - default. + header.tpl - Обратите внимание, что + Smarty News отображается тогда, когда $title не задан, + благодаря модификатору + default. - + Даты - Smarty - , - date_format - - , . + Обычно даты в Smarty всегда передаются как + временные метки (англ. timestamp), + что позволяет проектировщикам шаблонов использовать date_format + для полного контроля над форматированием даты и также делает легким + сравнение дат там, где это необходимо. - Smarty 1.4.0, Smarty - Unix (unix timestamps), mysql, , - + Начиная с версии Smarty 1.4.0, вы можете передавать даты в Smarty в виде + меток времени Unix (unix timestamps), mysql, или в любом другом виде, + который понимает функция strtotime(). - using date_format + Использование date_format - : + Результат работы: @@ -168,35 +187,39 @@ Jan 4, 2001 ]]> - : + Результат работы: + + Даты можно ставнивать в шаблонах путем сравнения + меток времени следующим образом: + - {html_select_date} - , - . , - . + Когда + {html_select_date} + используется в шаблоне, программист наверняка захочет преобразовать + данные из формы назад в формат временной метки. Вот функция, которая + поможет вам сделать это. - + Преобразование элементов формы ввода даты назад к временной метке - . - {html_select_date}, - {html_select_time}, - date_format - $smarty.now + См. также + + {html_select_date}, + + {html_select_time}, + + date_format и + + $smarty.now WAP/WML - WAP/WML , - Content-type - . - - , . - , - , - {insert}; - , {insert} ! - , , - . + WAP/WML шаблоны требуют, чтобы + заголовок Content-Type + был передан вместе с шаблоном. Простейший путь - написать + пользовательскую функцию, которая будет выводить заголовки. + Если вы используете кэширование, + это не сработает, так что мы сделаем это с помощью тэга + {insert}; + не забывайте, что тэги {insert} не кэшируются! + Убедитесь, что перед шаблоном в браузер ничего не выводится, + иначе отправить заголовок не получится. - {insert} Content-Type WML + Использование {insert} для отправки заголовка Content-Type для WML - Smarty insert: + ваш шаблон Smarty должен начинаться с тэга insert: - + Составные шаблоны - , - : PHP - (, ). - Smarty, . - : , - . - , - . , , - , , - . + По традиции, программирование шаблонов в вашем приложении идёт следующим + путём: Сначала вы формируете переменные внутри вашего приложения PHP + (возможно, используя запросы к базе данных). Затем вы создаёте экземпляр + объекта Smarty, + назначаете переменные и + отображаете шаблон. + Давайте представим себе такую ситуацию: К примеру, у нас есть котировщик + ценных бумаг в нашем шаблоне. Мы собираем данные о котировках ценных бумаг + в нашем приложении, затем передаём эти переменные в шаблон и отображаем + его. Правда, было бы здорово, если бы этот котировщик можно было перенести + в другое приложение, просто подключив к нему шаблон, не беспокоясь об + источнике данных. - , - . + Вы можете сделать это, написав собственное расширение для получения + данных и присваивания их переменной шаблона. - + составной шаблон function.load_ticker.php - - - $plugins + поместите файл в + + директорию $plugins assign($params['assign'], $ticker_info); } ?> @@ -357,49 +387,51 @@ Stock Name: {$ticker.name} Stock Price: {$ticker.price} - . - {include_php}, - {include} - {php}. + См. также + + {include_php}, + + {include} и + {php}. - E-mail + Сокрытие E-mail адреса - - , e-mail - ? e-mail - -. - , , e-mail - javascript' HTML-, - . - {mailto}. + Вы когда-нибудь удивлялись, как ваш e-mail адрес попадает в такое + количество спамерских рассылок? Один из способов сбора e-mail адресов + заключается в просмотре веб-страниц. Чтобы помочь предотвратить эту + проблему, вы можете сделать так, чотбы ваш e-mail адрес отображался + в скрытом за javascript'ом виде в HTML-исходниках, в то же время + выглядя и работая корректно в браузере. Это можно совершить при помощи + расширения + {mailto}. - e-mail + Пример сокрытия e-mail адреса в шаблоне - + Техническое Замечание - 100% . - , - e-mail , - ... ... ... - :-?. + Этот метод не может гарантировать 100% защиты. + Существует вероятность, что спамер запрограммирует свой + сборщик e-mail адресов на раскодирование этих значений, + но это маловероятно... + будем надеяться... пока что... + куда я там дел свой квантовый компьютер :-?. - . - escape - {mailto}. + См. также модификатор + escape и + {mailto}. diff --git a/docs/ru/appendixes/troubleshooting.xml b/docs/ru/appendixes/troubleshooting.xml index 439a6ee0..6e77da9f 100644 --- a/docs/ru/appendixes/troubleshooting.xml +++ b/docs/ru/appendixes/troubleshooting.xml @@ -1,18 +1,18 @@ - + - + - + Решение проблем - Smarty/PHP + Ошибки Smarty/PHP - Smarty , - . , - : + Smarty может ловить многие ошибки, например отсутствующие атрибуты + тэгов или недопустимые имена переменных. Если это произойдет, вы увидите + ошибку наподобие следующей: - Smarty + Ошибка Smarty - Smarty , . - - Smarty, . + Smarty покажет вам имя шаблона, номер строки и ошибку. + Далее сообщение об ошибке состоит из фактического номера строки в классе + Smarty, где возникла ошибка. - , Smarty, - . - PHP . + Есть определенные ошибки, которые не может поймать Smarty, например + отсутствующие закрывающие тэги. Такие ошибки обычно приводят к ошибкам + разбора PHP на этапе компиляции. - PHP + Ошибки разбора PHP - PHP, , - , PHP-, - . - . : - - {if}{/if} - {section}{/section}, - {if}. - , - PHP- , - . + Когда вы встречаетесь с ошибкой разбора PHP, номер строки, в которой + допущена ошибка, будет соответствовать скомпилированному PHP-скрипту, + а НЕ самому шаблону. Обычно вы можете посмотреть на шаблон и увидить + синтаксическую ошибку. Типичные ошибки: отсутствующие закрывающие тэги + для + {if}{/if} или + + {section}{/section}, + или синтаксис логики внутри тэга {if}. + Если вы не можете найти ошибку, вам может понадобиться открыть + скомпилированный PHP-файл и перейти к номеру строки чтобы выяснить, + в чём заключается ошибка в шаблоне. - Other common errors - - - - + Другие частые ошибки + - - - - - - $template_dir - , - index.tpl - templates/ - - - - - {config_load} - ( - config_load()) - - $config_dir - , - site.conf - . - - - - - - - + + + + + + Значение + $template_dir + неверно, эта директория не существует или файл + index.tpl не найден в директории + templates/. + + + + + В шаблоне присутствует функция + {config_load} + (либо была вызвана функция + + config_load()) + и значение + + $config_dir + неверно, эта директория не существует или файл + site.conf находится за пределами этой + директории. + + + + + + - + + + + - - $compile_dir - , - templates_c , - . + Переменная + + $compile_dir + установлена неверно, эта директория не существует + или templates_c является файлом, а не + директорией. - - + + + - + + + + - - $compile_dir. - - - . + У веб сервера нет прав на запись в директорию + + $compile_dir. + Смотрите конец страницы + Базовая установка + для получения информации о правах доступа. - - + + + - + + + + - , - $caching - $cache_dir - , - cache , - . + Это означает, что параметр + + $caching включен, но параметр + + $cache_dir + установлен неправильно, эта директория не существует + или cache/ является файлом, а не + директорией. - - + + + - + + + + - , - $caching - - $cache_dir. - - - . + Это означает, что параметр + + $caching включен, но + у веб сервера нет прав на запись в директорию + + $cache_dir. + Смотрите конец страницы + Базовая установка + для получения информации о правах доступа. + - . - debugging, - $error_reporting - trigger_error(). + См. также + Отладочная консоль, + + $error_reporting и + trigger_error(). diff --git a/docs/ru/bookinfo.xml b/docs/ru/bookinfo.xml index 92b65186..ff0eeb53 100755 --- a/docs/ru/bookinfo.xml +++ b/docs/ru/bookinfo.xml @@ -1,8 +1,8 @@ - + - Smarty - + Smarty - компилирующий обработчик шаблонов Monte diff --git a/docs/ru/designers/chapter-debugging-console.xml b/docs/ru/designers/chapter-debugging-console.xml index b0effa95..78291c4d 100644 --- a/docs/ru/designers/chapter-debugging-console.xml +++ b/docs/ru/designers/chapter-debugging-console.xml @@ -1,56 +1,71 @@ - + - + - + Отладочная консоль - Smarty . - , - - - Smarty. - "debug.tpl", Smarty, . - Smarty - $debugging true , - , - $debug_tpl - debug.tpl ( - SMARTY_DIR). - , - . , - . {debug}. - , - $debugging false. - , SMARTY_DEBUG - URL, - $debugging_ctrl. + В Smarty включена консоль для отладки. Консоль позволяет узнать все + включенные шаблоны, + присвоенные переменные и настройки из + конфинурационных файлов + для текущего экземпляра Smarty. + Шаблон debug.tpl, поставляемый вместе со Smarty, + задает внешний вид консоли. + + + Установите опцию Smarty + + $debugging в true и, если + необходимо, укажите в + + $debug_tpl путь к шаблону + debug.tpl (по умолчанию это + SMARTY_DIR). + Когда вы загружаете страницу, должно появиться всплывающие окно Javascript + и вывести список всех подключенных шаблонов и назначенных переменных + для данной страницы. + + + Для вывода доступных переменных из конкретного шаблона, + см. функцию + {debug}. + Для отключения консоли отладки, установите параметр + + $debugging в false. + Можно также опционально включить консоль отладки, добавив + SMARTY_DEBUG в URL, предварительно включив параметр + + $debugging_ctrl. - + Техническое Примечание - , API - fetch(). - - display(). - javascript . - javascript, debug.tpl - . - - debug.tpl. + Консоль отладки не работает, когда используется функция API + fetch(). + Необходимо использовать только функцию + display(). + Она генерирует javascript код вначале каждой сгенерированной страницы. + Если вам не нравится javascript, можно отредатировать + debug.tpl для + изменения способа отображения по вашему вкусу. + Отладочная информация не кэшируется и в отладочную информацию не + включается информация о debug.tpl. - - . + Время загрузки каждого шаблона и файла конфигурации выводятся в секундах или + в миллисекундах. - . - , - $error_reporting - - trigger_error(). + См. также + Решение проблем, + + $error_reporting + и + + trigger_error(). - + - + Конфигурационные файлы - - . , . , - , - . - . + С помощью конфигурационных файлов дизайнеру удобно управлять глобальными + переменными из одного файла. Например, цветами в шаблонах. Обычно, если + вы хотите сменить цветувую схему, то необходимо просмотреть каждый шаблон + и в каждом изменить цвета. С помощью файла конфигурации все цвета могут + быть вынесены в отдельный файл и только один файл надо будет исправлять. - + Пример файла конфигурации - - , - . , . - , , , - ("""). - , - . - # - (hash) . + Значения переменных в + конфигурационных файлах могут заключаться в кавычки, но это не + обязательно. Можно использовать как двойные, так и одинарные кавычки. + Если у вас есть значение, которое занимает больше, чем одну строку, + необходимо заключить его в тройные кавычки ("""). + Можно включать комментарии в файл конфигурации используя любой синтакис, + который не является допустимым синтаксисом файлов конфигурации. + Для этих целей рекомендуется использовать символ # + (hash) в начале строки. - . - []. , - [ ]. - - . - . - , - . , - , . - , - . + Конфигурационный файл в примере имеет две секции. Названия секций заключены в + квадратные скобки []. Названия секций могут быть произвольными строками, + не содержащими символов [ или ]. Четыре + переменные вначале - глобальные переменные или переменные вне секций. + Эти переменные всегда загружаются из файла конфигурации. Если загружается + определенная секция, то глобальные переменные и переменные из этой секции + становятся доступными. Если переменная существует как глобальная, так и + внутри секции, то используется версия из секции. Если есть две одинаковые + переменные в пределах одной секции, то используеться последний встретившийся + вариант, если только параметр + $config_overwrite + не был предварительно отключен. - - - {config_load} (. config_load()). + Файлы конфигурации загружаются в шаблон при помощи + встроенной шаблонной функции + + {config_load} или API-функции config_load(). - , - . , - , , . - , - : . + Можно спрятать отдельные переменные или целые секции, добавив к названию + точку в начале, например [.hidden]. + Это полезно, когда ваше приложение берет некоторые + переменные, ненужные в шаблоне, из файла конфигурации. Если шаблоны могут + редактировать третьи лица, то вы можете быть спокойны за ценную информацию + из файлов конфигураций: они не смогут ее загрузить в шаблон. - . {config_load}, $config_overwrite, get_config_vars(), clear_config() config_load() + См. также + {config_load}, + + $config_overwrite, + + get_config_vars(), + clear_config() и + config_load() - + - + Базовый синтаксис - Smarty - . { - }, . + Все тэги шаблонов Smarty располагаются между специальными + разделителями. По умолчанию это { и }, + но они могут быть изменены. - . - Smarty - , . Smarty , - . + В примерах этого руководства мы будем использовать стандартные разделители. + Smarty все содержимое вне разделителей отображает как статический + контент, без изменений. Когда Smarty встречает тэги шаблона, то пытается + интерпретировать их и вывести вместо них соответствующий результат. &designers.language-basic-syntax.language-syntax-comments; diff --git a/docs/ru/designers/language-basic-syntax/language-escaping.xml b/docs/ru/designers/language-basic-syntax/language-escaping.xml index f1e4c526..f27369cb 100644 --- a/docs/ru/designers/language-basic-syntax/language-escaping.xml +++ b/docs/ru/designers/language-basic-syntax/language-escaping.xml @@ -1,49 +1,53 @@ - + - + - Smarty + Предотвращение обработки Smarty - , Smarty , - . - Javascript CSS- - . - , - { }, - - Smarty. + Иногда необходимо, чтобы Smarty не обрабатывал часть шаблона, + которая должна по умолчанию обрабатываться. Классическим примером + такой ситуации является встраивание Javascript или CSS-кода в + шаблон. Проблема появляется из-за того, что эти языки используют + символы { и }, которые так же используются в качестве + разделителей + для Smarty. - Javascript' - CSS- HTML . + Самым простым решением является избежание этой ситуации путём выноса Javascript'а + и CSS-кода в отдельные файлы и использования стандартных методов HTML для доступа к ним. - {literal} .. {/literal}. - , HTML- (&nbsp; ..), - {ldelim},{rdelim} {$smarty.ldelim} - . + Дословное включение контента возможно при помощи блоков + {literal}..{/literal}. + Подобно тому, как вы используете HTML-сущности (&nbsp; и т.п.), вы можете + использовать {ldelim},{rdelim} или + + {$smarty.ldelim} + для отображения текущих разделителей. - $left_delimiter - $right_delimiter - Smarty. + Порой бывает удобно просто изменить свойства + $left_delimiter и + + $right_delimiter + в объекте Smarty. - + Изменение разделителей left_delimiter = ''; + $smarty->assign('foo', 'bar'); $smarty->assign('name', 'Albert'); $smarty->display('example.tpl'); @@ -52,7 +56,7 @@ $smarty->display('example.tpl'); ]]> - example.tpl: + Пример шаблона: to Smarty ]]> - - . escape - - + - + Арифметические операции - . + Арифметические операции могут совершаться непосредственно над значениями переменных. - + Примеры арифметики bar-$bar[1]*$baz->foo->bar()-3*7} @@ -27,8 +27,9 @@ - . {math} - . + См. также функцию + {math} для сложных вычислений и + {eval}. - + - + Параметры - - - , - . Smarty - HTML. - , . - , - . + Большинство + функций + принимают аргументы, которые уточняют или + изменяют ее поведение. Аргументы в Smarty очень похожи на + параметры в HTML. Статические значения не обязательно заключать + в кавычки, но это рекомендуется для текстовых строк. Переменные + также могут быть использованы в качестве параметров, и не должны + заключаться в кавычки. - (true false). - true, - on yes, - false, off - no . + Некоторые параметры принимают логические значения (&true; или &false;). + Они могут быть указаны словами true, + on и yes, или + false, off и + no без кавычек. - + синтаксис параметров функции + - + - + Комментарии - (*) - , - : {* *}. - , - <!-- HTML -->, - , - ;-) + Комментарии в шаблонах заключаются в звездочки (*) окруженные + разделителями, + например: + + + + + + + + + Smarty НЕ отображает комментарии в выводе шаблона, в отличие + от <!-- комментариев HTML -->. + Они используются для внутренних примечаний в шаблонах, которые никто + не увидит ;-) - + Комментарии внутри шаблона -{* - Smarty, *} +{* Я - простой комментарий Smarty, я не существую в скомпилированном выводе *} {$title} -{* Smarty *} - +{* другой однострочный комментарий Smarty *} + -{* - +{* этот многострочный комментарий + не отправляется в бразуер *} {********************************************************* - + Многострочный блок комментариев с информацие об авторе @ author: bg@example.com @ maintainer: support@example.com @ para: var that sets block style @ css: the style output **********************************************************} -{* - .. *} +{* Файл-заголовок с главным логотипом и т.д. *} {include file='header.tpl'} -{* : $includeFile foo.php *} - +{* Примечание разработчика: переменная $includeFile назначается в скрипте foo.php *} + {include file=$includeFile} -{* ненужен *} {* *} -{* cvs- : 36 , - CVS *} + +{* $affiliate|upper *} + +{* вложенные комментарии использовать нельзя *} +{* + +*} + +{* cvs-тэг шаблона: эти 36 ДОЛЖНЫ быть американской валютой, + но в таком случае CVS обработает их *} {* $Id: Exp $ *} {* $Id: *} diff --git a/docs/ru/designers/language-basic-syntax/language-syntax-functions.xml b/docs/ru/designers/language-basic-syntax/language-syntax-functions.xml index 035a406c..f9f36caf 100644 --- a/docs/ru/designers/language-basic-syntax/language-syntax-functions.xml +++ b/docs/ru/designers/language-basic-syntax/language-syntax-functions.xml @@ -1,24 +1,24 @@ - + - + - + Функции - Smarty , - . - - , : - {funcname attr1='val' attr2='val'}. + Каждый тэг Smarty либо выводит значение переменной, либо вызывает + некоторую функцию. Они обрабатываются путём заключения функции и ее + параметров + в разделители, например: + {funcname attr1='val1' attr2='val2'}. - + Синтаксис функций {$name}! @@ -30,33 +30,47 @@ ]]> + + + - , - - . + И встроенные, + и пользовательские функции + используются с одинаковым синтаксисом. + + + - - Smarty, - {if}, - {section} - {strip}. - . + Встроенные функции обеспечивают + внутреннюю работу Smarty, например + {if}, + + {section} и + {strip}. + У вас не должно быть причин для их модификации. + + + - - - . - , - . - - {html_options} - {popup}. + Пользовательские функции являются + дополнительными и реализуются через + плагины. + Они могут быть изменены по вашему желанию, также вы можете + создать новые. + Примерами пользовательских функций могут быть + + {html_options} и + {popup}. + + - . - register_function() + См. также + + register_function() - + - + Внедренные переменные в двойных кавычках + + + - Smarty - - , - , , - , , - . - , - (, ..), - . - - , - . + Smarty распознает + присвоенные + переменные, + если они встречаются в строках, заключенных в "двойные кавычки", + если имена переменных состоят из цифр, букв, знака под_чёркивания и + квадратных скобок[]. + См. также Переменные. + + + + + В случае, если переменная содержит другие символы, например + точки, ссыки на объекты и т.д., переменную необходимо заключить + в `обратные кавычки`. + В данном случае вы не можете использовать + модификаторы, + их следует применять вне кавычек. + + + + + + Вы не можете использовать + модификаторы + подобным образом - они всегда должны применяться за пределами кавычек. + + + + - + Примеры синтаксиса + + + Практические примеры + + + + + - . escape. + См. также + escape. - + - + Переменные - $. , - , - + Переменные шаблона начинаются со знака $доллара. Они могут состоять из цифр, + букв, знаков подчёркивания - как и обычные PHP variable. - . - . - - - ; , - ## - $smarty.config. + Вы можете обращаться к массивам по числовым и нечисловым индексам. + Вы также можете обращаться к свойствам и методам объектов. + Переменные конфигурационного файла + - это исключения из долларового синтаксиса; к ним можно обращаться, окружив + их #решетками# или воспользовавшись специальной переменной + + $smarty.config. - + Переменные bar} <-- "bar" -{$foo->bar()} <-- "bar" -{#foo#} <-- "foo" -{$smarty.config.foo} <-- {#foo#} -{$foo[bar]} <-- section, . {section} -{assign var=foo value='baa'}{$foo} <-- "baa", . {assign} +{$foo} <-- отображение простой переменной (не массив и не объект) +{$foo[4]} <-- отображает 5-й элемент числового массива +{$foo.bar} <-- отображает значение ключа "bar" ассоциативного массива, подобно PHP $foo['bar'] +{$foo.$bar} <-- отображает значение переменного ключа массива, подобно PHP $foo[$bar] +{$foo->bar} <-- отображает свойство "bar" объекта +{$foo->bar()} <-- отображает возвращаемое значение метода "bar" объекта +{#foo#} <-- отображает переменную "foo" конфигурационного файла +{$smarty.config.foo} <-- синоним для {#foo#} +{$foo[bar]} <-- синтаксис доступен только в цикле section, см. {section} +{assign var=foo value='baa'}{$foo} <-- отображает "baa", см. {assign} - +Также доступно множество других комбинаций {$foo.bar.baz} {$foo.$bar.$baz} {$foo[4].baz} {$foo[4].$baz} {$foo.bar.baz[4]} -{$foo->bar($baz,2,$bar)} <-- -{"foo"} <-- +{$foo->bar($baz,2,$bar)} <-- передача параметра +{"foo"} <-- статические значения также разрешены -{* "SERVER_NAME" ($_SERVER['SERVER_NAME'])*} +{* отображает серверную переменную "SERVER_NAME" ($_SERVER['SERVER_NAME'])*} {$smarty.server.SERVER_NAME} ]]> - , $_GET, $_SESSION .. , . - $smarty . + Переменные запроса, такие как $_GET, + $_SESSION и т.д. доступны через зарезервированную + переменную + $smarty. - . $smarty, - , - {assign} - - assign(). + См. также + $smarty, + Переменные файлов конфигурации, + {assign} + и + assign(). - + - + Встроенные функции - smarty . - . - - . + В smarty включены несколько встроенных функций. Эти встроенные функции + интегрированы в язык шаблонов. Нельзя создавать + пользовательские функции + с такими же названиями и вам не следует модифицировать встроенные функции. - assign, - , - , - {assign}. + Некоторые эти функции имеют атрибут assign, + который помещает результати их выполнения в переменную шаблона, вместо вывода + в браузер, практически как функция + {assign}. &designers.language-builtin-functions.language-function-capture; diff --git a/docs/ru/designers/language-builtin-functions/language-function-capture.xml b/docs/ru/designers/language-builtin-functions/language-function-capture.xml index 159f1a01..d06fc813 100644 --- a/docs/ru/designers/language-builtin-functions/language-function-capture.xml +++ b/docs/ru/designers/language-builtin-functions/language-function-capture.xml @@ -1,42 +1,42 @@ - + capture - {capture} , - - - , , . - {capture name='foo'} {/capture} - , name. + {capture} используется для того, чтобы собрать результат обработки + части шаблона между тэгами + в какую-то переменную, вместо того, чтобы вывести результат браузеру. + Любое содержимое между {capture name='foo'} и {/capture} сохраняется в + переменную, указанную в атрибуте name. - - $smarty.capture.foo, - "foo" - , name. name , - "default". + где "foo" - значение, переданное атрибуту name. Если атрибут name не указан, + то используется "default". - capture . + Команда capture поддерживает вложенность. - , {insert}. - - - insert, . + Если вы используете кэширование + и в области кэширования встречаются команды + insert, то не сохраняйте данный вывод. - + Сохранение вывода шаблона - + сохранение содержимого в переменную - + Этот пример также демонстрирует функцию {popup} @@ -66,12 +66,12 @@ Your ip is {$smarty.server.REMOTE_ADDR}. - . + См. также $smarty.capture, {eval}, {fetch}, fetch() - {assign}. + и {assign}. {config_load} - {config_load} - (#variable#) - . + {config_load} используется для загрузки конфигурационных переменных + (#variable#) из + конфигурационных файлов в шаблон. @@ -17,54 +17,54 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание file string - + Да n/a - config + Имя config файла для загрузки section string - + Нет n/a - + Имя секции для загрузки scope string - + Нет local - - . local, parent - global. local , - . parent , - , - . global , - . + Способ обработки области видимости загруженных + переменных. Должен быть одинм из local, parent + или global. local означает, что переменные загружены + в контекст локального шаблона. parent означает, что + переменные загружены в контекст как локального, так + и родительского шаблона. global означает, что + переменные доступны из любого шаблона. global boolean - + Нет No - . - scope=parent. : - scope, - . scope , - . + Доступны ли переменные из родительского шаблона. + Аналогичен scope=parent. ЗАМЕЧАНИЕ: Этот атрибут + перекрывается атрибутом scope, но все еще + поддерживается. Если scope указан, то это значение + игнорируется. @@ -75,20 +75,20 @@ example.conf - + и шаблон - - . - , + Конфигурационные файлы + могут также содержать секции. Вы можете загружать + переменные из определенной секции, указав атрибут 'section'. - - + Секции файлов конфигурации и встроенная + функция {section} - , . + не имеют ничего общего, кроме схожего названия. - {config_load} + функция {config_load} с секцией - . $config_overwrite - . + См. $config_overwrite + для массивов конфигурационных переменных. - . , - , + См. также Конфигурационные файлы, + Конфигурационные переменные, $config_dir, get_config_vars() - + и config_load(). diff --git a/docs/ru/designers/language-builtin-functions/language-function-foreach.xml b/docs/ru/designers/language-builtin-functions/language-function-foreach.xml index 452b042a..a5c85c36 100644 --- a/docs/ru/designers/language-builtin-functions/language-function-foreach.xml +++ b/docs/ru/designers/language-builtin-functions/language-function-foreach.xml @@ -1,28 +1,28 @@ - + {foreach},{foreachelse} - {foreach} - {foreach} являются альтернативой + циклам {section}. - {foreach} - . - - {foreach} - {section}, - . - {foreach} - {/foreach}. - from item. - {foreach} , , - . {foreach} - {foreach} . - from ( - ) - {foreach}. - {foreachelse} , - from . + {foreach} используется для прохода по + единственному ассоциативному массиву. + Синтаксис + {foreach} намного проще синтаксиса + {section}, но с другой стороны + его можно использовать только для одного массива. + Каждый тэг {foreach} должен иметь пару + {/foreach}. Обязательными параметрами являются + from и item. + Имя цикла {foreach} может быть любым, состоящим из букв, цифр и знаков + подчеркивания. Циклы {foreach} могут быть вложенными + и имена вложенных {foreach} должны быть уникакльными между собой. + Параметр from (обычно - массив значений) + определяет количество итераций цикла {foreach}. + {foreachelse} выполняется в том случае, если + параметр from не содержит значений. @@ -34,51 +34,51 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание from array - + Да n/a - , + Массив, по которому надо пройтись item string - + Да n/a - , - + Имя переменной, которая будет выступать в + качестве значения текущего елемента key string - + Нет n/a - , - + Имя переменной, которая будет выступать в + качестве ключа текущего елемента name string - + Нет n/a - foreach - + Название цикла foreach для доступа к его + свойствам - {foreach} - + {foreach} - предмет assign('custid', $arr); {/foreach} ]]> - : + Результат выполнения данного примера: - {foreach} - + {foreach} - предмет и ключ assign('contacts', array( array('phone' => '1', @@ -137,7 +137,7 @@ $smarty->assign('contacts', array( ]]> - : + Результат выполнения данного примера: assign('contacts', array( - {foreach} - ( , PEAR ADODB) + {foreach} - базы данных (к примеру, PEAR или ADODB) assign('contacts', array( - {foreach} , + Циклы {foreach} также имеют собственные переменные, которые содержат свойства {foreach}. - : + Они обозначаются так: {$smarty.foreach.foreachname.varname} - {$smarty.foreach.foreachname.varname}, foreachname - - ( name). + {$smarty.foreach.foreachname.varname}, где foreachname - это название цикла + (значение атрибута name). - . {section} - , . + См. {section} + для примеров следующих свойств, так как они идентичны. iteration - iteration . - 1 - . + iteration используется для отображения текущего номера итерации цикла. + Итерации всегда начинаются с 1 и увеличиваются на одну при каждом + прохождении цикла. first - first true, . + first устанавливается в true, если текущая итерация первая. last - last true, . + last устанавливается в true, если текущая итерация последняя. show - show - ( ). , foreach - . foreachelse, - . + Атрибут show может принимать логические + значения (истина или ложь). Если ложь, то цикл foreach не будет + отображаться. Если присутствует тэг foreachelse, то он будет + отображен. total - total . - , . + total хранит количество итераций цикла. + Может быть использовано как в цикле, так и вне его. - . {section} + См. также {section} и $smarty.foreach. diff --git a/docs/ru/designers/language-builtin-functions/language-function-if.xml b/docs/ru/designers/language-builtin-functions/language-function-if.xml index 6a1113be..1f3d78d6 100644 --- a/docs/ru/designers/language-builtin-functions/language-function-if.xml +++ b/docs/ru/designers/language-builtin-functions/language-function-if.xml @@ -1,33 +1,33 @@ - + {if},{elseif},{else} - {if} Smarty , - - if PHP, - . - {if} - {/if}. {else} - {elseif} . - - PHP, ||, or, + Конструкция {if} в Smarty такая же гибкая, как и + конструкция + if в PHP, + только с несколькими дополнительными возможностями для шаблонов. + Каждый тэг {if} должен иметь пару + {/if}. {else} и + {elseif} так же допустимы. Досутпны все квалификаторы + и функции + из PHP, такие как ||, or, &&, and, - is_array() .. + is_array() и т.д. - $security , - IF_FUNCS $security включена, + то массив IF_FUNCS в массиве $security_settings. - , - . , - [ ] . - PHP. + Ниже следует список распознаваемых квалификаторов, которые должны быть + отделены от окружающих элементов пробелами. Обратите внимания, что + объекты в [квадратных скобках] являются необязательными. Иногда указаны + эквиваленты в PHP. @@ -39,11 +39,11 @@ - - - - - PHP + Квалификатор + Альтернативы + Пример синтаксиса + Описание + Эквивалент PHP @@ -51,98 +51,98 @@ == eq $a eq $b - + равно == != ne, neq $a neq $b - + не равно != > gt $a gt $b - + больше > < lt $a lt $b - + меньше < >= gte, ge $a ge $b - + больше или равно >= <= lte, le $a le $b - + меньше или равно <= === $a === 0 - + проверка идентичности === ! not not $a - + отрицание ! % mod $a mod $b - + остаток от деления % is [not] div by $a is not div by 4 - + возможно деление без остатка $a % $b == 0 is [not] even $a is not even - [] + [не]чётно $a % 2 == 0 is [not] even by $a is not even by $b - [] + [не]чётно значению ($a / $b) % 2 == 0 is [not] odd $a is not odd - [] + [не]нечётно $a % 2 != 0 is [not] odd by $a is not odd by $b - [] + [не]нечётно значению ($a / $b) % 2 != 0 @@ -150,7 +150,7 @@ - {if} + примеры использования {if} 1000 ) and $volume >= #minVolAmt#} ... {/if} -{* php *} +{* вы также можете использовать функции php *} {if count($var) gt 0} ... {/if} -{* *} +{* проверка на массив *} {if is_array($foo) } ... {/if} -{* *} +{* проверка на существование *} {if isset($foo) } ... {/if} -{* *} +{* проверяет чётность значений *} {if $var is even} ... {/if} @@ -202,20 +202,20 @@ ... {/if} -{* , $var 4 *} +{* проверяет, делится ли $var на 4 без остатка *} {if $var is div by 4} ... {/if} {* - , $var , - 0=, 1=, 2=, 3=, 4=, 5= .. + проверяет, является ли $var чётным двум, например + 0=чётно, 1=чётно, 2=нечётно, 3=нечётно, 4=чётно, 5=чётно и т.д. *} {if $var is even by 2} ... {/if} -{* 0=, 1=, 2=, 3=, 4=, 5= .. *} +{* 0=чётно, 1=чётно, 2=чётно, 3=нечётно, 4=нечётно, 5=нечётно и т.д. *} {if $var is even by 3} ... {/if} @@ -224,17 +224,17 @@ - {if} + ещё несколько примеров использования {if} 0) - {* foreach *} + {* выполнить цикл foreach *} {/if} ]]> diff --git a/docs/ru/designers/language-builtin-functions/language-function-include-php.xml b/docs/ru/designers/language-builtin-functions/language-function-include-php.xml index eaff8860..cfeb67ae 100644 --- a/docs/ru/designers/language-builtin-functions/language-function-include-php.xml +++ b/docs/ru/designers/language-builtin-functions/language-function-include-php.xml @@ -1,19 +1,19 @@ - + {include_php} - + Техническое замечание - {include_php} Smarty, - . - {include_php} - - PHP- + {include_php} достаточно устарела в Smarty, вы можете достичь этой + функциональности при помощи собственных функций шаблона. + Единственная причина для использования {include_php} - это серьёзная + необходимость отделить PHP-функцию от директории plugins - . . - . + или кода вашего приложения. См. примеры составных шаблонов + для дополнительной информации. @@ -26,74 +26,74 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание file string - + Да n/a - php + Имя подключаемого php файла once boolean - + Нет true - , - + Указывает подключать файл или нет, + если он уже был однажды подключен assign string - + Нет n/a - , - include_php + Название переменной, которой будет + присвоен вывод include_php - {include_php} PHP- . - $security , - PHP- + Тэги {include_php} используются для подключения PHP-скрипта в шаблон. + Если режим $security включен, + то PHP-скрипт должен быть расположен в директории $trusted_dir. - {include_php} "file", - PHP-, + Тэг {include_php} должен иметь атрибут "file", который + указывает путь к подключаемому PHP-файлу, либо относительный к $trusted_dir, - . + либо абсолютный путь. - , PHP- , - . , - , once. - once (false) , - , . + По умолчанию, PHP-файлы подключаются только один раз, даже если + вызываются несколько раз в шаблоне. Можно указать, что файл должен + быть подключен каждый раз, указав атрибут once. + Установив once в ложь (false) указывает, что файл должен быть + подключен вне зависимости от того, был ли он подключен раньше. - assign, - , - {include_php}, . + Можно указать опциональный атрибут assign, + который указывает имя переменной, которой будет присвоен вывод + {include_php}, вместо отображения. - smarty PHP- $this. + Объект smarty доступен в подключаемом PHP-файле как $this. - {include_php} + Функция {include_php} load_nav.php query('select * from site_nav_sections order by name',SQL_ALL); @@ -105,7 +105,7 @@ $this->assign('sections',$sql->record); index.tpl {$curr_section.name}
@@ -115,13 +115,13 @@ $this->assign('sections',$sql->record);
- . + См. также {include}, {php}, {capture}, - - - + Ресурсы + и + Составные шаблоны
{include} - {include} . - , , - . {include} 'file', - . + Тэги {include} используются для включения других шаблонов в текущий. + Любые переменные, доступные в текущем шаблоне, доступны и во + включаемом. Тэг {include} должен иметь атрибут 'file', + который указывает путь к ресурсу шаблона. - assign , - {include} . + Опциональный атрибут assign указывает, что + результат выполнения {include} будет присвоен переменной вместо отображения. - , - . , - , - - {include}. + Все значения присвоенных переменных восстанавливаются после того, + как подключаемый шаблон отработал. Это значит, что вы можете использовать + все переменные из подключающего шаблона в подключаемом, но изменения + переменных внутри подключаемого шаблона не будут видны внутри подключающего + шаблона после команды {include}. @@ -29,43 +29,43 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание file string - + Да n/a - + Имя файла шаблона для включения assign string - + Нет n/a - , - + Имя переменной, которой присвоится вывод + шаблона [var ...] [var type] - + Нет n/a - , - + Переменные, переданные в локальную область + включаемого шаблона - {include} + Функция {include} @@ -74,8 +74,8 @@ {include file='page_header.tpl'} - {* *} - {include file="$tpl_name.tpl"} <-- $tpl_name + {* тут идёт тело шаблона *} + {include file="$tpl_name.tpl"} <-- заменит $tpl_name его значением {include file='page_footer.tpl'} @@ -84,25 +84,25 @@ - - . - , - , - . - . + Вы также можете передать переменные в подключаемый шаблон в + виде атрибутов. + Любая переменная, переданная в подключаемый + шаблон, доступны только в области видимости подключаемого + файла. Переданные переменные имеют преимущество перед + существующими переменными с аналогичными именами. - {include} + передача переменных в {include} - header.tpl + где header.tpl может быть @@ -117,10 +117,10 @@ - {include} + {include} и присвоение переменной - nav.tpl $navbar, - . + Этот пример присвоит содержимое nav.tpl переменной $navbar, + которая затем выводится сверху и снизу страницы. - + Для подключения файлов вне папки $template_dir - - . + можно указывать файл с помощью + ресурсов. - {include} + Примеры ресурсов шаблонов в {include} @@ -169,12 +169,12 @@ - . + См. также {include_php}, {insert}, {php}, - and - . + Ресурсы and + Составные шаблоны. diff --git a/docs/ru/designers/language-builtin-functions/language-function-insert.xml b/docs/ru/designers/language-builtin-functions/language-function-insert.xml index e2d76df8..17bf7a83 100644 --- a/docs/ru/designers/language-builtin-functions/language-function-insert.xml +++ b/docs/ru/designers/language-builtin-functions/language-function-insert.xml @@ -1,14 +1,14 @@ - + {insert} - {insert} {include}, - , {insert} , - . - . + за исключением того, что {insert} НЕ кэшируется, когда + кэширование включено. + Он будет выполнен при каждом обращении к шаблону. @@ -20,115 +20,115 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание name string - + Да n/a - (insert_name) + Имя функции вставки (insert_name) assign string - + Нет n/a - , - + Имя переменной, которой будет + присвоен вывод script string - + Нет n/a - php , - + Имя php файла, который будет подключен + перед вызовом функции вставки [var ...] [var type] - + Нет n/a - , - + Переменные, передаваемые в + функцию вставки - , . - HTML, , - flash .., - , , - . - {insert}: #banner_location_id# - #site_id# ( ) - , . + Допустим, вы имеете шаблон с баннером вверху страницы. + Баннер может содержать любую смесь HTML, изображений, + flash и т.д., то есть нельзя использовать просто + статическую ссылку, и мы не хотим, чтобы код баннера + кэшировался с остальной страницей. Тогда используем + тэг {insert}: шаблон знает значения #banner_location_id# и + #site_id# (взяты из конфигурационного файла) + и должен вызвать функцию, чтобы получить код баннера. - {insert} + функция {insert} -{* *} +{* пример вставки баннера *} {insert name="getBanner" lid=#banner_location_id# sid=#site_id#} - "getBanner" - #banner_location_id# #site_id#. Smarty - insert_getBanner() PHP , - #banner_location_id# #site_id# - . - "insert_" . - insert_getBanner() - . {insert}. - Smarty insert_getBanner(array("lid" - => "12345","sid" => "67890")); + В этом примере мы используем имя "getBanner" и передаем параметры + #banner_location_id# и #site_id#. Smarty попробует вызвать + функцию insert_getBanner() в вашей PHP программе, передав + значения #banner_location_id# и #site_id# первым параметром в виде + ассоциативного массива. Все имена функций вставки должны начинаться + с "insert_" для предотвращения возможных конфликтов имен. Функция + insert_getBanner() должна обработать переданные переменные и + вернуть результат. Он будет отображен в шаблоне вместо тэга {insert}. + В данном случае Smarty вызовет функцию insert_getBanner(array("lid" + => "12345","sid" => "67890")); и выведет результат на месте тэга {insert}. - "assign", - . : - {insert} - , . + Если указан атрибут "assign", то вывод функции вставки будет + присвоен указанной переменной вместо отображения. ЗАМЕЧАНИЕ: + присвоение вывода тэга {insert} переменной шаблона не очень + полезно, когда кеширование включено. - "script", PHP- - ( ) . - , , - PHP-, . - , - $trusted_dir. $security, PHP- - $trusted_dir. + Если указан атрибут "script", то указанный PHP-файл будет + подключен (только однажды) перед вызовом функции вставки. + Это удобно, когда функция может не сущетсвовать, и должен быть + подключен PHP-файл, чтобы определить функцию. Путь к файлу + должен быть либо абсолтным, либо относительным относительно + $trusted_dir. Когда включен режим $security, PHP-файл должен + быть в папке $trusted_dir. - Smarty . - - Smarty . + Обьект Smarty передается в функцию как второй параметр. + Так вы можете использовать и модифицировать информацию + из объекта Smarty в функциях вставки. - + Техническое Замечание - . - , - {insert} . - , - . , , , - , , - .. + Некоторые части шаблона можно не кэшировать. + Если активировано кэширование, + то тэг {insert} все равно не будет кэширован. Он будет вызван + каждый раз при генерации страницы, даже из кешированных + страниц. Это полезно для таких вещей, как баннеры, опросы, + прогнозы погоды, результаты поиска, области обратной связи + и т.д. - . + См. также {include} diff --git a/docs/ru/designers/language-builtin-functions/language-function-ldelim.xml b/docs/ru/designers/language-builtin-functions/language-function-ldelim.xml index 8edb691b..d1a2475d 100644 --- a/docs/ru/designers/language-builtin-functions/language-function-ldelim.xml +++ b/docs/ru/designers/language-builtin-functions/language-function-ldelim.xml @@ -1,35 +1,35 @@ - + {ldelim},{rdelim} - {ldelim} {rdelim} - , - - "{" "}". - {literal}{/literal} - , Javascript CSS. - . + {ldelim} и {rdelim} используются для + предотвращения обработки разделителей, + по-умолчанию "{" и "}". Вы также можете использовать блок + {literal}{/literal} для + предотвращения обработки блоков текста, например кода Javascript или CSS. + См. также {$smarty.ldelim} {ldelim}, {rdelim} - : + Результат выполнения данного примера: - javascript' + Другой пример и немного javascript'а @@ -39,7 +39,7 @@ function foo() {ldelim} ]]> - + выведет @@ -66,10 +66,10 @@ function foo() {
- . + См. также {literal} - - Smarty + и + Предотвращение обработки Smarty
diff --git a/docs/ru/designers/language-builtin-functions/language-function-literal.xml b/docs/ru/designers/language-builtin-functions/language-function-literal.xml index 9a8dab54..b9af3769 100644 --- a/docs/ru/designers/language-builtin-functions/language-function-literal.xml +++ b/docs/ru/designers/language-builtin-functions/language-function-literal.xml @@ -1,21 +1,21 @@ - + {literal} - {literal} . - javascript , - . - {literal}{/literal} , - " ". {literal}, - {ldelim}{rdelim} - . + Тэги {literal} позволяют воспринимать блоки данных буквально. + Обычно они используются вместе с javascript или таблицами стилей, в которых + фигурные скобки конфликтуют с синтаксисом разделителей. + Весь текст внутри тэгов {literal}{/literal} не интерпретируется, а выводится + "как есть". Если вам нужно вставить тэги шаблонов в блок {literal}, + вам следует пойти по другому пути и использовать {ldelim}{rdelim} для экранирования + отдельных разделителей. - {literal} + Тэги {literal} - Javascript + Пример функции Javascript @@ -54,13 +54,13 @@ function myJsFunction(name, ip){ - CSS + Немного CSS в шаблоне {literal} -/* */ +/* это интересная идея для этого раздела */ .madIdea{ border: 3px outset #ffffff; margin: 2 3 4 5px; @@ -74,10 +74,10 @@ function myJsFunction(name, ip){ - . + См. также {ldelim} {rdelim} - - Smarty + и + Предотвращение обработки Smarty {php} - {php} PHP- . - - , $php_handling . - , - . + Тэг {php} позволяет вставлять PHP-код прямо в шаблон. Он не + будет как-либо изменен, независимо от $php_handling настроек. + Этот тэг только для продвинутых пользователей, так как обычно + не требуется и не рекоммендуется. - {php} + тэги {php} @@ -24,16 +24,16 @@ - + Техническое замечание - PHP {php}, - PHP + Для доступа к переменным PHP внутри блоков {php}, вам может понадобится + использовать ключевое слово PHP global - {php} + Тэги {php} с глобальными переменными и назначение переменных - , - + Следующее действие действительно НЕ рекоммендуется, + так как оно происходит в области видимости шаблона - . + См. также $php_handling, {include_php}, {include}, {insert} - - . + и + Компонентные шаблоны. diff --git a/docs/ru/designers/language-builtin-functions/language-function-section.xml b/docs/ru/designers/language-builtin-functions/language-function-section.xml index b458f95d..be4247db 100644 --- a/docs/ru/designers/language-builtin-functions/language-function-section.xml +++ b/docs/ru/designers/language-builtin-functions/language-function-section.xml @@ -1,24 +1,24 @@ - + {section},{sectionelse} - - - ( , {foreach}). - {section} - {/section}. - name loop. - {section} , , - . {section} - {section} . - loop ( - ) - . - , - []. - {sectionelse} , - loop . + Секции используются для обхода + массивов данных + (так же, как и {foreach}). + Каждый тэг {section} должен иметь пару + {/section}. Обязательными параметрами являются + name и loop. Имя цикла + {section} может быть любым, состоящим из букв, цифр и знаков + подчеркивания. Циклы {section} могут быть вложенными + и имена вложенных {section} должны быть уникакльными между собой. + Переменная loop (обычно - массив значений) + определяет количество итераций цикла. + При печати переменных внутри секции, имя секции должно быть указано + рядом с именем переменной внутри квадратных скобок []. + {sectionelse} выполняется в том случае, если + параметр loop не содержит значений. @@ -30,68 +30,68 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание name string - + Да n/a - + Название секции loop mixed - + Да n/a - , . + Значение, определяющее количество итераций цикла. start integer - + Нет 0 - , - . , - . , - 7 start -2, - 5. (, - ) - . + Индекс позиции, с которой будет начинаться + цикл. Если значение отрицательное, то начальная позиция + вычисляется от конца массива. Например, если в переменной + цикла 7 элементов и значение атрибута start равно -2, то + начальный индекс будет 5. Неверные значения (значения, вне + массива) автоматически обрезаются до ближайшего верного + значения. step integer - + Нет 1 - , - . , step=2 - 0,2,4... , - . + Значение шага, которое используется для прохода по + массиву. Например, step=2 указывает обход массива + по элементам 0,2,4... Если шаг отрицателен, то обход + массива будет производится в обратном направлении. max integer - + Нет 1 - . + Максимальное количество итераций цикла. show boolean - + Нет true - , + Указывает, показывать или нет эту секцию @@ -111,19 +111,19 @@ $smarty->assign('custid',$data); {/section}
-{* $custid *} +{* этот пример напечатает все значения массива $custid в обратном порядке *} {section name=foo loop=$custid step=-1} {$custid[foo]}
{/section} ]]>
- : + Результат выполнения данного примера: ]]> - . + Ещё немного примеров без присвоенного массива. ]]> - : + Результат выполнения данного примера: - loop {section} + Переменная loop команды {section} assign('address',$addr); @@ -198,7 +198,7 @@ $smarty->assign('address',$addr); ]]> - : + Результат выполнения данного примера: assign('address',$addr); - {section} + именование {section} @@ -241,7 +241,7 @@ $smarty->assign('address',$addr); - + вложенные секции assign('contact_info', $info); @@ -291,7 +291,7 @@ $smarty->assign('contact_info', $info); ]]> - : + Результат выполнения данного примера: assign('contact_info', $info); - + секции и ассоциативные массивы assign('contacts',$data); @@ -353,7 +353,7 @@ $smarty->assign('contacts',$data); ]]> - : + Результат выполнения данного примера: assign('contacts',$data); ]]> - (, PEAR ADODB) + Базы данных (например, PEAR или ADODB) assign('contacts',$db->getAll($sql) );  Name>HomeCellEmail @@ -415,7 +415,7 @@ $smarty->assign('contacts',$db->getAll($sql) ); {sectionelse} {sectionelse} @@ -425,38 +425,38 @@ $smarty->assign('contacts',$db->getAll($sql) ); - , . - : + Секции так же имеют собственные переменные, которые содержат свойства секций. + Они обозначаются так: {$smarty.section.sectionname.varname} - Smarty 1.5.0, - {%sectionname.varname%} {$smarty.section.sectionname.varname}. - , - . + Начиная с версии Smarty 1.5.0, синтаксис переменных свойств сессий был + изменен с {%sectionname.varname%} на {$smarty.section.sectionname.varname}. + Старый синтаксис всё ещё поддерживается, но вы увидите лишь примеры + нового синтаксиса. index - index , - ( start, ) - ( step, ). + index используется для отображения текущего индекса массива, + начиная с нуля (или с атрибута start, если он был указан) и увеличиваясь + на единицу (или на значение атрибута step, если он был указан). - + Техническое Замечание - step start , index - iteration, , - 0, 1. + Если атрибуты step и start не указаны, то index + аналогичен атрибуту секции iteration, кроме того, + что начинается с 0, а не с 1. - {section} index + свойства {section} index @@ -464,7 +464,7 @@ $smarty->assign('contacts',$db->getAll($sql) ); ]]> - : + Результат выполнения данного примера: assign('contacts',$db->getAll($sql) ); index_prev - index_prev - -1. + index_prev используется для отображения предыдущего индекса цикла + На первой итерации он установлен в -1. index_next - index_next - ( - , step). + index_next используется для отображения следующего индекса цикла + На последней итерации он всё же на единицу больше текущего (или на другое + значение, если указан атрибут step). - {section} index_next index_prev + свойства {section} index_next и index_prev assign('custid',$data); @@ -524,7 +524,7 @@ $smarty->assign('custid',$data); ]]> - , : + Результатом выполнения этого примера будет таблица, содержащая следующее: iteration - iteration . + iteration используется для отображения текущего номера итерации цикла. - start, step max, - index. - , , , . - rownum - - iteration, . + Это значение не зависит от свойств start, step и max, в отличие от + свойства index. + Кроме того, итерации начинаются с единицы, а не с нуля, как индексы. + rownum - это синоним к + свойству iteration, они работают одинаково. - {section} iteration + свойство {section} iteration assign('custid',$id); ]]> - : + Результат выполнения данного примера: ]]> - iteration - - ( {if} - mod - ). + Этот пример использует свойство iteration для + вывода заголовка таблицы через каждые пять строчек + (использует {if} + с оператором mod - остаток от деления). first - first true, - . + Параметр first установлен в true, если текущая итерация секции + является первой. last - last true, - . + Параметр last установлен в true, если текущая итерация секции + является последней. - {section} first last + свойства {section} first и last - $customers, - - ( {section} total) + Этот пример проходит циклом по массиву $customers, + выводит заголовок на первой итерации и футер на последней + (использует свойство {section} total) rownum - rownum , - . iteration, . + rownum используется для отображения текущего номера итерации цикла, + начиная с единицы. Это синоним свойства iteration, они работа идентично. loop - loop , - . , - . + loop используется для отображения последнего номера индекса, по которому + проходила итерация секции. Это свойство может быть использовано как внутри, + так и вне секции. - {section} index + свойство {section} index - : + Результат выполнения данного примера: show - show . - show , true false. - false, . {sectionelse}, - . + show используется в качестве параметра секции. + show является булевым значением, true или false. + Если false, секция не будет отображена. Если присутствует секция {sectionelse}, + вместо этого будет отображена она. - {section} show + атрибут {section} show @@ -731,7 +731,7 @@ There were 3 customers shown above. ]]> - : + Результат выполнения данного примера: total - total , - . , - . + total используется для отображения количества итераций, через которые + пройдет эта секция. Это свойство может быть использовано как внутри, так + и вне секции. - {section} total + свойство {section} total - : + Результат выполнения данного примера: - . + См. также {foreach} - + и $smarty.section. diff --git a/docs/ru/designers/language-builtin-functions/language-function-strip.xml b/docs/ru/designers/language-builtin-functions/language-function-strip.xml index d9bd0e62..32d8d2ba 100644 --- a/docs/ru/designers/language-builtin-functions/language-function-strip.xml +++ b/docs/ru/designers/language-builtin-functions/language-function-strip.xml @@ -1,33 +1,33 @@ - + {strip} - , - HTML ("" ), - , - . - . + Часто вебдизайнеры сталкиваются с проблемой, что пробелы и переносы + строк влияют на отображение HTML в броузере ("фишки" броузера), то + есть может понадобится склеить все тэги в шаблоне вместе, чтобы получить + желаемый результат. Но в результате получается нечитаемый или + трудноредактируемый шаблон. - , {strip} {/strip}, - , . - - . + В выводимом тексте, заключенном между тэгами {strip} и {/strip}, + удаляются повторные пробелы и переносы строк, перед отображением. + Так вы можете сохранив шаблон читаемым не волноваться насчет + лишних пробелов. - + Техническое Замечание - {strip}{/strip} . - strip. + {strip}{/strip} не влияет на содержимое переменных шаблона. + Для этих целей используйте модификатор strip. - {strip} + тэги {strip} @@ -42,7 +42,7 @@ ]]> - : + Результат выполнения данного примера: - , HTML - . , . - , - . + Заметьте, что в данном примере все строки начинаются и заканчиваются HTML + тэгами. Учтите, что все строки склеиваются вместе. Если в начале или в + конце строки присутствует обычный текст, то вы можете не получить + желаемый результат. - + Комбинирование модификаторов - . - . - | ( ). + Можно применять любое количество модификаторов к переменной. Они будут + применяться в порядке их упоминания слева направо. Модификаторы должны + быть разделены символом | (вертикальная черта). - + Комбинирование модификаторов assign('articleTitle', ' , .'); +$smarty->assign('articleTitle', 'Капля никотина убивает лошадь, хомячка разрывает на куски.'); ?> ]]> - : + Содержимое шаблона: assign('articleTitle', ' ]]> - : + Результат выполнения данного примера: diff --git a/docs/ru/designers/language-custom-functions.xml b/docs/ru/designers/language-custom-functions.xml index e66228ca..e27ddde4 100644 --- a/docs/ru/designers/language-custom-functions.xml +++ b/docs/ru/designers/language-custom-functions.xml @@ -1,11 +1,11 @@ - + - + Пользовательские Функции - Smarty - , . + Smarty поставляется с несколькими пользовательскими + функциями, которые вы можете использовать в шаблонах. &designers.language-custom-functions.language-function-assign; diff --git a/docs/ru/designers/language-custom-functions/language-function-assign.xml b/docs/ru/designers/language-custom-functions/language-function-assign.xml index 03698d00..2a188d4f 100644 --- a/docs/ru/designers/language-custom-functions/language-function-assign.xml +++ b/docs/ru/designers/language-custom-functions/language-function-assign.xml @@ -1,11 +1,11 @@ - + {assign} - {assign} - . + {assign} используется для установки значения переменной + в процессе выполнения шаблона. @@ -17,28 +17,28 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание var string - + Да n/a - , - + Имя переменной, значение которой будет + устанавливаться value string - + Да n/a - + Устанавливаемое значение @@ -50,22 +50,22 @@ - : + Результат выполнения данного примера: - {assign} - + {assign} и арифметика + В этом сложном примере переменные должны заключаться в обратные кавычки - {assign} PHP-. + Доступ к переменным {assign} из PHP-скрипта. - {assign} PHP-, + Чтобы получить доступ к переменным {assign} из PHP-скрипта, используйте функцию get_template_vars(). - , - , : + Обратите внимание, что переменные доступны только во время и после + выполнения шаблона, как видно из следующего примера: get_template_vars('foo'); -// - +// получаем шаблон в переменную-пустышку $dead = $smarty->fetch('index.tpl'); -// 'smarty', +// это выведет 'smarty', так как шаблон уже выполнен echo $smarty->get_template_vars('foo'); $smarty->assign('foo','Even smarter'); -// 'Even smarter' +// это выведет 'Even smarter' echo $smarty->get_template_vars('foo'); ?> @@ -111,8 +111,8 @@ echo $smarty->get_template_vars('foo'); - - . + Следующие функции также могут опционально + назначать переменные шаблона. @@ -129,9 +129,9 @@ echo $smarty->get_template_vars('foo'); - . + См. также assign() - + и get_template_vars().
diff --git a/docs/ru/designers/language-custom-functions/language-function-counter.xml b/docs/ru/designers/language-custom-functions/language-function-counter.xml index 2e28738f..e0633fc8 100644 --- a/docs/ru/designers/language-custom-functions/language-function-counter.xml +++ b/docs/ru/designers/language-custom-functions/language-function-counter.xml @@ -1,18 +1,18 @@ - + {counter} - {counter} . {counter} - . , - , , . - , - . , 'default'. + {counter} используется для вывода счетчика. {counter} запоминает значение + счетчика на каждой итерации. Вы можете настроить значение, интервал + и направление счета, а так же определить, следует ли печатать это значение. + Вы можете использовать несколько счетчиков одновременно, назначив каждому + уникальное имя. Если вы явно не указываете имени, используется имя 'default'. - "assign", - . + Если вы укажете специальный атрибут "assign", вывод счетчика будет назначен + соответствующей переменной шаблона вместо печати в шаблон. @@ -24,55 +24,55 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание name string - + Нет default - + Имя счетчика start number - + Нет 1 - , + Изначальное число, с которого начинается счет skip number - + Нет 1 - + Интервал увеличения счетчика direction string - + Нет up - (up/down) + Направление счета (up/down) print boolean - + Нет true - + Печатать ли значение счетчика assign string - + Нет n/a - + Имя переменной шаблона для сохранения значения счетчика @@ -82,7 +82,7 @@ {counter} {counter}
{counter}
@@ -90,7 +90,7 @@ ]]>
- : + Результат выполнения данного примера: + @@ -9,9 +9,9 @@ through an array of values. - {cycle} . - - . + {cycle} используется для прохода через множество значений. + С его помощью можно легко реализовать чередование двух или более цветов в + таблице или пройтись циклом по массиву. @@ -23,87 +23,87 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание name string - + Нет default - + Название цикла values mixed - + Да N/A - , . - , ( ), - . + Значения, по которым будет производиться цикл. + Либо список, разделеный запятыми (либо другим указанным разделителем), + либо массив значений. print boolean - + Нет true - , + Выводить значение, или нет advance boolean - + Нет true - + Переключаться или нет на следующее значение delimiter string - + Нет , - , values. + Разделитель, используемый в атрибуте values. assign string - + Нет n/a - , + Имя переменной, которой будет присвоен вывод тэга reset boolean - + Нет false - + Цикл будет установлен в начальное значение и не увеличен - , - name. . + Можно проходить через несколько множеств значений одновременно, + указав атрибут name. Имена должны быть уникальными. - , print - false. , . + Можно не отображать данный элемент, установив атрибут print в + false. Удобно для пропуска значения, без его вывода. - advance . - true, {cycle} - . + Атрибут advance используется для повтора значения. Если + установлен в true, то при следующем вызове {cycle} + будет выведено то же значение. - "assign", {cycle} - , . + Если указан специальный атрибут "assign", то вывод {cycle} + присваивается переменной, вместо отображения. diff --git a/docs/ru/designers/language-custom-functions/language-function-debug.xml b/docs/ru/designers/language-custom-functions/language-function-debug.xml index 379ee3c4..b69f88fc 100644 --- a/docs/ru/designers/language-custom-functions/language-function-debug.xml +++ b/docs/ru/designers/language-custom-functions/language-function-debug.xml @@ -1,4 +1,4 @@ - + @@ -12,37 +12,37 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание output string - + Нет javascript - (html javascript) + Тип вывода (html или javascript)
- {debug} . - debug. - , - , - . - , - . + {debug} выводит консоль отладки. Это работает независимо от + значения опции debug. + Так как этот тэг обрабатывается в процесе выполнения, то возможно + вывести только присвоенные переменные, + но не используемые шаблоны. + Но вы видите все переменные, доступные в области видимости текущего + шаблона. - . - . + См. также + Отладочная консоль.
{eval} - {eval} , . - , - / . + {eval} используется для обработки переменной, как шаблона. + Можно использовать для таких вещей, как хранение шаблонных + тэгов/переменных в переменной или в файлах конфигруации. - "assign", eval - , . + Если указан специальный атрибут "assign", то вывод тэга eval + присваивается переменной, вместо отображения. @@ -22,47 +22,47 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание var mixed - + Да n/a - ( ) + Переменная (или строка) для обработки assign string - + Нет n/a - , + Имя переменной, которой будет присвоен вывод - + Техническое Замечание - , . - . + Переменные шаблоны обрабатываются так же, как и обычные шаблоны. + Они подвластны тем же правилам и ограничениям безопасности. - + Техническое Замечание - , - ! - , , - . + Переменные шаблоны компилируются при каждом вызове, скомпилированные версии + не сохраняются! + Однако, если кэширование включено, + вывод будет кэширован вместе с остальной частью шаблона. @@ -79,7 +79,7 @@ ErrorState = You must supply a {#emphstart#}state{#emphend#}. ]]> - : + Шаблон: - : + Результат выполнения данного примера: state. - {eval} + Другой пример использования {eval} - ( ) IP-. - $str . + Отображает имя сервера (заглавными буквами) и IP-адрес. + Переменная $str так же может быть результатом запроса к БД. assign('foo',$str); ]]> - : + Шаблон: + {fetch} - fetch , - http- ftp-. - "http://", - - . - "ftp://", ftp- - . , - PHP-. + fetch используется для отображения содержимого локальных файлов, + http- или ftp-страниц. + Если имя файла начинается с "http://", то веб-страница будет получена и + выведена. + Если имя файла начинается с "ftp://", то файл будет получен с ftp-сервера и + выведен. Для локальных файлов должен быть указан абсолютный путь, + либо путь относительно выполняемого PHP-файла. - "assign", {fetch} - , . + Если указать специалньый атрибут "assign", то вывод функции {fetch} + будет присвоен переменной шаблона, вместо отображения. @@ -26,64 +26,64 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание file string - + Да n/a - , http ftp + файл, http или ftp сайт для отображния assign string - + Нет n/a - , + Имя переменной, которой будет присвоен вывод - + Техническое Замечание - HTTP . , - , . + HTTP переадресация не поддерживается. Убедитесь, что указываете + завершающие слэши, где это необходимо. - + Техническое Замечание - $security - , - , - . + Если включён режим $security + и указан файл из локальной файловой системы, то файл обработается лишь в + том случае, если он находятся в одной из указаных + безопасных папках. - {fetch} + Пример {fetch} {$weather} @@ -93,11 +93,11 @@ - . + См. также {capture}, {eval}, {assign} - + и fetch(). diff --git a/docs/ru/designers/language-custom-functions/language-function-html-checkboxes.xml b/docs/ru/designers/language-custom-functions/language-function-html-checkboxes.xml index c78bfece..f97e1ec2 100644 --- a/docs/ru/designers/language-custom-functions/language-function-html-checkboxes.xml +++ b/docs/ru/designers/language-custom-functions/language-function-html-checkboxes.xml @@ -1,15 +1,15 @@ - + {html_checkboxes} - {html_checkboxes} - , - HTML . - . - values output , - options. XHTML. + {html_checkboxes} является + пользовательской функцией, + которая создает группу флажков в HTML по указанной информации. + Также она обеспечивает отметку флажков по умолчанию. + Параметры values и output являются обязательными, если не указан атрибут + options. Весь вывод идет в формате XHTML. @@ -21,77 +21,77 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание name string - + Нет checkbox - + название списка флажков values array - , options + Да, если не указан атрибут options n/a - + Массив значений для флажков output array - , options + Да, если не указан атрибут options n/a - + массив названий флажков selected string/array - - - () + Нет + пусто + выбранный флажок(флажки) options associative array - , values output + Да, если не указаны атрибуты values и output n/a - + Ассоциативнй массив значений и названий separator string - - - + Нет + пусто + строка разделяющая каждый флажок labels boolean - + Нет true - <label>- + добавляет <label>-тэги к выводу assign string - - - + Нет + пусто + сохранить тэги флажков в массив вместо вывода - , , - name/value <input>. + Все параметры, которые не указаны в списке, выводятся в виде + пар name/value в каждом созданном тэге <input>. {html_checkboxes} @@ -112,7 +112,7 @@ $smarty->assign('customer_id', 1001); ]]> - : + шаблон: assign('customer_id', 1001); ]]> - PHP : + или где PHP код: assign('customer_id', 1001); ]]> - : + шаблон: assign('customer_id', 1001); ]]> - : + оба примера выведут: assign('customer_id', 1001); - ( , PEAR ADODB): + Пример с базой данных (к примеру, PEAR или ADODB): assign('contact',$db->getRow($sql)); - . + См. также {html_radios} - + и {html_options} diff --git a/docs/ru/designers/language-custom-functions/language-function-html-image.xml b/docs/ru/designers/language-custom-functions/language-function-html-image.xml index 6c9e3921..28f1fd6b 100644 --- a/docs/ru/designers/language-custom-functions/language-function-html-image.xml +++ b/docs/ru/designers/language-custom-functions/language-function-html-image.xml @@ -1,13 +1,13 @@ - + {html_image} - {html_image} - , - HTML- . - , . + {html_image} является + пользовательской функцией, + которая создает HTML-тэги для изображений. Высота и ширина автоматически + вычислаются из файла изображения, если они не указаны явно. @@ -19,102 +19,102 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание file string - + Да n/a - / + название/путь к изображению height string - - - + Нет + реальная высота изображения + высота изображения width string - - - + Нет + реальная ширина изображения + ширина изображения basedir string - - - , + Нет + корень веб сервера + папка, от которой указаны относительные пути alt string - + Нет "" - + альтернативное описание изображения href string - + Нет n/a - href, + значение href, куда ссылается картинка path_prefix string - + Нет n/a - + префикс пути результата - basedir - . , - - ( DOCUMENT_ROOT). - $security , - . + basedir - базовая папка для относительных путей. Если не указана, + то используется корень веб сервер + (переменная окружения DOCUMENT_ROOT). + Если $security включено, то путь к + файлу изображения должен быть в пределах безопасной директории. - link , . - link href . - link, <a - href="LINKVALUE"> <a>. + Атрибут link указывает, куда ссылается изображение. Атрибут + link устанавливает значение атрибута href тэга А. Если указан + атрибут link, то изображение окружается выражениями <a + href="LINKVALUE"> и <a>. - path_prefix - , - - , - . + path_prefix - это необязательный префикс, который + вы можете добавить к пути результата + Это удобно в случае, если вы хотите передать другое серверное имя для + изображения. - , , - name/value <input>. + Все параметры, которые не указаны в списке, выводятся в виде + пар name/value в каждом созданном тэге <input>. - + Техническое Замечание - {html_image} - . - , - {html_image} , - . + {html_image} требует обращение к диску для чтения изображения + и вычисления его размеров. Если не используется + кэширование шаблонов, + то тэг {html_image} лучше не использовать, а вставлять статичные тэги + изображений для достижения оптимального быстродействия. - html_image + Пример работы html_image - : + Возможный результат обработки шаблона: + {html_options} - {html_options} - , - HTML- option . - . - values output , + {html_options} является + пользовательской функцией, + которая создает группу HTML-тэгов option по указанной информации. + Также она обеспечивает выбор элемента по умолчанию. + Параметры values и output являются обязательными, если не указан атрибут options. @@ -20,72 +20,72 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание values - - , options + массив + Да, если не указан атрибут options n/a - + массив значений для выпадающего списка output - - , options + массив + Да, если не указан атрибут options n/a - + массив названий для выпадающего списка selected string/array - - - () + Нет + пусто + Выбранный элемент(ы) options - - , values output + ассоциативный массив + Да, если не указаны атрибуты values и output n/a - + ассоциативный массив значений и названий name string - - - + Нет + пусто + Название выпадающего списка - - , HTML- <optgroup> - . <optgroup> . - XHTML. + Если переданное значение - массив, оно будет принято за HTML-тэг <optgroup> + и отображено в виде групп. В элементе <optgroup> поддерживается рекурсия. + Весь вывод совместим с XHTML. - name, - <select name="groupname"></select>. - <option>. + Если указан необязательный параметр name, список будет + окружен тэгом <select name="groupname"></select>. + В противном случае будут сгенерированы лишь элементы <option>. - , , - name/value <select>. - name , . + Все параметры, которые не указаны выше, выводятся в виде + пар name/value в тэге <select>. Если необязательный + параметр name не указан, они игнорируются. {html_options} - 1: + Пример №1: assign('customer_id', 1001); ]]> - : + Шаблон: assign('customer_id', 1001); ]]> - 2: + Пример №2: assign('customer_id', 1001); ]]> - : + Шаблон: assign('customer_id', 1001); ]]> - : + Результат выполнения обоих примеров будет следующим: assign('customer_id', 1001); - {html_options} - ( , PEAR ADODB): + {html_options} - Пример с базой данных (к примеру, PEAR или ADODB): assign('contact',$db->getRow($sql)); ]]> - : + Шаблон: assign('contact',$db->getRow($sql)); - . + См. также {html_checkboxes} - + и {html_radios} diff --git a/docs/ru/designers/language-custom-functions/language-function-html-radios.xml b/docs/ru/designers/language-custom-functions/language-function-html-radios.xml index bb450769..8a29116c 100644 --- a/docs/ru/designers/language-custom-functions/language-function-html-radios.xml +++ b/docs/ru/designers/language-custom-functions/language-function-html-radios.xml @@ -1,14 +1,14 @@ - + {html_radios} -{html_radios} - , - HTML . - . - values output , - options. XHTML. +{html_radios} является + пользовательской функцией, + которая создает группу радиокнопок в HTML по указанной информации. + Также она обеспечивает выбор радиокнопки по умолчанию. + Параметры values и output являются обязательными, если не указан атрибут + options. Весь вывод идет в формате XHTML. @@ -20,75 +20,75 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание name string - + Нет radio - + название элементов выбора values - - , options + массив + Да, если не указан атрибут options n/a - + массив значений элементов выбора output - - , options + массив + Да, если не указан атрибут options n/a - + массив названий элементов выбора checked string - - - + Нет + пусто + Значение выбранного элемента options - - , values output + ассоциативный массив + Да, если не указаны атрибуты values и output n/a - - + ассоциативный массив значений и названий + элементов выбора separator string - - - , + Нет + пусто + текст, разделяющий элементы выбора assign string - - - radio , + Нет + пусто + сохраняет тэги radio в массив, вместо вывода в шаблон - , , - name/value <input>. + Все параметры, которые не указаны в списке, выводятся в виде + пар name/value в каждом созданном тэге <input>. - {html_radios} - 1 + {html_radios} - пример №1 assign('customer_id', 1001); ]]> - : + Шаблон: assign('customer_id', 1001); - {html_radios} - 2 + {html_radios} - пример №2 assign('customer_id', 1001); ]]> - : + Шаблон: assign('customer_id', 1001); ]]> - : + Оба примера выведут следующее: assign('customer_id', 1001); - {html_radios} - ( , PEAR ADODB): + {html_radios} - пример с базой данных (к примеру, PEAR или ADODB): assign('contact',$db->getRow($sql)); ]]> - : + Шаблон: assign('contact',$db->getRow($sql)); - . + См. также {html_checkboxes} - + и {html_options} diff --git a/docs/ru/designers/language-custom-functions/language-function-html-select-date.xml b/docs/ru/designers/language-custom-functions/language-function-html-select-date.xml index bcbcc3b5..0793b3bb 100644 --- a/docs/ru/designers/language-custom-functions/language-function-html-select-date.xml +++ b/docs/ru/designers/language-custom-functions/language-function-html-select-date.xml @@ -1,13 +1,13 @@ - + {html_select_date} - {html_select_date} - , - . - , . + {html_select_date} является + пользовательской функцией, + которая создает выпадающее меню для выбора даты. + Она может отображать поля для года, месяца и дня. @@ -19,212 +19,212 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание prefix string - + Нет Date_ - + префикс названий переменных time - timestamp/-- - + timestamp/ГГГГ-ММ-ДД + Нет - unix timestamp -- + текущее время в формате unix timestamp или ГГГГ-ММ-ДД - + используемое время start_year string - - + Нет + текущий год - . , - (+/- N) + Начальный год в выпадающем списке. Либо указывается явно, либо + относительно текущего года (+/- N) end_year string - - start_year + Нет + аналогично start_year - . , - (+/- N) + Конечный год в выпадающем списке. Либо указывается явно, либо + относительно текущего года (+/- N) display_days boolean - + Нет true - + выводить ли список дней display_months boolean - + Нет true - + выводить ли список месяцев display_years boolean - + Нет true - + выводить ли список лет month_format string - + Нет %B - (strftime) + Формат названия месяцев (strftime) day_format string - + Нет %02d - (sprintf) + формат названия дней (sprintf) day_value_format string - + Нет %d - (sprintf) + формат значения дней (sprintf) year_as_text boolean - + Нет false - + Выводить ли значение года текстом reverse_years boolean - + Нет false - + Выводить года в обратном порядке field_array string - + Нет null - (name), - : + название переменной (name), которая будет + содержать выбранные значения в виде массива: name[Day], name[Year], name[Month]. day_size string - + Нет null - size select + Устанавливает атрибут size тэга select для дней month_size string - + Нет null - size select + Устанавливает атрибут size тэга select для месяцев year_size string - + Нет null - size select + Устанавливает атрибут size тэга select для лет all_extra string - + Нет null - + Устанавливает дополнительные атрибуты для всех тэгов select/input day_extra string - + Нет null - select/input - + Устанавливает дополнительные атрибуты тэгов select/input для + дней month_extra string - + Нет null - select/input + Устанавливает дополнительные атрибуты тэгов select/input для месяцев year_extra string - + Нет null - select/input + Устанавливает дополнительные атрибуты тэгов select/input для лет field_order string - + Нет MDY - () + Порядок следования полей (МДГ) field_separator string - + Нет \n - , + текст, разделяющий поля month_value_format string - + Нет %m - (strftime). - - %m ( ). + формат значения месяца (strftime). + По умолчанию - %m (номер месяца). year_empty string - + Нет null - , - ("") . - ", " - . - , "-MM-DD" - time, . + Если указан, первый пункт элемента для выбора года станет такой надписью + с пустым ("") значением. + Это удобно для создания надписей вроде "Пожалуйста, выберите год" в + качестве первого пункта выпадающего меню. + Обратите внимание, что вы можете использовать значения типа "-MM-DD" + для атрибута time, чтобы не выбирать год заранее. @@ -233,10 +233,10 @@ No null - , - ("") . - , "YYYY--DD" - time, . + Если указан, первый пункт элемента для выбора месяца станет такой надписью + с пустым ("") значением. + Обратите внимание, что вы можете использовать значения типа "YYYY--DD" + для атрибута time, чтобы не выбирать месяц заранее. @@ -245,30 +245,30 @@ No null - , - ("") . - , "YYY-MM-" - time, . + Если указан, первый пункт элемента для выбора дня станет такой надписью + с пустым ("") значением. + Обратите внимание, что вы можете использовать значения типа "YYY-MM-" + для атрибута time, чтобы не выбирать день заранее. - , , - name/value <select> , - . + Все параметры, которые не указаны в списке, выводятся в виде + пар name/value в каждом созданном тэге <select> для дня, + месяца и года. {html_select_date} - : + Шаблон: - : + Результат обработки шаблона: {html_select_date} - : ( - 2000) + Результатом обработки шаблона будет: (текущий год - 2000) - . + См. также {html_select_time}, date_format, $smarty.now - - . + и + Советы относительно дат. diff --git a/docs/ru/designers/language-custom-functions/language-function-html-select-time.xml b/docs/ru/designers/language-custom-functions/language-function-html-select-time.xml index 79e234e3..ff992ab1 100644 --- a/docs/ru/designers/language-custom-functions/language-function-html-select-time.xml +++ b/docs/ru/designers/language-custom-functions/language-function-html-select-time.xml @@ -1,13 +1,13 @@ - + {html_select_time} - {html_select_time} - , - . - , , . + {html_select_time} является + пользовательской функцией, + которая создает выпадающее меню для выбора времени. + Она может отображать поля для часа, минуты, секунды и меридиана. @@ -19,140 +19,140 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание prefix string - + Нет Time_ - + префикс для имен переменных time timestamp - - - / + Нет + текущее время + какую дату/время использовать display_hours boolean - + Нет true - + отображать ли часы display_minutes boolean - + Нет true - + Отображать ли минуты display_seconds boolean - + Нет true - + Отображать ли секунды display_meridian boolean - + Нет true - (am/pm) + отображать ли меридиан (am/pm) use_24_hours boolean - + Нет true - 24- + использовать ли 24-часовой формат minute_interval integer - + Нет 1 - + интервал пунктов выпадающего меню минут second_interval integer - + Нет 1 - + интервал пунктов выпадающего меню секунд field_array string - + Нет n/a - + присвоить значения массиву с таким именем all_extra string - + Нет null - select/input + добавляет дополнительные атрибуты к тэгам select/input hour_extra string - + Нет null - select + добавляет дополнительные атрибуты к тэгу select часа minute_extra string - + Нет null - select + добавляет дополнительные атрибуты к тэгу select минуты second_extra string - + Нет null - select + добавляет дополнительные атрибуты к тэгу select секунды meridian_extra string - + Нет null - select + добавляет дополнительные атрибуты к тэгу select меридиана - time . - (Unix timestamp), - YYYYMMDDHHMMSS , - PHP + Атрибут time может иметь разные форматы. + Он может быть уникальной временной меткой (Unix timestamp), + строкой формата YYYYMMDDHHMMSS или любой другой строкой, + которую может обработать функция PHP strtotime(). {html_select_time} - : + Шаблон: - : + Результат обработки шаблона: - . + См. также $smarty.now, {html_select_date} - - . + и + Советы относительно дат. {html_table} - {html_table} - , - HTML- table. - cols , . - table_attr, tr_attr - td_attr - - table, tr td. tr_attr - td_attr , - . trailpad - , - , . + {html_table} является + пользовательской функцией, + которая распечатывает массив данных в HTML-тэг table. + Атрибут cols указывает, сколько в таблице будет колонок. + Атрибуты table_attr, tr_attr и + td_attr определяют атрибуты соответствующих элементов + таблицы - тэгов table, tr и td. Если параметры tr_attr + или td_attr являются массивами, их значения будут + использоваться циклически. trailpad - это значение, + помещаемое в пустые ячейки последней строки, если такие будут. @@ -25,125 +25,125 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание loop array - + Да n/a - + массив данных для обработки cols mixed - + Нет 3 - . , - rows, - , - . ( rows, cols) , - cols , 3. - , - - - . + количество колонок в таблице. Если этот атрибут не указан, но указан + атрибут rows, то количество колонок автоматически вычисляется исходя + из количества строк и количества элементов для отображения, чтобы как + раз уместить все элементы. Если оба параметра (и rows, и cols) опущены, + cols принимает значение по умолчанию, равное 3. + Если параметр является списком или массивом, кол-во колонок рассчитывается + исходя из кол-ва элементов в списке или массиве. rows integer - + Нет empty - . , - cols, - , - . + количество строк в таблице. Если этот атрибут не указан, но указан + атрибут cols, то количество строк автоматически вычисляется исходя + из кооичества колонок и количества элементов для отображения, чтобы как + раз уместить все элементы. inner string - + Нет cols - . - cols . - rows . + направление заполнения элементов таблицы из массива. + cols означает заполнение элементов колонки за колонкой. + rows означает заполнение элементов строка за строкой. caption string - - + Нет + пусто - , . + текст, используемый в качестве заголовка таблицы. table_attr string - + Нет border="1" - table + атрибуты для тэга table th_attr string - - - th ( ) + Нет + пусто + атрибуты для тэга th (значения массива отображаются циклично) tr_attr string - - - tr ( ) + Нет + пусто + атрибуты для тэга tr (значения массива отображаются циклично) td_attr string - - - td ( ) + Нет + пусто + атрибуты для тэга td (значения массива отображаются циклично) trailpad string - + Нет &nbsp; - ( ) + значение для заполнения пустых ячеек последней строки (если такие есть) hdir string - + Нет right - . : - right (-) - - left (-) + направления заполнения каждой строки. доступные значения: + right (слева-направо) + и + left (справа-налево) vdir string - + Нет down - . : - down (-) - - up (-) + направление заполнения каждой колонки. доступные значения: + down (сверху-вниз) + и + up (снизу-вверх) @@ -165,7 +165,7 @@ $smarty->display('index.tpl'); ]]> - : + Шаблон: display('index.tpl'); ]]> - : + Результат выполнения данного примера: + {mailto} - {mailto} "mailto:" - . e-mail' - - - . + {mailto} автоматически создает ссылки "mailto:" и опционально кодирует + их. Кодирование e-mail'ов на вашем сайте усложняет их обнаружение + автоматическими программами-анализаторами и является элементарным + способом защиты от спама. @@ -19,101 +19,101 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание address string - + Да n/a - e-mail + адрес e-mail text string - + Нет n/a - . : - e-mail + название ссылки. По умолчанию: + адрес e-mail encode string - + Нет none - e-mail. - none, - hex, javascript + Способ кодирования e-mail. + Может быть none, + hex, javascript или javascript_charcode. cc string - + Нет n/a - e-mail . - . + адреса e-mail для точной копии. + Адреса разделяются запятыми. bcc string - + Нет n/a - e-mail "" . - . + адреса e-mail для "слепой" копии. + Адреса разделяются запятыми. subject string - + Нет n/a - . + тема письма. newsgroups string - + Нет n/a - . - . + в какие конференции передавать. + конференции разделяются запятыми. followupto string - + Нет n/a - . - . + адреса для дальнейшего перенаправления. + Адреса разделяются запятыми. extra string - + Нет n/a - , - (style) + Дополнительный атрибуты, передаваемые в ссылку + такие как стили (style) - + Техническое Замечание - javascript - , - - . , javascript - . + javascript - скорее всего наиболее полная форма кодирования, + хотя вы так же можете использовать шестнадцатиричное + кодирование. К сожалению, javascript не поддерживает + кодирование русских символов. - {mailto} + Примеры использования {mailto} и результаты их обработки - . + См. также escape, - E-mail - + Сокрытие E-mail адреса + и {textformat} diff --git a/docs/ru/designers/language-custom-functions/language-function-math.xml b/docs/ru/designers/language-custom-functions/language-function-math.xml index dc9ea3d9..d3ee3b8a 100644 --- a/docs/ru/designers/language-custom-functions/language-function-math.xml +++ b/docs/ru/designers/language-custom-functions/language-function-math.xml @@ -1,22 +1,22 @@ - + {math} - {math} - . - , . - , , , - . + {math} позволяет дизайнерам шаблонов проводить математические вычисления + в шаблоне. Любые числовые переменные шаблона могут быть использованы в + уравнениях, и результат будет выведен на месте этого тега. + Переменные, используемые в уравнении, передаются в виде параметров, + которые могут быть переменными шаблона или статическими значениями. +, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, - rand, round, sin, sqrt, srans tan . - PHP - . + rand, round, sin, sqrt, srans и tan являются доступными операторами. + Обратитесь к документации PHP для получения дополнительной информации + по этим математическим функциям. - "assign", - {math} . + Если вы указываете специальный параметр "assign", результат выполнения + функции {math} будет присвоен переменной шаблона вместо вывода в шаблон. @@ -28,70 +28,70 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание equation string - + Да n/a - + уравнение для выполнения format string - + Нет n/a - (sprintf) + формат результата (sprintf) var numeric - + Да n/a - + значение переменной уравнения assign string - + Нет n/a - + имя переменной шаблона для сохранения результата [var ...] numeric - + Да n/a - + значение переменной уравнения - + Техническое Замечание - {math} - - PHP + {math} - это очень ресурсоёмкая функция из-за использования ею функции PHP eval(). - PHP , - PHP - . - , {math}, - + Выполнение математических операций в PHP намного эффективнее, так что + по возможности используйте PHP для математических рассчетов и + присваивайте результат шаблону. + При любых обстоятельствах, избегайте повторяющихся вызовов функции {math}, + например внутри циклов {section}. {math} - 1: + Пример №1: - : + Результат выполнения данного примера: - 2: + Пример №2: - : + Результат выполнения данного примера: - 3: + Пример №3: - : + Результат выполнения данного примера: - 4: + Пример №4: - : + Результат выполнения данного примера: + {popup_init} {popup} - - - overLib, , - . - - , - . {popup_init} , - <head> , - + это функция для интеграции + overLib, библиотеки, которая + используется для отображения всплывающих окон. Они используются для + контекстно-чувствительной информации, такой как окна справки и всплывающие + подсказки. {popup_init} должна быть вызвана только один раз, + желательно в тэге <head> в пределах каждой страницы, на которой вы + собираетесь использовать функцию {popup}. - - ( ). + Путь может быть задан относительно обрабатываемого скрипта или в виде полного + адреса с доменом (но не относительно файла шаблона). overLib - (Erik Bosrup) - &url.overLib;. + написана и поддерживается Эриком Босрупом (Erik Bosrup) и её домашняя страница находится по + адресу &url.overLib;. @@ -27,14 +27,14 @@ -{* popup_init *} +{* popup_init должна быть вызвана один раз в начале страницы *} {popup_init src='javascripts/overlib/overlib.js'} -{* , *} +{* пример с полным адресом, включая домен *} {popup_init src='http://www.example.com/my_js_libs/overlib/overlib.js'} -// +// результат выполнения первого примера diff --git a/docs/ru/designers/language-custom-functions/language-function-popup.xml b/docs/ru/designers/language-custom-functions/language-function-popup.xml index 0f0c103f..6a74c41b 100644 --- a/docs/ru/designers/language-custom-functions/language-function-popup.xml +++ b/docs/ru/designers/language-custom-functions/language-function-popup.xml @@ -1,12 +1,12 @@ - + {popup} - {popup} javascript. - , - {popup_init}. + {popup} используется для создания высплывающих окон при помощи javascript. + Для обеспечения работы этой функции, предварительно ДОЛЖНА быть вызвана + функция {popup_init}. @@ -18,379 +18,379 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание text string - + Да n/a - /html + текст/html для отображения во всплывающем окне trigger string - + Нет onMouseOver - . - onMouseOver onClick. + Какое событие используется для активации всплывающего окна. + Может быть onMouseOver или onClick. sticky boolean - + Нет false - + Всплывающее окно закрывается кликом caption string - + Нет n/a - + устанавливает заголовок окна fgcolor string - + Нет n/a - + цвет всплывающего окна bgcolor string - + Нет n/a - + цвет рамки всплывающего окна textcolor string - + Нет n/a - + устанавливает цвет текста внутри всплывающего окна capcolor string - + Нет n/a - + устанавливает цвет заголовка всплывающего окна closecolor string - + Нет n/a - "" + устанавливает цвет надписи "закрыть" textfont string - + Нет n/a - + устанавливает шрифт для главного текста captionfont string - + Нет n/a - + устанавливает шрифт дла заголовка closefont string - + Нет n/a - "" + устанавливает шрифт надписи "Закрыть" textsize string - + Нет n/a - + устанавливает размер главного текста captionsize string - + Нет n/a - + устанавливает размер заголовка closesize string - + Нет n/a - "" + устанавливает размер надписи "Закрыть" width integer - + Нет n/a - + устанавливает ширину всплывающего окна height integer - + Нет n/a - + устанавливает высоту всплывающего окна left boolean - + Нет false - + заставляет всплывающее окно появляться слева от курсора мыши right boolean - + Нет false - + заставляет всплывающее окно появляться справа от курсора мыши center boolean - + Нет false - + заставляет всплывающее окно появляться по центру курсора мыши above boolean - + Нет false - . - : height. + Заставляет всплывающее окно появляться сверху от курсора. + Внимание: работает только если установлен атрибут height. below boolean - + Нет false - + заставляет всплывающее окно появляться снизу от курсора мыши border integer - + Нет n/a - + делает рамку вокрут всплывающего окна тоньше или толще offsetx integer - + Нет n/a - , - + как далеко от курсора будет отображаться всплывающее окно, + по горизонтали offsety integer No n/a - , - + как далеко от курсора будет отображаться всплывающее окно, + по вертикали fgbackground - url - + url к картинке + Нет n/a - , - . + определяет картинку, которая будет использована вместо цвета для + содержимого всплывающего окна. bgbackground - url + url к картинке No n/a - , - . : bgcolor "", - . : - "", Netscape , - - + определяет картинку, которая будет использована вместо цвета для + рамки всплывающего окна. Внимание: вам следует установить bgcolor в "", + иначе цвет так же будет отображаться. Внимание: когда присутствует ссылка + "Закрыть", Netscape будет перерисовывать ячеки таблицы, из-за чего результат + может быть неверным closetext string - + Нет n/a - "" + устанавливает текст для надписи "Закрыть" noclose boolean - + Нет n/a - "" + не отображать текст "Закрыть" для всплывающих окон с заголовком status string - + Нет n/a - + устанавливает текст в строку статуса браузера autostatus boolean - + Нет n/a - - : status + устанавливает текст всплывающего окна в строку статуса браузера + Внимание: переназначает установку status autostatuscap string - + Нет n/a - - . - NOTE: status autostatus + устанавливает текст заголовка всплывающего окна в строку статуса + браузера. + NOTE: переназначает установки status и autostatus inarray integer - + Нет n/a - overLib - ol_text, overlib.js. - text + говорит overLib прочитать текст по этому индексу в + массиве ol_text, расположеном в overlib.js. Этот параметр + может быть использован вместо параметра text caparray integer - + Нет n/a - overLib - ol_caps + говорит overLib и прочитать заголовок по этому индексу в + массиве ol_caps capicon url - + Нет n/a - + отображает картинку перед заголовком всплывающего окна snapx integer - + Нет n/a - N- + прикрепляет всплывающее окно к каждому N-ому пикселю по горизонтали snapy integer - + Нет n/a - N- + прикрепляет всплывающее окно к каждому N-ому пикселю по вертикали fixx integer - + Нет n/a - . - : + блокирует горизонтальное положение всплывающего окна. + Внимание: переназначает всё горизонтальное позиционирование fixy integer - + Нет n/a - . - : + блокирует вертикальное положение всплывающего окна. + Внимание: переназначает всё вертикальное позиционирование background url - + Нет n/a - + устанавливает картинку для использования вместо фона таблицы padx integer,integer - + Нет n/a - . - : + делает горизонтальный отступ фоновой картинки для размещения текста. + Внимание: это двойная команда pady integer,integer - + Нет n/a - . - : + делает вертикальный отступ фоновой картинки для размещения текста. + Внимание: это двойная команда fullhtml boolean - + Нет n/a - html - . HTML- "text" + дает вам возможность полностью контролировать html поверх фоновой + картинки. HTML-код ожидается в атрибуте "text" frame string - + Нет n/a - . - . overlib - + контролирует всплывающее окно в другом фрейме. + См. домашнюю страницу overlib для дополнительной информации по этой + функции function string - + Нет n/a - javascript - + вызывает указанную функцию javascript и отображает возвращенное + значение во всплывающем окне delay integer - + Нет n/a - . - . + заставляет всплывающее окно вести себя как всплывающую подсказку. + Оно всплывет только после определенной задержки в миллисекундах. hauto boolean - + Нет n/a - , - . + автоматически определять, должна ли всплывающая подсказка быть + слева или справа от курсора мыши. vauto boolean - + Нет n/a - , - . + автоматически определять, должна ли всплывающая подсказка быть + выше или ниже курсора мыши. @@ -400,30 +400,30 @@ {popup} mypage -{* HTML, .. *} +{* вы можете использовать HTML, ссылки и т.д. в тексте *} mypage -{* *} +{* всплывающее окно над ячейкой таблицы *} {$part_number} ]]> - + Другой хороший пример можно найти на в описании тэга {capture}. - . + См. также {popup_init} - + и overLib. diff --git a/docs/ru/designers/language-custom-functions/language-function-textformat.xml b/docs/ru/designers/language-custom-functions/language-function-textformat.xml index a5a71246..c04242f7 100644 --- a/docs/ru/designers/language-custom-functions/language-function-textformat.xml +++ b/docs/ru/designers/language-custom-functions/language-function-textformat.xml @@ -1,19 +1,19 @@ - + {textformat} - {textformat} - - , - . , - , - . + {textformat} - это + блоковая функция, + используемая для форматирования текста. Проще говоря, она убирает + лишние пробелы и спецсимволы, а так же форматирует параграфы добавляя + разрывы строк и отступы. - , - . - , "email". + Вы можете указать параметры явно, либо использовать предустановленный + стиль. + На данный момент, единственным таким стилем является "email". @@ -25,73 +25,73 @@ - - - - - + Имя атрибута + Тип + Обязателен + По умолчанию + Описание style string - + Нет n/a - + предустановленный стиль indent number - + Нет 0 - + Количество символов для отступа на каждой строке indent_first number - + Нет 0 - + Количество символов для отступа на первой строке indent_char string - - ( ) - ( ), - + Нет + (один пробел) + Символ (или набор символов), при помощи которых будет + осуществляться отступ wrap number - + Нет 80 - , - + Максимальное количество символов, после которого будет вставлен + перенос строки wrap_char string - + Нет \n - ( ), - + Символ (или набор символов), при помощи которых будет + осуществляться перенос строки wrap_cut boolean - + Нет false - true, , - + Если true, перенос строки будет разбивать строку на любом символе, + а не только на границе слов assign string - + Нет n/a - + переменная шаблона для присвоения результата работы функции @@ -125,7 +125,7 @@ ]]> - : + Результат выполнения данного примера: - : + Результат выполнения данного примера: - : + Результат выполнения данного примера: - : + Результат выполнения данного примера: - . + См. также {strip} - + и {wordwrap}. diff --git a/docs/ru/designers/language-modifiers.xml b/docs/ru/designers/language-modifiers.xml index 474de82d..024e8afa 100644 --- a/docs/ru/designers/language-modifiers.xml +++ b/docs/ru/designers/language-modifiers.xml @@ -1,97 +1,132 @@ - + - + - + Модификаторы переменных - - , - - . - | ( ) . - , . - - : (). , PHP - - . + Модификаторы переменных могут быть прмменены к + переменным, + пользовательским функциям + или строкам. Для их применения надо после модифицируемого значения + указать символ | (вертикальная черта) и название модификатора. + Так же модификаторы могут принимать параметры, которые влияют на их поведение. + Эти параметры следуют за названием модификатора и разделяются + : (двоеточием). Кроме того, все функции PHP + могут быть использованы в качестве модификаторов (об этом дальше) + и модификаторы можно + комбинировать. - + Примеры модификаторов {html_options output=$myArray|upper|truncate:20} ]]> + + + - -, - . , - , - @. : {$articleTitle|@count} - $articleTitle. + Если модификатор применяется к переменной-массиву, то он будет применен к + каждому элементу массива. Если же требуется применить модификатор к массиву, + как к переменной, то необходимо перед именем модификатора указать символ + @. + + + Пример + + {$articleTitle|@count} - выведет количество елементов + в массиве $articleTitle используя стандартную + функцию PHP + count() + в качестве модификатора. + + + + - - $plugins_dir - - register_modifier(); - PHP-, . + Модификаторы автоматически загружаются из директории $plugins_dir + или могут быть явно зарегистрированы при помощи функции + + register_modifier(); + это удобно для использования функции как в PHP-коде, так и в шаблоне. - PHP- . - ( @count - PHP, Smarty). PHP- - "": -, - ({"%2.f"|sprintf:$float} - , - . {$float|string_format:"%2.f"}, - Smarty). -, $security, PHP-, - , "" - - $security_settings['MODIFIER_FUNCS']. + Любая PHP-функция может быть использована в качестве модификатора. + Тем не менее, использование PHP-функций в качестве модификаторов + имеет две маленькие "ловушки": + + + + Во-первых, иногда порядок аргументов функции не самый удобный. + Форматирование $foo при помощи + {"%2.f"|sprintf:$float} - это рабочий, но + не совсем удобный вариант. + Больше подойдет {$float|string_format:"%2.f"}, + который предлагает дистрибутив Smarty). + + + + + + Во-вторых, в случае включения $security, все PHP-функции, которые будут + использованы как модификаторы, должны быть объявлены "безопасными" + в элементе MODIFIER_FUNCS массива + + $security_settings. + + + + + - . - register_modifier(), - register_function(), - - Smarty - - . + См. также + + register_modifier(), + + Комбинирование модификаторов и + Плагины - расширение функциональности Smarty. &designers.language-modifiers.language-modifier-capitalize; diff --git a/docs/ru/designers/language-modifiers/language-modifier-capitalize.xml b/docs/ru/designers/language-modifiers/language-modifier-capitalize.xml index 2628ce95..8bd7eba8 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-capitalize.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-capitalize.xml @@ -1,10 +1,10 @@ - + capitalize - . + Преобразовывает первые буквы каждого в переменной слова в заглавные. @@ -15,21 +15,21 @@ - - - - - + Позиция параметра + Тип + Обязателен + По умолчанию + Описание 1 boolean - + Нет false - , - + Этот параметр определяет, распространяется ли действие + модификатора на слова с цифрами @@ -46,7 +46,7 @@ $smarty->assign('articleTitle', 'next x-men film, x3, delayed.'); ]]> - : + Шаблон: assign('articleTitle', 'next x-men film, x3, delayed.'); ]]> - : + Результат обработки: - . + См. также lower - + и upper diff --git a/docs/ru/designers/language-modifiers/language-modifier-cat.xml b/docs/ru/designers/language-modifiers/language-modifier-cat.xml index c4b6d942..4aa130e0 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-cat.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-cat.xml @@ -1,10 +1,10 @@ - + cat - . + Данная строка добавляется к модифицируемому значению переменной. @@ -15,21 +15,21 @@ - - - + Позиция параметра + Тип + Обязателен cat - + Описание 1 string - - - - . + Нет + пусто + Данная строка добавляется к + модифицируемому значению. @@ -47,7 +47,7 @@ $smarty->assign('articleTitle', "Psychics predict world didn't end"); ]]> - : + Шаблон: assign('articleTitle', "Psychics predict world didn't end"); ]]> - : + Результат обработки: + count_characters - . + Подсчитывает количество символов в переменной. @@ -15,20 +15,20 @@ - - - - - + Позиция параметра + Тип + Обязателен + По умолчанию + Описание 1 boolean - + Нет false - , . + Определяет, учитывать ли пробелы при подсчете. @@ -46,7 +46,7 @@ $smarty->assign('articleTitle', 'Cold Wave Linked to Temperatures.'); ]]> - : + Шаблон: assign('articleTitle', 'Cold Wave Linked to Temperatures.'); ]]> - : + Результат обработки: - . + См. также count_words, count_sentences - + и count_paragraphs. diff --git a/docs/ru/designers/language-modifiers/language-modifier-count-paragraphs.xml b/docs/ru/designers/language-modifiers/language-modifier-count-paragraphs.xml index a448c76e..5c639211 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-count-paragraphs.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-count-paragraphs.xml @@ -1,10 +1,10 @@ - + count_paragraphs - . + Подсчитывает количество абзацев в переменной. count_paragraphs @@ -21,7 +21,7 @@ $smarty->assign('articleTitle', ]]> - : + Шаблон: assign('articleTitle', ]]> - : + Результат обработки: - . + См. также count_characters, count_sentences - + и count_words. diff --git a/docs/ru/designers/language-modifiers/language-modifier-count-sentences.xml b/docs/ru/designers/language-modifiers/language-modifier-count-sentences.xml index 7b89fdf4..ab1491ee 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-count-sentences.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-count-sentences.xml @@ -1,10 +1,10 @@ - + count_sentences - . + Подсчитывает количество предложений в переменной. count_sentences @@ -21,7 +21,7 @@ $smarty->assign('articleTitle', ]]> - : + Шаблон: assign('articleTitle', ]]> - : + Результат обработки: - . + См. также count_characters, count_paragraphs - + и count_words. diff --git a/docs/ru/designers/language-modifiers/language-modifier-count-words.xml b/docs/ru/designers/language-modifiers/language-modifier-count-words.xml index 4f540bb4..4a90c105 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-count-words.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-count-words.xml @@ -1,10 +1,10 @@ - + count_words - . + Подсчитывает количество слов в переменной. count_words @@ -18,7 +18,7 @@ $smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.'); ]]> - : + Шаблон: assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.'); ]]> - : + Шаблон: + date_format - + Форматирует дату согласно указанному формату strftime(). - Smarty - unix, - mysql , , - , + Даты могут быть переданы Smarty в виде + временных меток unix, + временных меток mysql или в виде любой строки, содержащей день, месяц и + год, которую может обработать функция strtotime(). - date_format - . , - date_format, , - . + Дизайнер могут использовать date_format для получения полного контроля + над форматированием даты. Если дата, переданная в + date_format, пуста и второй аргумент передан, он будет + использоваться в качестве даты для форматирования. @@ -26,27 +26,27 @@ - - - - - + Позиция параметра + Тип + Обязателен + По умолчанию + Описание 1 string - + Нет %b %e, %Y - . + Это формат для обрабатываемой даты. 2 string - + Нет n/a - , . + Это дата по умолчанию, если входящее значение пустое. @@ -55,21 +55,21 @@ - Smarty-2.6.10, , date_format, - unix - ( mysql, . ). + Начиная со Smarty-2.6.10, числовые значения, передаваемые в date_format, + всегда рассматриваются как временная метка unix + (кроме временных меток mysql, см. ниже). - Smarty-2.6.10, , - strtotime() php ( , ""), - - strtotime() - - , . + До Smarty-2.6.10, числовые строки, которые так же могли быть обработаны + функцией strtotime() в php (к примеру, "ГГГГММДД"), иногда - + в зависимости от конкретной реализации strtotime() - интерпретировались + как строки с датой, а не временные метки. - - mysql: - 14 (""). - mysql , - unix. + Единственное исключение - это временные метки mysql: Они так же + являются числовыми и состоят из 14 символов ("ГГГГММДДЧЧММСС"). + Временные метки mysql имеют более высокий приоритет, чем временные + метки unix. @@ -88,7 +88,7 @@ $smarty->assign('yesterday', strtotime('-1 day')); ]]> - ( $smarty.now): + Шаблон (использует $smarty.now): assign('yesterday', strtotime('-1 day')); ]]> - : + Результат обработки: - date_format: + Конверсионные указатели date_format: - %a - , + %a - сокращенное название дня недели, в зависимости от текущей локали - %A - , + %A - полное название дня недели, в зависимости от текущей локали - %b - , + %b - сокращенное название месяца, в зависимости от текущей локали - %B - , + %B - полное название месяца, в зависимости от текущей локали - %c - + %c - формат даты и времени по умолчанию для текущей локали - %C - (, 100, 00 99) + %C - номер века (год, деленный на 100, представленный в виде целого в промежутке от 00 до 99) - %d - ( 01 31) + %d - день месяца в десятичном формате (от 01 до 31) - %D - %m/%d/%y + %D - синоним %m/%d/%y - %e - ( 1 31) + %e - день месяца в десятичном формате без ведущего нуля (от 1 до 31) %g - Week-based year within century [00,99] @@ -151,34 +151,34 @@ Monday, February 5, 2001 %G - Week-based year, including the century [0000,9999] - %h - %b + %h - синоним %b - %H - 24- ( 00 23) + %H - часы по 24-часовым часам (от 00 до 23) - %I - 12- ( 01 12) + %I - часы по 12-часовым часам (от 01 до 12) - %j - ( 001 366) + %j - день года (от 001 до 366) - %k - 24- ( 0 23) + %k - часы по 24-часовым часам без ведущего нуля (от 0 до 23) - %l - 12- ( 1 12) + %l - часы по 12-часовым часам без ведущего нуля (от 1 до 12) - %m - ( 01 12) + %m - номер месяца (от 01 до 12) - %M - + %M - минуты - %n - + %n - символ новой строки - %p - `am' `pm', . + %p - `am' или `pm', в зависимости от заданного формата времени и текущей локали. %r - time in a.m. and p.m. notation @@ -187,70 +187,70 @@ Monday, February 5, 2001 %R - time in 24 hour notation - %S - + %S - секунды - %t - + %t - символ табуляции - %T - %H:%M:%S + %T - время в формате %H:%M:%S - %u - [1,7], 1- - + %u - номер дня недели [1,7], где 1-ый день - понедельник - %U - , + %U - номер недели в году, считая первое воскресенья года первым днем первой недели - %V - ( ISO 8601:1988) 01 53, - , 4 . - . + %V - номер недели в году (по ISO 8601:1988) в диапазоне от 01 до 53, где первая неделя + та, у которой хотя бы 4 дня находятся в данном году. Понедельник считается + первым днем недели. - %w - , 0 - + %w - номер дня недели, где 0 - воскресенье - %W - , . + %W - номер недели в году, считаю первый понедельник первым днем первой недели. - %x - locale + %x - предпочтительное представление даты для текущих настроек locale без времени - %X - locale + %X - предпочтительное представление времени для текущих настроек locale без даты - %y - ( 00 99) + %y - год в виде десятичного числа без века (от 00 до 99) - %Y - + %Y - год в виде десятичного числа включая век - %Z - + %Z - часовой пояс или имя или сокращение - %% - `%' + %% - буквальный символ `%' - + Замечание для программистов - date_format + date_format является обычной оберткой для функции PHP strftime(). - - - strftime() , - PHP. - . + Вы можете располагать больш или меньшим количеством + доступных конверсионных указателей в зависимости от функции + strftime() той системы, + где был скомпилирован PHP. Обратитесь к руководству вашей системы для + получения полного списка доступных указателей. - . + См. также $smarty.now, - php strftime(), + функция php strftime(), {html_select_date} - - . + и + даты. diff --git a/docs/ru/designers/language-modifiers/language-modifier-default.xml b/docs/ru/designers/language-modifiers/language-modifier-default.xml index 0cee020e..6bfd39c1 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-default.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-default.xml @@ -1,20 +1,20 @@ - + default - . - , - . + Используется для установки значения по умолчанию для переменной. + Если переменная не установлена или является пустой строкой, указанное + значение по умолчанию будет подставлено вместо неё. - error_reporting E_ALL, - . - . + Если директива error_reporting установлена в E_ALL, необъявленные переменные + всегда будут отображать ошибку в шаблоне. Эта функция полезна для замены + пустых значений или строк нулевой длинны. @@ -28,20 +28,20 @@ - - - - - + Позиция параметра + Тип + Обязателен + По умолчанию + Описание 1 string - + Нет empty - , . + Это значение по умолчанию для вывода, если переменная пуста. @@ -60,7 +60,7 @@ $smarty->assign('email',''); ]]> - : + Шаблон: assign('email',''); ]]> - : + Результат обработки: - . - - - . + См. также + Обработка переменных по умолчанию + и + Обработка пустых переменных. diff --git a/docs/ru/designers/language-modifiers/language-modifier-escape.xml b/docs/ru/designers/language-modifiers/language-modifier-escape.xml index df01c3ed..ae8fe0fc 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-escape.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-escape.xml @@ -1,13 +1,13 @@ - + escape - / - HTML, URL', , hex-, - hex-, javascript . - HTML. + Используется для кодирования / экранирования спецсимволов по алгоритмам + экранирования HTML, URL'ов, одиночных кавычек, hex-экранирования, + hex-сущностей, javascript и экранирования почтовых адресов. + По умолчанию активирован режим экранирования HTML. @@ -20,31 +20,31 @@ - - - + Позиция параметра + Тип + Обязателен Possible Values - - + По умолчанию + Описание 1 string - + Нет html,htmlall,url,urlpathinfo,quotes,hex,hexentity,javascript,mail html - + формат экранирования 2 string - - ISO-8859-1, UTF-8, ... , htmlentities() + Нет + ISO-8859-1, UTF-8, ... любая кодировка, поддерживаемая функцией htmlentities() ISO-8859-1 - , htmlentities() .. + Кодировка для экранирования, передаваемая в htmlentities() и т.д. @@ -64,23 +64,23 @@ $smarty->assign('EmailAddress','smarty@example.com'); ]]> - : + Шаблон: *} -{$articleTitle|escape:'htmlall'} {* HTML- *} +{$articleTitle|escape:'html'} {* экранирует & " ' < > *} +{$articleTitle|escape:'htmlall'} {* экранирует ВСЕ HTML-сущности *} {$articleTitle|escape:'url'} {$articleTitle|escape:'quotes'} {$EmailAddress|escape:"hexentity"} -{$EmailAddress|escape:'mail'} {* e-mail *} +{$EmailAddress|escape:'mail'} {* конвертирует e-mail в текст *} {'mail@example.com'|escape:'mail'} ]]> - : + Результат обработки: - , PHP - , + Обратите внимание, что родные функции PHP могут использоваться в качестве + модификаторов, так что следующие приёмы сработают click here ]]> - e-mail', . + Это очень полезно для e-mail'ов, но см. также {mailto} @@ -118,11 +118,11 @@ mail [AT] example [DOT] com - . - Smarty, + См. также + Предотвращение обработки Smarty, {mailto} - - E-mail . + и + Сокрытие E-mail адреса. diff --git a/docs/ru/designers/language-modifiers/language-modifier-indent.xml b/docs/ru/designers/language-modifiers/language-modifier-indent.xml index c3f02d10..8fa1ae23 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-indent.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-indent.xml @@ -1,13 +1,13 @@ - + indent - , - 4 . - - , . - ( "\t" ). + Создает отступы в начале каждой строки, по умолчанию - 4 пробела. + В качестве необязательных аргументов можно указать количество повторений + символа и сам символ, который будет использоваться для создания отступов. + (используйте "\t" для табуляции). @@ -19,27 +19,27 @@ - - - - - + Позиция параметра + Тип + Обязателен + По умолчанию + Описание 1 integer - + Нет 4 - . + Определяет количество повторений символа при создании отступа. 2 string - - ( ) - , . + Нет + (один пробел) + Символ, который используется при создании отступа. @@ -62,7 +62,7 @@ Statistics show that teen pregnancy drops off significantly after 25.' ]]> - : + Шаблон: - : + Результат обработки: - . + См. также strip, wordwrap - + и spacify. diff --git a/docs/ru/designers/language-modifiers/language-modifier-lower.xml b/docs/ru/designers/language-modifiers/language-modifier-lower.xml index 73feea22..757bae00 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-lower.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-lower.xml @@ -1,10 +1,10 @@ - + lower - . PHP + Переводит строку в нижний регистр. Является эквивалентом функции PHP strtolower(). @@ -19,7 +19,7 @@ $smarty->assign('articleTitle', 'Two Convicts Evade Noose, Jury Hung.'); ]]> - : + Шаблон: assign('articleTitle', 'Two Convicts Evade Noose, Jury Hung.'); ]]> - : + Результат обработки: - . + См. также upper - + и capitalize. diff --git a/docs/ru/designers/language-modifiers/language-modifier-nl2br.xml b/docs/ru/designers/language-modifiers/language-modifier-nl2br.xml index 9bc41125..3bb402de 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-nl2br.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-nl2br.xml @@ -1,11 +1,11 @@ - + nl2br - <br /> . - PHP + Превращает каждый перевод строки в тэг <br /> в указанной переменной. + Это эквивалент функции PHP nl2br(). @@ -22,7 +22,7 @@ $smarty->assign('articleTitle', ]]> - : + Шаблон: assign('articleTitle', ]]> - : + Результат обработки: today, dark tonight - . + См. также word_wrap, count_paragraphs - + и count_sentences. diff --git a/docs/ru/designers/language-modifiers/language-modifier-regex-replace.xml b/docs/ru/designers/language-modifiers/language-modifier-regex-replace.xml index b090e00d..dc831303 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-regex-replace.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-regex-replace.xml @@ -1,11 +1,11 @@ - + regex_replace - . - PHP preg_replace(). @@ -18,27 +18,27 @@ - - - - - + Позиция параметра + Тип + Обязателен + По умолчанию + Описание 1 string - + Да n/a - . + Регулярное выражение для проведения замены. 2 string - + Да n/a - , . + Строка, на которую будет проведена замена. @@ -56,18 +56,18 @@ $smarty->assign('articleTitle', "Infertility unlikely to\nbe passed on, experts ]]> - : + Шаблон: - : + Результат обработки: - . + См. также replace - + и escape. diff --git a/docs/ru/designers/language-modifiers/language-modifier-replace.xml b/docs/ru/designers/language-modifiers/language-modifier-replace.xml index 240c5754..b8b980d9 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-replace.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-replace.xml @@ -1,10 +1,10 @@ - + replace - . PHP + Простой поиск и замена в переменной. Это эквивалент функции PHP str_replace(). @@ -17,27 +17,27 @@ - - - - - + Позиция параметра + Тип + Обязателен + По умолчанию + Описание 1 string - + Да n/a - , . + Строка текста, которую следует заменить. 2 string Yes n/a - , . + Строка текста, на которую следует заменить. @@ -55,7 +55,7 @@ $smarty->assign('articleTitle', "Child's Stool Great for Use in Garden."); ]]> - : + Шаблон: assign('articleTitle', "Child's Stool Great for Use in Garden."); ]]> - : + Результат обработки: - . + См. также regex_replace - + и escape. diff --git a/docs/ru/designers/language-modifiers/language-modifier-spacify.xml b/docs/ru/designers/language-modifiers/language-modifier-spacify.xml index 86766654..27a84cae 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-spacify.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-spacify.xml @@ -1,4 +1,4 @@ - + @@ -16,20 +16,20 @@ - - - - - + Позиция параметра + Тип + Обязателен + По умолчанию + Описание 1 string - - - . + Нет + один пробел + Это вставляется между каждым символом переменной. @@ -47,7 +47,7 @@ $smarty->assign('articleTitle', 'Something Went Wrong in Jet Crash, Experts Say. ]]> - : + Шаблон: assign('articleTitle', 'Something Went Wrong in Jet Crash, Experts Say. ]]> - : + Результат: - . + См. также wordwrap - + и nl2br. diff --git a/docs/ru/designers/language-modifiers/language-modifier-string-format.xml b/docs/ru/designers/language-modifiers/language-modifier-string-format.xml index 9e4f0237..aaa6d28e 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-string-format.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-string-format.xml @@ -1,13 +1,13 @@ - + string_format - , - .. - - sprintf() . + Этот модификатор используется для форматирования строк, таких как десятичные + числа и т.д. + Используйте синтаксис от + sprintf() для форматирования. @@ -19,20 +19,20 @@ - - - - - + Позиция параметра + Тип + Обязателен + По умолчанию + Описание 1 string - + Да n/a - (sprintf). + Формат для использования (sprintf). @@ -50,7 +50,7 @@ $smarty->assign('number', 23.5787446); ]]> - : + Шаблон: assign('number', 23.5787446); - . + См. также date_format. diff --git a/docs/ru/designers/language-modifiers/language-modifier-strip-tags.xml b/docs/ru/designers/language-modifiers/language-modifier-strip-tags.xml index b5cc2c3f..cf9492d9 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-strip-tags.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-strip-tags.xml @@ -1,11 +1,11 @@ - + strip_tags - . , , < >, - . + Удаляет тэги разметки. Грубо говоря, всё, что находится между < и >, + включительно. @@ -17,20 +17,20 @@ - - - - - + Позиция параметра + Тип + Обязателен + По умолчанию + Описание 1 bool - + Нет true - , ' ' '' + Определяет, будут тэги заменяться на ' ' или на '' @@ -51,17 +51,17 @@ Kidney from Dad she Hasn't Seen in years." ]]> - : + Шаблон: - : + Результат обработки: + strip - , - ( ). + Заменяет все повторяющиеся пробелы, переводы строк и символы табуляции + одним пробелом (или другой указанной строкой). - + Обратите внимание - , - {strip}. @@ -27,7 +27,7 @@ $smarty->assign('articleTitle', "Grandmother of\neight makes\t hole in one.") ]]> - : + Шаблон: assign('articleTitle', "Grandmother of\neight makes\t hole in one.") ]]> - : + Результат обработки: - . + См. также {strip} - + и truncate. diff --git a/docs/ru/designers/language-modifiers/language-modifier-truncate.xml b/docs/ru/designers/language-modifiers/language-modifier-truncate.xml index 36dde3dd..14d640c0 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-truncate.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-truncate.xml @@ -1,16 +1,16 @@ - + truncate - , - 80 . - , - , . - . - , truncate . - , - true. + Обрезает переменную до определенной длинны, по умолчанию - 80 символов. + В качестве необязательного второго параметра, вы можете передать строку + текста, которая будет отображатся в конце обрезанной переменной. + Символы этой строки не включаются в общую длинну обрезаемой строки. + По умолчанию, truncate попытается обрезать строку в промежутке между словами. + Если вы хотите обрезать строку строго на указаной длинне, передайте в третий + необязательный параметр значение true. @@ -22,45 +22,45 @@ - - - - - + Позиция параметра + Тип + Обязателен + По умолчанию + Описание 1 integer - + Нет 80 - . + Определяет максимальную длинну обрезаемой строки. 2 string - + Нет ... - , . Ÿ - . + Текстовая строка, которая заменяет обрезанный текст. Её длинна + НЕ включена в максимальную длинну обрезаемой строки. 3 boolean - + Нет false - , (false) - (true). + Определяет, обрезать ли строку в промежутке между словами (false) + или строго на указаной длинне (true). 4 boolean - + Нет false - , (false) - (true). , - , . + Определяет, нужно ли обрезать строку в конце (false) или в + середине строки (true). Обратите внимание, что при включении этой + опции, промежутки между словами игнорируются. @@ -78,7 +78,7 @@ $smarty->assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Che ]]> - : + Шаблон: assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Che ]]> - : + Результат обработки: + upper - . PHP + Переводит строку в верхний регистр. Является эквивалентом функции PHP strtoupper(). @@ -19,7 +19,7 @@ $smarty->assign('articleTitle', "If Strike isn't Settled Quickly it may Last a W ]]> - : + Шаблон: assign('articleTitle', "If Strike isn't Settled Quickly it may Last a W ]]> - : + Результат обработки: - . + См. также lower - + и capitalize. diff --git a/docs/ru/designers/language-modifiers/language-modifier-wordwrap.xml b/docs/ru/designers/language-modifiers/language-modifier-wordwrap.xml index 6fae1b5d..6fdea831 100644 --- a/docs/ru/designers/language-modifiers/language-modifier-wordwrap.xml +++ b/docs/ru/designers/language-modifiers/language-modifier-wordwrap.xml @@ -1,17 +1,17 @@ - + wordwrap - wordwrap - , - 80 . - , - ( - \n). - , wordwrap - . , - , true. - PHP wordwrap вставляет переводы строк на определенной ширине + колонки, по умолчанию - 80 символов. В качестве необязательного второго + аргумента вы можете передать текстовую строку, используемую в качестве + перевода строки (по умолчанию - символ перевода строки \n). + По умолчанию, wordwrap попытается вставить перевод строки в промежуток между + словами. Если вы хотите, чтобы строка обрывалась строго на определенной + длинне, передайте в третий необязательный параметр значение true. + Это эквивалент функции PHP wordwrap(). @@ -24,36 +24,36 @@ - - - - - + Позиция параметра + Тип + Обязателен + По умолчанию + Описание 1 integer - + Нет 80 - , - . + Определяет количество колонок, после которых текст будет переведен + на новую строку. 2 string - + Нет \n - . + Эта строка используется в качестве символа перевода строки. 3 boolean - + Нет false - , - (false), (true). + Определяет, переводить ли строку в промежутках между словами + (false), или строго на заданой длинне строки (true). @@ -73,7 +73,7 @@ $smarty->assign('articleTitle', ]]> - : + Шаблон: assign('articleTitle', ]]> - : + Результат обработки: - . nl2br - + См. также nl2br + и {textformat}. diff --git a/docs/ru/designers/language-variables.xml b/docs/ru/designers/language-variables.xml index 33cb16c9..3d2e24c2 100644 --- a/docs/ru/designers/language-variables.xml +++ b/docs/ru/designers/language-variables.xml @@ -1,39 +1,43 @@ - + - + - + Переменные - Smarty . - , , . + Smarty имеет несколько различных типов переменных. Он зависит от + символа, с которого начинается, или в какой заключена переменная. - Variables in Smarty can be either displayed directly or used as arguments - for function - attributes and - modifiers, inside conditional expressions, - etc. To print a variable, simply enclose it in the - delimiters so that it - is the only thing contained between them. Examples: - - - Smarty - - - , - .. - - . - : - + Переменные в Smarty могут быть отображены или использованы как + функции, + аргументы, + модификаторы, + внутри выражений условных операторов и т.д. Для + вывода значения переменной необходимо указать имя переменной + между разделителями. + + + Пример использования переменных + {$product.description} + {$Contacts[row].Phone} ]]> - + + + + Полезный совет + + При помощи + отладочной консоли + можно легко просмотреть значения переменных Smarty. + + &designers.language-variables.language-assigned-variables; diff --git a/docs/ru/designers/language-variables/language-assigned-variables.xml b/docs/ru/designers/language-variables/language-assigned-variables.xml index afbec825..1d82f145 100644 --- a/docs/ru/designers/language-variables/language-assigned-variables.xml +++ b/docs/ru/designers/language-variables/language-assigned-variables.xml @@ -1,19 +1,19 @@ - + - , PHP + Переменные, назначенные из PHP - , - PHP , - ($). - , + К переменным, которые были + назначены из PHP можно обратиться, + указав перед их именем знак доллара ($). + Переменные, назначенные внутри шаблона при помощи функции {assign} - . + работают таким же образом. - - PHP- + Назначенные переменные + PHP-скрипт display('index.tpl'); ]]> - index.tpl: + Содержимое index.tpl: -{* , *} +{* это не сработает, потому что переменные чувствительны к регистру *} This weeks meeting is in {$meetingplace}. -{* - *} +{* а это - сработает *} This weeks meeting is in {$meetingPlace}. ]]> - : + Результат обработки: - + Ассоциативные массивы - , - PHP, '.' (). + Вы можете также обращаться к ассоциативным массивам, которые + назначены из PHP, указав ключ после символа '.' (точка). - + Обращение к ассоциативному массиву display('index.tpl'); ]]> - index.tpl: + Содержимое index.tpl: display('index.tpl'); ]]> - : + Результат обработки: - + Индексы массивов - , - PHP. + Вы можете обращаться к массивам по их индексам примерно так же, + как и в самом PHP. - + Обращение к массиву по индексу display('index.tpl'); ]]> - index.tpl: + Содержимое index.tpl: display('index.tpl'); ]]> - : + Результат обработки: - + Объекты - , - PHP, , + К свойствам объектов, + назначенных из PHP, можно обратиться, указав имя свойства после символов '->'. - + Обращение к свойствам объекта name}
@@ -163,7 +163,7 @@ email: {$person->email}
]]>
- : + Результат обработки: + - + Переменные файлов конфигурации - , - , - # + Для использования переменных, полученных из + конфигурационных файлов, + необходимо заключить их имя между знаками # или через переменную $smarty.config. - - . + Для употребления их в качестве внедренныых переменных можно + использовать только второй способ. - + Переменные из файлов конфигурации foo.conf: @@ -55,7 +55,7 @@ rowBgColor = "#cccccc" - index.tpl: ( ) + index.tpl: (альтернативный синтаксис) @@ -80,7 +80,7 @@ rowBgColor = "#cccccc" - : + результат выполнения обоих примеров: @@ -103,15 +103,15 @@ rowBgColor = "#cccccc"
- , - . - (config_load). + Переменные из файлов конфигурации не могут быть использованы, + пока они не будут загружены. Эта процедура описана далее + в данном руководстве (config_load). - . - - - + См. также + Переменные + и + Зарезервированная переменная $smarty
diff --git a/docs/ru/designers/language-variables/language-variables-smarty.xml b/docs/ru/designers/language-variables/language-variables-smarty.xml index d91b76b2..a27e3a81 100644 --- a/docs/ru/designers/language-variables/language-variables-smarty.xml +++ b/docs/ru/designers/language-variables/language-variables-smarty.xml @@ -1,54 +1,54 @@ - + - {$smarty} + Зарезервированная переменная {$smarty} - {$smarty} - . - . + Зарезервированная переменная {$smarty} может быть использована для получения + доступа к нескольким переменным окружения и запроса. Далее следует их полный + список. - + Переменные запроса - , - $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV $_SESSION - (. $request_vars_order - К переменным запроса, + таким как $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV и $_SESSION + (см. $request_vars_order + и $request_use_auto_globals - ), , : + ), можно получить доступ, как показано в следующем примере: - + Отображение переменных запроса - , {$SCRIPT_NAME} - , + По историческим соображениям, доступ к переменной {$SCRIPT_NAME} можно + получить непосредственно, хотя предпочтительным способом является обращение {$smarty.server.SCRIPT_NAME}. @@ -62,21 +62,21 @@ {$smarty.now} - - {$smarty.now}. - , - (1 1970 ). Ÿ + Текущая временная метка + содержится в переменной {$smarty.now}. Это значение отражает количество + секунд, которые прошли с момента наступления так называемой Эпохи + (1 января 1970 года). Её можно прямо передавать модификатору date_format - /. , - time() ; , , - $smarty.now , - . + для отображения текущей даты/времени. Обратите внимание, + что time() вызывается при каджом обращении; к примеру, скрипт, работающий + три секунды и вызывающий $smarty.now в начале и в конце работы, покажет + разницу в три секунды. - {$smarty.now} + Использование {$smarty.now} @@ -85,20 +85,20 @@ {$smarty.const} - PHP . . Smarty + Вы можете обращаться к константам PHP напрямую. См. также Константы Smarty - {$smarty.const} + Использование {$smarty.const} для доступа к константам @@ -108,40 +108,40 @@ define('_MY_CONST_VAL','CHERRIES'); {$smarty.capture} - , {capture}..{/capture}, - {$smarty.capture}. . + доступен при помощи переменной {$smarty.capture}. См. раздел о {capture} - . + для получения примера. {$smarty.config} - {$smarty} . - {$smarty.config.foo} {#foo#}. . + Переменная {$smarty} может использоваться для обращения к загруженным конфигурационным переменным. + {$smarty.config.foo} является синонимом {#foo#}. См. раздел о {config_load} - . + для получения примера. {$smarty.section}, {$smarty.foreach} - {$smarty} - {section} + Переменную {$smarty} можно использовать для обращения к свойствам циклов + {section} и {foreach}. - .first, .index .. + Это очень полезные значения вроде .first, .index и т.д. {$smarty.template} - . - container.tpl banner.tpl, + Возвращает имя текущего обрабатываемого шаблона. Этот пример показывает + container.tpl и включенные в него banner.tpl, оба имеют вызов {$smarty.template} @@ -151,7 +151,7 @@ define('_MY_CONST_VAL','CHERRIES'); ]]> - : + результат обработки шаблона: {$smarty.version} - Smarty, . + Возвращает версию Smarty, с которой был скомпилирован шаблон. {$smarty.ldelim}, {$smarty.rdelim} - - - , {ldelim},{rdelim}. + Эти переменные используются для отображения левого и правого ограничителей - + так же, как и {ldelim},{rdelim}. - . - - - + См. также + Переменные + и + Конфигурационные переменные diff --git a/docs/ru/getting-started.xml b/docs/ru/getting-started.xml index 6f6b3aa5..a1adbeb5 100644 --- a/docs/ru/getting-started.xml +++ b/docs/ru/getting-started.xml @@ -1,207 +1,207 @@ - + - + - + Приступая к работе - Smarty? + Что такое Smarty? - Smarty - PHP. - , , - - . , - - . + Smarty - это компилирующий обработчик шаблонов для PHP. + Говоря более четко, он предоставляет один из инструментов, которые + позволяет добиться отделения прикладной логики и данных от + представления. Это очень удобно в ситуациях, когда программист и + верстальщик шаблона - различные люди. - , , , - . + Например, скажем, вы создаете страницу, которая показывает газетную + статью. - , - , - , . - - Smarty . + Название статьи, автор и сама статья - элементы, которые не + содержат никакой информации о том, как они будут представлены. Их + передают + в Smarty из приложения. - - HTML - , - - , - HTML, , , - , SVG ..). + Затем верстальщик шаблона редактирует + шаблоны и использует комбинацию тэгов HTML и + тэгов шаблона, + чтобы отформатировать представление этих + переменных, + содержащих элементы типа таблиц HTML, фоновых цветов, размеров шрифта, + стилей, SVG и т.д.). - , - . - . - . + Однажды программист захочет изменить способ хранения статьи, то есть + внести изменения в логику приложения. + Это изменение не вызовет изменений в шаблонах. Содержание будет все еще + передаваться в шаблон таким же самым способом. - , - , . + Аналогично, если верстальщик захочет полностью перепроектировать + шаблоны, это не потребует никаких изменений в прикладной логике. - , - , - . + Таким образом, программист может вносить изменения в прикладную логику + без необходимости изменения шаблонов, а дизайнер шаблонов может + вносить изменения в шаблоны без вреда для прикладной логики. - Smarty - - . + Одно из предназначений Smarty - это отделение логики приложения от + представления. - , , - , - . , - - , - - , - - , - - - .. - - . + Конечно же, шаблоны могут содержать в себе логику, но + лишь при условии, что эта логика необходима для правильного представления + данных. Такие задачи, как + подключение + других шаблонов, + чередующаяся + окраска строчек в таблице, + приведение букв к верхнему + регистру, + циклический проход + по массиву для его + отображения и т.д. - всё это + примеры логики представления. - , , Smarty - . - Smarty , - . + Тем не менее, не следует полагать, что Smarty заставляет вас разделять + прикладную логику и логику представления. + Smarty не видит разницы между этими вещами, так что переносить + прикладную логику в шаблоны вы можете на свой страх и риск. - , - , - . + Если же вы считаете, что в шаблоне вообще + не должно быть логики, вы можете ограничиться использованием чистого + текста и переменных. - Smarty - . - , Smarty PHP- . - . - . - - PHP , + Одна из уникальных возможностей Smarty - компилирование шаблонов. Это + означает, что Smarty читает файлы шаблонов и создает PHP-код на их основе. + Код создаётся один раз и потом только выполняется. Поэтому нет + необходимости в медленной обработке файл шаблона для каждого запроса. + Каждый шаблон может пользоваться всеми преимуществами таких компиляторов + PHP и кэшируюших решений, как eAccelerator, ionCube, mmCache, Zend Accelerator - . + и прочих. - Smarty: + Некоторые особенности Smarty: - . + Он очень быстр. - , PHP . + Он эффективен, так как обработчик PHP делает за него грязную работу. - , . + Никакой лишней обработки шаблонов, они компилируются только один раз. - - , . + Перекомпилируются + только те шаблоны, которые изменились. - - , - . + Вы можете легко создавать собственные пользовательские функции и + модификаторы переменных, + что делает язык шаблонов чрезвычайно расширяемым. - - {} - , + Настраиваемые + {разделители} тэгов + шаблона, то есть вы можете использовать {$foo}, {{$foo}}, - <!--{$foo}--> .. + <!--{$foo}--> и т.д. - + Конструкции {if}..{elseif}..{else}..{/if} - PHP, - {if...} , - . + передаются обработчику PHP, так что синтаксис выражения + {if...} может быть настолько простым или сложным, + насколько вам угодно. - - , - .. + Допустимо неограниченное вложение + секций, + условий и т.д. - - PHP- - , - ( ), - . + Существует возможность + включения PHP-кода + прямо в ваш шаблон, однако обычно в этом нет необходимости + (и это не рекоммендуется), так как движок весьма гибок и + расширяем. - . + Встроенный механизм кэширования. - - . + Произвольные источники + шаблонов. - - . + Пользовательские функции + кэширования. - . + Компонентная архитектура. @@ -212,45 +212,45 @@ - + Установка - + Требования - Smarty - PHP - 4.0.6 . + Для установки и работы Smarty необходим веб-сервер с установленным PHP + версии 4.0.6 или выше. - + Базовая установка - Smarty, + Скопируйте файлы Smarty, которые находятся в субдиректории /libs/ - . PHP- . - - Smarty . + дистрибутива. Редактировать эти PHP-файлы НЕ СЛЕДУЕТ. Они должны + использоваться всеми приложениями и изменяться только при обновлении + Smarty до новой версии. - Smarty + В следующих примерах архив с исходным кодом Smarty был распакован в /usr/local/lib/Smarty-v.e.r/ - *nix + для машин под *nix - + и c:\webroot\libs\Smarty-v.e.r\ - Windows. + для машин под Windows. - Smarty + Необходимые файлы библиотеки Smarty - Smarty PHP + Smarty использует константу PHP - SMARTY_DIR, - - libs/ Smarty. - , - Smarty.class.php, - + SMARTY_DIR, которая указывает + полный путь к директории + libs/ из Smarty. + Обычно, если ваше приложение может + найти файл Smarty.class.php, то нет необходимости + устанавливать SMARTY_DIR - - Smarty . - , - Smarty.class.php - include_path - , - SMARTY_DIR . - SMARTY_DIR - . + - Smarty сам во всём разберётся. + Однако, если + Smarty.class.php не может + быть найден в вашем include_path или вы не указывали абсолютный путь к + нему в приложении, то вы должны определить + SMARTY_DIR вручную. + SMARTY_DIR должна включать + завершающий слэш. - Smarty PHP-: + Вот как следует создавать экземпляр объекта Smarty в ваших PHP-скриптах: @@ -300,24 +300,24 @@ $smarty = new Smarty(); - . , - Smarty.class.php , - : + Попробуйте выполнить вышеуказанный код. Если Вы получаете ошибку о том, + что Smarty.class.php не найден, попробуйте следующие + варианты действий: - SMARTY_DIR + Ручная установка константы SMARTY_DIR - + Передача абсолютного пути к файлам библиотеки - <filename>php.ini</filename> + Добавление библиотеки в путь в файле <filename>php.ini</filename> - include_path PHP- - <literal><ulink url="&url.e-accel;">ini_set()</ulink></literal> + Дописывание include_path из PHP-скрипта используя + <literal><ulink url="&url.php-manual;ini-set">ini_set()</ulink></literal> - , , - Smarty . + Теперь, когда все файлы находятся на своих местах, пришло время + установки директорий Smarty в вашем приложении. - Smarty , + Smarty нужно четыре директории, которые по умолчанию называются templates/, templates_c/, - configs/ + configs/ и cache/ - Smarty: + Каждая из них определяется свойствами класса Smarty: $template_dir, $compile_dir, - $config_dir + $config_dir и - $cache_dir . - - , Smarty. + $cache_dir соответственно. + Настойчиво рекомендуется использовать разные наборы + этих директорий для каждого приложения, использующего Smarty. - Smarty - . , - . - , guestbook/ - . + В нашем примере мы будем устанавливать Smarty для некоторой гостевой + книги. Приложение было выбрано только для того, чтобы использовать его + имя в именах директорий. Вы можете использовать те же настройки с любым + другим приложением, просто меняя guestbook/ + на имя вашего приложения. - + Вот как выглядит файловая структура - , - -. , - /web/www.example.com/guestbook/htdocs/. - Smarty Smarty - -. , - - , . + Доступ к директориям Smarty происходит только из библиотеки Smarty и + никогда не происходит через веб-браузер. Поэтому, в целях безопасности + рекоммендуется располагать эти директории за пределами + корневой директории документов сервера, хотя это и не обязательно. - - - , -. - index.php - /htdocs/. + Вам понадобиться как минимум один файл внутри корневой директории + документов - это скрипт, вызываемый веб-браузером. Мы назовем наш скрипт + index.php и положим его в поддиректорию внутри + корневой директории документов /htdocs/. - Smarty - ( Windows ) + Smarty понадобятся права на запись + (пользователей Windows это не касается) в директории - $compile_dir + $compile_dir и $cache_dir - (templates_c/ + (templates_c/ и cache/), - , - . + так что убедитесь, что у веб-сервера есть эти права. - nobody - nobody. OS X, - - www - www. - Apache, - httpd.conf. + Обычно это пользователь nobody и группа + nobody. Для пользователей OS X, пользователь по умолчанию + - это www и группа - www. + Если вы используете Apache, вы можете узнать используемые + имя пользователя и группу из файла httpd.conf. - + Установка прав доступа к файлам и директориям - + Примечание - chmod 770 - - - nobody nobody - . - ( - ), + chmod 770 даёт достаточно жесткую защиту - + разрешает только пользователю + nobody и группе nobody доступ + на чтение и запись в эти директории. + Если вы хотите открыть доступ на чтение для всех (обычно для собственного + удобства при просмотре этих файлов), вы можете использовать значение 775. - index.tpl, - Smarty. - + Нам необходимо создать файл index.tpl, + которы будет загружаться Smarty. + Он будет расположен в $template_dir. @@ -522,28 +522,28 @@ chmod 770 /web/www.example.com/smarty/guestbook/cache/ - + Техническое замечание - {* Smarty *} - - . - , - . - . , - . + {* Smarty *} - это + комментарий шаблона. + Он не является обязательным, но его размещение в начале каждого шаблона + является хорошим тоном. Это позволяет проще различать файлы независимо + от их расширения. К примеру, текстовые редакторы могут узнавать этот + файл и включать особенную подсветку синтаксиса. - index.php. - Smarty, - - + Теперь давайте отредактируем index.php. + Мы создадим экземпляр Smarty, + присвоим значение переменной шаблона и + отобразим файл index.tpl. @@ -562,9 +562,9 @@ $smarty->compile_dir = '/web/www.example.com/guestbook/templates_c/'; $smarty->config_dir = '/web/www.example.com/guestbook/configs/'; $smarty->cache_dir = '/web/www.example.com/guestbook/cache/'; -$smarty->assign('name', ''); +$smarty->assign('name', 'Катруська'); -//** +//** раскомментируйте следующую строку для отображения отладочной консоли //$smarty->debugging = true; $smarty->display('index.tpl'); @@ -574,49 +574,49 @@ $smarty->display('index.tpl'); - + Примечание - - Smarty. /web/www.example.com/guestbook/ - include_path PHP, . - , ( ) - . , Smarty - , . + находится в include_path вашего PHP, то эти настройки не обязательны. + Тем не менее, более эффективным и (из опыта) менее глюкоопасным является + использование абсолютных путей. Это придаст уверенность в том, что Smarty + получает файлы из тех директорий, из которых вы хотите. - index.php - -. - ", ! Smarty!" + Теперь перейдите к файлу index.php при помощи вашего + веб-браузера. Вы должны увидеть надпись + "Привет, Катруська! Добро пожаловать в Smarty!" - Smarty! + Вы закончили базовую установку Smarty! - + Расширенная установка - ; , - . + Эта глава является продолжением базовой установки; пожалуйста, + сперва прочитайте её. - Smarty - - Smarty. , - , , - .., . + Немного более гибким способом установки Smarty является + наследование класса + и инициализация вашего собственного окружения Smarty. Таким образом, вместо + того, чтобы постоянно устанавливать пути директорий, присваивать одни и те + же переменные и т.д., мы можем всё это сделать в одном месте. - /php/includes/guestbook/, - - , setup.php. - , /php/includes - include_path. , - , . + Давайте создадим новую директорию /php/includes/guestbook/,а в ней - + новый файл, который назовем setup.php. По условиям + нашего примера, /php/includes + находится в include_path. Убедитесь, чтобы + то же самое было и у вас, или используетй абсолютные пути. @@ -625,12 +625,12 @@ $smarty->display('index.tpl'); Smarty(); @@ -659,8 +659,8 @@ class Smarty_GuestBook extends Smarty { - index.php, - setup.php: + Теперь давайте изменим index.php, + чтобы он использовал setup.php: @@ -682,9 +682,9 @@ $smarty->display('index.tpl'); - , Smarty - - Smarty_GuestBook, - . + Теперь вы видите, что создать экземпляр Smarty довольно просто - нужно лишь + использовать Smarty_GuestBook, который автоматически + инициализирует все настройки для нашего приложения. diff --git a/docs/ru/language-defs.ent b/docs/ru/language-defs.ent index 70f69a5e..ac01769c 100644 --- a/docs/ru/language-defs.ent +++ b/docs/ru/language-defs.ent @@ -1,8 +1,8 @@ - + - - - - + + + + diff --git a/docs/ru/language-snippets.ent b/docs/ru/language-snippets.ent index 7816d05b..204c7131 100644 --- a/docs/ru/language-snippets.ent +++ b/docs/ru/language-snippets.ent @@ -1,59 +1,70 @@ - + - + - + Техническое замечание - merge , - , - . - PHP + Пераметр merge учитывает ключи массива, + поэтому если вы объединяете массивы с числовыми индексами, то они могут + наложиться друг на друга или привести к непоследовательному порядку ключей. + Результат отличается от действия функции PHP array_merge(), - . + которая заново нумерует элементы в массиве с числовоми ключами. + +'> + + + Техническое замечание + + Если значение параметра function указано в виде + array(&$object, $method), только один экземпляр + данного класса с данным методом $method может быть зарегистрирован. + В таком случае, в силу вступает последний зарегистрированный параметр + function. '> - + В качестве необязательного третьего аргумента вы можете передать $compile_id. - , - , - . - - $compile_id , - + Это полезно в случае, если вы хотите + скомпилировать несколько различных версий одного шаблона, например + несколько версий одного шаблона на разных языках. + Другое применение + $compile_id можно найти, + если вы используете несколько $template_dir, - + но только одну $compile_dir. - compile_id + Устанавливайте свой compile_id для каждой $template_dir, - . - + иначе шаблоны с одинаковыми именами будут сохраняться поверх друг друга. + Также вы можете один раз указать $compile_id, - , . + вместо того, чтобы каждый раз передавать его при вызове этой функции. '> - Callback- PHP : + Callback-функция PHP может быть: - , . + Либо строкой, содержащей имя функции. - array(&$object, $method), - &$object - , - $method - , . + Либо массивом вида array(&$object, $method), + где &$object - ссылка на объек, а + $method - строка, содержащая имя метода. - array($class, $method), - $class - , , - $method - , . + Либо массивом вида array($class, $method), + где $class - строка, содержащая имя класса, а + $method - строка, содержащая имя метода этого класса. diff --git a/docs/ru/livedocs.ent b/docs/ru/livedocs.ent index 9528c597..5a46aaf1 100644 --- a/docs/ru/livedocs.ent +++ b/docs/ru/livedocs.ent @@ -1,8 +1,8 @@ - + -'> -'> - - +'> +'> + + diff --git a/docs/ru/make_chm_index.html b/docs/ru/make_chm_index.html index e45f7c78..78622811 100644 --- a/docs/ru/make_chm_index.html +++ b/docs/ru/make_chm_index.html @@ -2,29 +2,29 @@ - Smarty - + Руководство Smarty +

-

Smarty

+

Руководство Smarty

Monte Ohrt
Andrei Zmievski
Sergei Suslenkov
George Miroshnikov
-

: [GENTIME]
- +

Этот файл был сгенерирован: [GENTIME]
+Свежая версия этого руководства доступна по адресу http://smarty.php.net/download-docs.php.


diff --git a/docs/ru/preface.xml b/docs/ru/preface.xml index 19a6cb3f..1d5f0a00 100644 --- a/docs/ru/preface.xml +++ b/docs/ru/preface.xml @@ -1,77 +1,77 @@ - + - + Предисловие - , - PHP - " PHP- - ?". PHP " , - HTML", , PHP HTML - , , - - [TM]. , - . - ... + Несомненно, один из наиболее часто задаваемых вопросов в списках + рассылки PHP - "Как мне сделать свои PHP-скрипты независимыми + от дизайна?". Хотя PHP называют "скриптовым языком, встраиваемым + в HTML", после написания нескольких проектов, в которых PHP и HTML + свободно перемешиваются, многие понимают, что отделение формы от + содержания - это Хорошая Вещь [TM]. Кроме того, во многих компаниях + должности дизайнера и программиста разделены между собой. Так + начинается поиск обработчика шаблонов... - , : - , , - . - PHP - . HTML-/, - . - HTML- . - , , - HTML , HTML- - PHP-. - , , - PHP. + Например, в нашей компании разработка приложения идёт таким образом: + после того, как готова вся проектная документация, дизайнер интерфейса + создаёт макеты и передаёт их программисту. Программист реализовывает + логику приложения на PHP и использует макеты интерфейса для создания + базовых шаблонов. Затем проект передаётся HTML-дизайнеру/верстальщику, + который доводит шаблоны до совершенства. Проект может несколько раз + переходить из этапа HTML-вёрстки к этапу программирования и обратно. + Таким образом, важно иметь хорошую поддержку шаблонов, потому что + программисты не хотят иметь дела с HTML и не хотят, чтобы HTML-дизайнеры + копались в PHP-коде. Дизайнерам нужна поддержка конфигурационных + файлов, динамических блоков и прочих интерфейсных нюансов, но они не + хотят иметь дела со сложностями языка программирования PHP. - , PHP, - - . - . , - HTML, . - , , - , - . , - - . . + Глядя на множество обработчиков шаблонов, доступных сегодня для PHP, + большинство из них предоставляет базовые возможности подстановки + переменных в шаблоны и имеет ограниченную поддержку динамических блоков. + Но нам требовалось нечто большее. Мы хотели, чтобы программисты + ВООБЩЕ не имели дела с HTML, но это было практически неизбежно. + К примеру, если дизайнер хотел, чтобы два фоновых цвета чередовались + при отображении динамических блоков, эту задачу необходимо было решать + вместе с программистом. Нам также требовалось, чтобы дизайнеры могли + использовать собственные конфигурационные файлы и вставлять переменные + из этих файлов в шаблоны. И так далее. - - 1999 . , - , , , , - PHP. - , - , . - , PHP - , , . - , - SmartTemplate - (: ). - , , : - , - , , - PHP-, 'if' - . - , - , , - . - , - - , - . - , PHP- - . - ? + Мы начали написание спецификации для обработчика шаблонов ещё в + 1999 году. Когда мы закончили спецификацию, мы начали работать + над обработчиком шаблонов, написанным на Си, которому, как мы надеялись, + разрешат стать частью PHP. Мы не только наткнулись на множество + технических барьеров, но было и большое количество споров относительно + того, что должен и не должен делать обработчик шаблонов. Благодаря этому + опыту мы решили, что обработчик шаблонов должен быть написан на PHP + в виде класса, чтобы каждый мог использовать его так, как хочет. + Затем мы написали движок, который соответствовал этим требованиям + и SmartTemplate появился на свет + (примечание: этот класс никогда не был опубликован). + Это был класс, который делал практически всё, что нам требовалось: + обыкновенная подстановка переменных, поддержка подключения других + шаблонов, интеграция с конфигурационными файлами, встраивание + PHP-кода, ограниченная поддержка условий 'if' и улучшенная + поддержка вложенных динамических блоков. Всё это достигалось + использованием регулярных выражений и в итоге у нас получился код, + который, скажем так, не позволял вносить в себя какие-либо изменения. + Кроме того, он прилично тормозил в крупных приложениях из-за большого + количества парсинга и регулярных выражений, которые обрабатывались + при каждом запросе. Наибольшей проблемой с программистской точки + зрения была та работа, которую нужно было провести над PHP-скриптом + для настройки и обработки шаблонов и динамических блоков. + Как же мы можем упростить это? - , Smarty. - , PHP-, . - , PHP - , - . - ? Smarty... :-) + Затем пришло видение того, что в последствии переросло в Smarty. + Мы знали, как быстр PHP-код, если его не перегружать обработкой шаблонов. + Мы также знали, как всеобъемлюще и непонятно может выглядить язык PHP + для среднестатистического дизайнера, и что это можно замаскировать + при помощи более простого синтаксиса шаблонов. А почему бы нам + не объединить две эти силы? Так и родился Smarty... :-) diff --git a/docs/ru/programmers/advanced-features.xml b/docs/ru/programmers/advanced-features.xml index 4684fd54..12e5bd24 100644 --- a/docs/ru/programmers/advanced-features.xml +++ b/docs/ru/programmers/advanced-features.xml @@ -1,8 +1,8 @@ - + - + Расширенные возможности &programmers.advanced-features.advanced-features-objects; &programmers.advanced-features.advanced-features-prefilters; &programmers.advanced-features.advanced-features-postfilters; diff --git a/docs/ru/programmers/advanced-features/advanced-features-objects.xml b/docs/ru/programmers/advanced-features/advanced-features-objects.xml index 5811035f..f62a588b 100644 --- a/docs/ru/programmers/advanced-features/advanced-features-objects.xml +++ b/docs/ru/programmers/advanced-features/advanced-features-objects.xml @@ -1,64 +1,64 @@ - + - + Объекты - Smarty - PHP. - . - - - , , - . - - , - . - , - . , , - , , - . , - , . + Smarty позволяет использовать в шаблонах + объекты PHP. + Существуют два способа их вызова. Первый - + зарегистрировать объект для + шаблона, затем вызвать его примерно так же, как и + пользовательские функции. + Второй - назначить объект шаблону и использовать его, + как любую другую присвоенную переменную. Первый метод гораздо аккуратнее + и безопаснее, так как у зарегистрированного объекта можно ограничить + свойства и методы. Но, в тоже время, зарегистрированный объект + нельзя использовать в циклах, нельзя помещать в массив объектов, + и так далее. Выбор способа за вами, но используйте по + возможности первый, чтобы максимально упростить синтаксис шаблона. - - ( "_"). - , , - . + В безопасном режиме + недоступны приватные методы и функции (имена которых начинаются с "_"). + Если существует и метод, и свойство с одинаковыми именами, + то будет использован метод. - - . - . + Вы можете ограничить использование объекта только некоторыми + методами и свойствами. Для этого перечислите их в массиве и укажите + этот массив третьим параметром при регистрации объекта. - , , - - . - - , - Smarty. - , , - false. + По умолчанию, параметры из шаблона передаются объекту точно так же, + как и + пользовательской функции. + Первым параметром передаётся + ассоциативный массив, вторым - объект Smarty. Если вы хотите передавать + параметры по одному, как при традиционном обращении с объектами, установите + четвёртый параметр вызова в false. - , - format true. - , . - , - ({foobar->meth2}...{/foobar->meth2}) - , + Необязательный пятый параметр вступает в силу только в том случае, если + свойство format равно true. + Он содержит список методов, которые должны обрабатываться как блоки. + Это означает, что в шаблоне у методы будут иметь закрывающие тэги + ({foobar->meth2}...{/foobar->meth2}) и параметры + методов будут иметь такие же синопсисы, как и параметры для block-function-plugins: $params, $content, &$smarty - - &$repeat. , , + и + &$repeat. Кроме того, они ведут себя так же, как и block-function-plugins. - + использование зарегистрированного или присвоенного объекта register_object('foobar',$myobj); -// , +// если мы хотим ограничить доступ к определенным методам или свойствам, перечисляем их $smarty->register_object('foobar',$myobj,array('meth1','meth2','prop1')); -// , false +// если мы хотим использовать традиционный формат параметров объекта, передаем false $smarty->register_object('foobar',$myobj,null,false); -// . , . +// Мы так же можем назначать объекты. Назначение идёт по ссылке, если это возможно. $smarty->assign_by_ref('myobj', $myobj); $smarty->display('index.tpl'); @@ -82,26 +82,26 @@ $smarty->display('index.tpl'); ]]> - index.tpl: + А вот так можно получить доступ к объекту в index.tpl: meth1 p1='foo' p2=$bar} -{* *} +{* вывод объекта можно сохранить в переменную *} {foobar->meth1 p1='foo' p2=$bar assign='output'} the output was {$output} -{* *} +{* обращаемся к нашему назначенному объекту *} {$myobj->meth1('foo',$bar)} ]]> - . + См. также register_object() - + и assign() diff --git a/docs/ru/programmers/advanced-features/advanced-features-outputfilters.xml b/docs/ru/programmers/advanced-features/advanced-features-outputfilters.xml index 9f8f4250..9eed2b14 100644 --- a/docs/ru/programmers/advanced-features/advanced-features-outputfilters.xml +++ b/docs/ru/programmers/advanced-features/advanced-features-outputfilters.xml @@ -1,37 +1,37 @@ - + - + Фильтры вывода - - display() - fetch(), - . - - , - , , - . + Когда шаблон выводится через + display() или + fetch(), результат может быть + пропущен через один или несколько фильтров вывода. Отличие их от + постфильтров + состоит в том, что постфильтры действуют на уже скомпилированный + шаблон, перед его записью на диск, в то время как фильтры вывода обрабатывают + шаблон в момент его исполнения. - - - - - - load_filter(), - + Фильтры вывода могут быть или + зарегистрированы или + загружены из + папки плагинов + с помощью + функции load_filter(), или + с помощью установки переменной $autoload_filters. - Smarty - , . + Smarty передаёт фильтру результат обработки шаблона в качестве первого + аргумента и предполагает, что функция вернёт результат своей работы. - + Использование фильтра вывода register_outputfilter('protect_email'); $smarty->display('index.tpl'); -// -// - +// теперь все адреса электронной почты в выводе шаблона будут +// обработаны несложной функцией защиты от спам-ботов ?> ]]> - . + См. также register_outpurfilter(), load_filter(), $autoload_filters, - - + постфильтрі + и $plugins_dir. diff --git a/docs/ru/programmers/advanced-features/advanced-features-postfilters.xml b/docs/ru/programmers/advanced-features/advanced-features-postfilters.xml index 4130ddaa..72204238 100644 --- a/docs/ru/programmers/advanced-features/advanced-features-postfilters.xml +++ b/docs/ru/programmers/advanced-features/advanced-features-postfilters.xml @@ -1,53 +1,53 @@ - + - + Постфильтры - - PHP, - . - - - - - load_filter(), - + Постфильтры шаблона - это функции PHP, которые обрабатывают шаблон после его + компиляции. Постфильтры могут быть или + зарегистрированы + или загружены из + директории плагинов + при помощи функции + load_filter(), или + с помощью установки переменной $autoload_filters. - Smarty - , . + Smarty передаёт фильтру скомпилированный код шаблона в качестве первого + аргумента и предполагает, что функция вернёт результат своей работы. - + использование постфильтра ;\n\"; ?>\n".$tpl_source; + return ";\n\"; ?>\n".$tpl_source; } -// +// регистрация постфильтра $smarty->register_postfilter('add_header_comment'); $smarty->display('index.tpl'); ?> ]]> - Smarty index.tpl : + Теперь скомпилированный шаблон Smarty index.tpl выглядит так: -{* ... *} + +{* остальной код шаблона... *} ]]> - . + См. также register_postfilter(), - - + префильтры + и load_filter(). diff --git a/docs/ru/programmers/advanced-features/advanced-features-prefilters.xml b/docs/ru/programmers/advanced-features/advanced-features-prefilters.xml index 0d7afeb9..12ac6c29 100644 --- a/docs/ru/programmers/advanced-features/advanced-features-prefilters.xml +++ b/docs/ru/programmers/advanced-features/advanced-features-prefilters.xml @@ -1,42 +1,42 @@ - + - + Префильтры - - PHP, - . - . + Префильтры шаблона - это функции PHP, которые обрабатывают шаблон перед его + компиляцией. Это удобно для удаления лишних комментариев и прочих ненужных + после компиляции данных. - - - - - - load_filter() - + Префильтры могут быть или + заргистрированы + или загружены из + директории плагинов + с помощью функции + load_filter() или + с помощью установки переменной $autoload_filters. - Smarty - , . + Smarty передаёт фильтру исходный код шаблона в качестве первого аргумента + и предполагает, что функция вернёт результат своей работы. - + использование префильтра - . + Этот пример удалит все комментарии из исходного текста шаблона. /U','',$tpl_source); } -// +// регистрация префильтра $smarty->register_prefilter('remove_dw_comments'); $smarty->display('index.tpl'); ?> @@ -44,10 +44,10 @@ $smarty->display('index.tpl'); - . + См. также register_prefilter(), - - + постфильтры + и load_filter(). diff --git a/docs/ru/programmers/advanced-features/section-template-cache-handler-func.xml b/docs/ru/programmers/advanced-features/section-template-cache-handler-func.xml index 62b75ece..f6832817 100644 --- a/docs/ru/programmers/advanced-features/section-template-cache-handler-func.xml +++ b/docs/ru/programmers/advanced-features/section-template-cache-handler-func.xml @@ -1,40 +1,40 @@ - + - + Управление кэшированием - , , - , . + Вместо стандартного механизма кэширования, использующего файлы, + вы можете использовать свои функции для чтения, записи и очистки кэшированных шаблонов. - , Smarty - . + Добавьте в ваше приложение функцию, которую Smarty сможет использовать для + управления кэшем. Укажите её имя в переменной класса $cache_handler_func. - Smarty . - - , - 'read', 'write' 'clear' (, '', '' - ''). smarty. - - . - . Smarty - . , - , . - . - - ( /), - - (), - (, - ), - - (). + Теперь Smarty будет использовать её для операций с кэшированным содержимым. + Первый параметр вашей функции - действие, принимает значения + 'read', 'write' или 'clear' (соответственно, 'прочитать', 'записать' + или 'очистить'). Вторым параметром передаётся объект smarty. Третьим - данные для + кэширования. + Третий параметр используется только при чтении и записи. При записи Smarty передаёт + через него кэшированный контент. При чтении предполагается, что через него + передаётся ссылка на переменную, в которую контент будет загружен. + При очистке значение третьего параметра не обрабатывается. + Четвёртый параметр - имя файла с шаблоном (используется при чтении/записи), + пятый - идентификатор кэша (опционально), шестой - идентификатор компиляции (опционально, + используется для построения разных кэшей для одного шаблона), + седьмой - срок годности кэша (опционально). - : ($exp_time) Smarty 2.6.0. + Примечание: последний параметр ($exp_time) добавлен в Smarty 2.6.0. - MySQL + Применение MySQL в качестве хранилища кэшированных данных cache_handler_func = 'mysql_cache_handler'; $smarty->display('index.tpl'); - MySQL : +код для MySQL таблицы: create database SMARTY_CACHE; @@ -58,29 +58,29 @@ CacheContents MEDIUMTEXT NOT NULL function mysql_cache_handler($action, &$smarty_obj, &$cache_content, $tpl_file=null, $cache_id=null, $compile_id=null, $exp_time=null) { - // - , , , + // параметры подключения к базе данных - хост, логин, пароль, название базы $db_host = 'localhost'; $db_user = 'myuser'; $db_pass = 'mypass'; $db_name = 'SMARTY_CACHE'; - // true gzip + // установите в true для использования gzip компрессии кэшированных данных $use_gzip = false; - // + // создаём уникальный идентификатор кэша $CacheID = md5($tpl_file.$cache_id.$compile_id); if(! $link = mysql_pconnect($db_host, $db_user, $db_pass)) { - $smarty_obj->_trigger_error_msg('cache_handler: '); + $smarty_obj->_trigger_error_msg('cache_handler: не могу подключиться к базе данных'); return false; } mysql_select_db($db_name); switch ($action) { case 'read': - // + // чтение кэша из базы $results = mysql_query("select CacheContents from CACHE_PAGES where CacheID='$CacheID'"); if(!$results) { - $smarty_obj->_trigger_error_msg('cache_handler: .'); + $smarty_obj->_trigger_error_msg('cache_handler: ошибка запроса.'); } $row = mysql_fetch_array($results,MYSQL_ASSOC); @@ -92,10 +92,10 @@ function mysql_cache_handler($action, &$smarty_obj, &$cache_content, $tpl_file=n $return = $results; break; case 'write': - // + // сохранение кэша в базе if($use_gzip && function_exists("gzcompress")) { - // + // сжимаем контент чтобы сэкономить место $contents = gzcompress($cache_content); } else { $contents = $cache_content; @@ -105,12 +105,12 @@ function mysql_cache_handler($action, &$smarty_obj, &$cache_content, $tpl_file=n '".addslashes($contents)."') "); if(!$results) { - $smarty_obj->_trigger_error_msg('cache_handler: .'); + $smarty_obj->_trigger_error_msg('cache_handler: ошибка запроса.'); } $return = $results; break; case 'clear': - // + // очистка кэша if(empty($cache_id) && empty($compile_id) && empty($tpl_file)) { // clear them all $results = mysql_query('delete from CACHE_PAGES'); @@ -118,13 +118,13 @@ function mysql_cache_handler($action, &$smarty_obj, &$cache_content, $tpl_file=n $results = mysql_query('delete from CACHE_PAGES where CacheID="'.$CacheID.'"'); } if(!$results) { - $smarty_obj->_trigger_error_msg('cache_handler: .'); + $smarty_obj->_trigger_error_msg('cache_handler: ошибка запроса.'); } $return = $results; break; default: - // , - $smarty_obj->_trigger_error_msg('cache_handler: "'.$action.'"'); + // ошибка, указан неизвестный метод + $smarty_obj->_trigger_error_msg('cache_handler: неизвестный метод "'.$action.'"'); $return = false; break; } diff --git a/docs/ru/programmers/advanced-features/template-resources.xml b/docs/ru/programmers/advanced-features/template-resources.xml index 984c838d..519b3265 100644 --- a/docs/ru/programmers/advanced-features/template-resources.xml +++ b/docs/ru/programmers/advanced-features/template-resources.xml @@ -1,57 +1,57 @@ - + - + Ресурсы - . - - , - , , - . - , + Шаблоны можно получать из самых разных источников. Когда вы + отображаете или + вызываете шаблон, + либо когда вы подключаете один шаблон к другому, вы указываете тип ресурса, + вместе с соответствующим путём и названием шаблона. + Если тип ресурса явно не задан, используется значения свойства $default_resource_type. - $template_dir + Шаблоны из папки $template_dir - , + Шаблоны, которые находятся в папке $template_dir, - - , file: - . + не требуют при вызове указания + типа ресурса, хотя вы можете использовать префикс file: для сохранения + стиля. Для вызова просто укажите относительный от $template_dir - . + путь к шаблону. - $template_dir + Вызов шаблона из папки $template_dir display('index.tpl'); $smarty->display('admin/menu.tpl'); -$smarty->display('file:admin/menu.tpl'); // , +$smarty->display('file:admin/menu.tpl'); // тоже самое, что и строкой выше ?> -{* Smarty *} +{* код в шаблоне Smarty *} {include file="index.tpl"} -{include file="file:index.tpl"} {* , *} +{include file="file:index.tpl"} {* тоже самое, что и строкой выше *} ]]> - + Шаблоны из произвольной папки - + Для вызова шаблонов из папки вне $template_dir - file: - . + необходимо использовать префикс file: с последующим указанием асболютного + пути и имени шаблона. - + Вызов шаблона из произвольной папки display('file:/path/to/my/templates/menu.tpl'); ]]> - Smarty: + А изнутри шаблона Smarty: display('file:/path/to/my/templates/menu.tpl'); - Windows + Файловые пути в Windows - Windows, , , - (, C:). - "file:" , - . + Если вы работаете под Windows, то пути к файлам, как правило, + начинаются с буквы логического диска (например, C:). Не забудьте + указать префикс "file:" в начале пути, чтобы избежать конфликтов + имён и достичь необходимого результата. - Windows + использование шаблонов с файловіми путями Windows display('file:C:/export/templates/index.tpl'); $smarty->display('file:F:/path/to/my/templates/menu.tpl'); ?> ]]> - Smarty: + А изнутри шаблона Smarty: display('file:F:/path/to/my/templates/menu.tpl'); - + Шаблоны из прочих источников - , PHP : - , , LDAP . - - Smarty. + Вы можете вызывать шаблоны, используя любые доступные через PHP источники: + базы данных, сокеты, LDAP и так далее. + Для этого нужно написать соответствующий плагин ресурса и зарегистрировать + его в Smarty. - - , - . + Смотрите раздел плагины ресурсов + для более подробной информации о тех функциях, которые вы должны + предоставить. - , - file, - , - . + Обратите внимание на то, что вы не можете переопределить встроенный ресурс + file, но в ваших силах написать и зарегистрировать ресурс с + другим именем, который будет использовать другой способ вызова шаблонов из + файловой системы. - + Использование собственных ресурсов query("select tpl_source from my_table @@ -147,7 +147,7 @@ function db_get_template ($tpl_name, &$tpl_source, &$smarty_obj) function db_get_timestamp($tpl_name, &$tpl_timestamp, &$smarty_obj) { - // , $tpl_timestamp. + // обращаемся к базе, запрашиваем поле $tpl_timestamp. $sql = new SQL; $sql->query("select tpl_timestamp from my_table @@ -162,28 +162,28 @@ function db_get_timestamp($tpl_name, &$tpl_timestamp, &$smarty_obj) function db_get_secure($tpl_name, &$smarty_obj) { - // , + // предполагаем, что наши шаблоны совершенно безопасны return true; } function db_get_trusted($tpl_name, &$smarty_obj) { - // + // не используется для шаблонов } -// "db" +// регистрируем ресурс под именем "db" $smarty->register_resource("db", array("db_get_template", "db_get_timestamp", "db_get_secure", "db_get_trusted")); -// PHP +// используем ресурс из PHP скрипта $smarty->display("db:index.tpl"); ?> ]]> - Smarty: + А изнутри шаблона Smarty: display("db:index.tpl"); - + Функция для обработки шаблона по умолчанию - , , - . - , , - . + Вы можете определить функцию, которая будет использована, + если шаблон не может быть вызван из соответствующего ресурса. + Это можно использовать, к примеру, для построения недостающего + шаблона на лету. - + использование функции для обработки шаблона по умолчанию _write_file($resource_name,$template_source); return true; } } else { - // + // не файл return false; } } -// +// определение обработчика $smarty->default_template_handler_func = 'make_template'; ?> ]]> diff --git a/docs/ru/programmers/api-functions.xml b/docs/ru/programmers/api-functions.xml index c3d0278e..6c59ed30 100644 --- a/docs/ru/programmers/api-functions.xml +++ b/docs/ru/programmers/api-functions.xml @@ -1,8 +1,8 @@ - + - Smarty + Методы класса Smarty &programmers.api-functions.api-append; &programmers.api-functions.api-append-by-ref; &programmers.api-functions.api-assign; diff --git a/docs/ru/programmers/api-functions/api-append-by-ref.xml b/docs/ru/programmers/api-functions/api-append-by-ref.xml index 72fdf80c..22e153c3 100644 --- a/docs/ru/programmers/api-functions/api-append-by-ref.xml +++ b/docs/ru/programmers/api-functions/api-append-by-ref.xml @@ -1,13 +1,13 @@ - + append_by_ref() - + добавляет значение по ссылке - + Описание voidappend_by_ref stringvarname @@ -15,16 +15,16 @@ boolmerge - - . - , - . , - append_by_ref() - . - . PHP - . - , true, - , . + Используется для добавления значений + в шаблон по ссылке. Если вы добавляете значение переменной по ссылке и это + значение изменяется в шаблоне, эти изменения будут отражены в начальной + переменной. Для объектов, + append_by_ref() также позволяет избежать внутреннего копирования добавляемого + объекта. + См. руководство PHP для более подробного описания работы передачи переменных + по ссылкам. + Если вы укажете необязательный третий аргумент, равный true, значение будет + совмещено с существующим массивом, вместо добавления. ¬e.parameter.merge; @@ -32,7 +32,7 @@ append_by_ref('Name', $myname); $smarty->append_by_ref('Address', $address); ?> @@ -40,9 +40,9 @@ $smarty->append_by_ref('Address', $address); - . + См. также append() - + и assign(). diff --git a/docs/ru/programmers/api-functions/api-append.xml b/docs/ru/programmers/api-functions/api-append.xml index a5942e39..82d1db30 100644 --- a/docs/ru/programmers/api-functions/api-append.xml +++ b/docs/ru/programmers/api-functions/api-append.xml @@ -1,13 +1,13 @@ - + append() - + добавляет элемент к назначенному массиву - + Описание voidappend mixedvar @@ -19,12 +19,12 @@ boolmerge - , - . - / , , - / . - , true, - , . + Если вы добавляете значение к строковому значению, последнее будет + предварительно преобразовано в массив. Вы можете явно передавать пары + ключей / значений, либо ассоциативный массив, содержащий пары + ключей / значений. + Если вы укажете необязательный третий аргумент, равный true, значение будет + совмещено с существующим массивом, вместо добавления. ¬e.parameter.merge; @@ -32,20 +32,20 @@ append("Name", "Fred"); $smarty->append("Address", $address); -// +// передаем ассоциативный массив $smarty->append(array('city' => 'Lincoln', 'state' => 'Nebraska')); ?> ]]> - . + См. также append_by_ref(), assign() - + и get_template_vars() diff --git a/docs/ru/programmers/api-functions/api-assign-by-ref.xml b/docs/ru/programmers/api-functions/api-assign-by-ref.xml index 3a6ac6e3..9950e3ef 100644 --- a/docs/ru/programmers/api-functions/api-assign-by-ref.xml +++ b/docs/ru/programmers/api-functions/api-assign-by-ref.xml @@ -1,35 +1,35 @@ - + assign_by_ref() - + назначает переменную по ссылке - + Описание voidassign_by_ref stringvarname mixedvar - - , . - . PHP - . + Используется для назначения переменных + шаблонуу по ссылке, вместо создания копии. + См. руководство PHP для более подробного описания работы передачи переменных + по ссылкам. - + Техническое Замечание - . - - , . - , - assign_by_ref() - . - . PHP - . + Эта функция используется для назначения переменных шаблону по ссылке. + Если вы назначаете переменную по ссылке и значение этой переменной + изменяется в шаблоне, эти изменения будут отражены в начальной переменной. + Для объектов, + assign_by_ref() также позволяет избежать внутреннего копирования добавляемого + объекта. + См. руководство PHP для более подробного описания работы передачи переменных + по ссылкам. @@ -37,7 +37,7 @@ assign_by_ref('Name', $myname); $smarty->assign_by_ref('Address', $address); ?> @@ -45,11 +45,11 @@ $smarty->assign_by_ref('Address', $address); - . + См. также assign(), clear_all_assign(), append() - + и {assign} diff --git a/docs/ru/programmers/api-functions/api-assign.xml b/docs/ru/programmers/api-functions/api-assign.xml index 6f3724dd..e59cc2c5 100644 --- a/docs/ru/programmers/api-functions/api-assign.xml +++ b/docs/ru/programmers/api-functions/api-assign.xml @@ -1,13 +1,13 @@ - + assign() - + назначает значение шаблону - + Описание voidassign mixedvar @@ -18,33 +18,33 @@ mixedvar - / , - , / . + Вы можете явно передавать пары ключей / значений, либо ассоциативный + массив, содержащий пары ключей / значений. assign() assign('Name', 'Fred'); $smarty->assign('Address', $address); -// +// передача ассоциативного массива $smarty->assign(array('city' => 'Lincoln', 'state' => 'Nebraska')); -// (. ADODB) +// передача строки из базы данных (напр. ADODB) $sql = 'select id, name, email from contacts where contact ='.$id; $smarty->assign('contact', $db->getRow($sql)); ?> ]]> - + Обращаемся к переменным из шаблона assign('contact', $db->getRow($sql)); - . + Для более сложных назначений массивов см. {foreach} - + и {section} - . + См. также assign_by_ref(), get_template_vars(), clear_assign(), append() - + и {assign} diff --git a/docs/ru/programmers/api-functions/api-clear-all-assign.xml b/docs/ru/programmers/api-functions/api-clear-all-assign.xml index 97376248..f8f27045 100644 --- a/docs/ru/programmers/api-functions/api-clear-all-assign.xml +++ b/docs/ru/programmers/api-functions/api-clear-all-assign.xml @@ -1,13 +1,13 @@ - + clear_all_assign() - + очищает список назначенных переменных - + Описание voidclear_all_assign @@ -17,17 +17,17 @@ assign('Name', 'Fred'); $smarty->assign('Address', $address); -// +// выведет только что назначенные переменные print_r($smarty->get_template_vars()); -// +// очищаем список назначенных переменных $smarty->clear_all_assign(); -// +// не выведет ничего print_r($smarty->get_template_vars()); ?> @@ -35,11 +35,11 @@ print_r($smarty->get_template_vars()); - . + См. также clear_assign(), clear_config(), assign() - + и append() diff --git a/docs/ru/programmers/api-functions/api-clear-all-cache.xml b/docs/ru/programmers/api-functions/api-clear-all-cache.xml index ed028b77..9eb1859d 100644 --- a/docs/ru/programmers/api-functions/api-clear-all-cache.xml +++ b/docs/ru/programmers/api-functions/api-clear-all-cache.xml @@ -1,38 +1,38 @@ - + clear_all_cache() - + полностью очищает кэш шаблонов - + Описание voidclear_all_cache intexpire_time - , - , . + В качестве необязательного параметра, вы можете указать минимальный возраст + файлов кэша в секундах, прежде чем они будут очищены. clear_all_cache clear_all_cache(); ?> ]]> - . + См. также clear_cache(), is_cached() - - + и + кэширование diff --git a/docs/ru/programmers/api-functions/api-clear-assign.xml b/docs/ru/programmers/api-functions/api-clear-assign.xml index 5a25123c..66dd8302 100644 --- a/docs/ru/programmers/api-functions/api-clear-assign.xml +++ b/docs/ru/programmers/api-functions/api-clear-assign.xml @@ -1,41 +1,41 @@ - + clear_assign() - + очищает назначенную переменную - + Описание voidclear_assign mixedvar - , . + Может принимать имя переменной, либо массив с именами переменных. clear_assign() clear_assign('Name'); -// +// очищает несколько переменных $smarty->clear_assign(array('Name', 'Address', 'Zip')); ?> ]]> - . + См. также clear_all_assign(), clear_config(), get_template_vars(), assign() - + и append() diff --git a/docs/ru/programmers/api-functions/api-clear-cache.xml b/docs/ru/programmers/api-functions/api-clear-cache.xml index b7b711bf..0b4e23c7 100644 --- a/docs/ru/programmers/api-functions/api-clear-cache.xml +++ b/docs/ru/programmers/api-functions/api-clear-cache.xml @@ -1,13 +1,13 @@ - + clear_cache() - + очищает кэш определенного шаблона - + Описание voidclear_cache stringtemplate @@ -17,39 +17,39 @@ intexpire_time - - - , , - cache_id . - , + Если вы используете + множественное кэширование + для шаблона, вы можете очистить определенный кэш, передавая + cache_id в качестве второго аргумента. + Также, вы можете педать $compile_id - . - "" - , . - . - . - - , . + в качестве третьего аргумента. + Вы можете "группировать" шаблоны + вместе, чтобы их можно было удалять группой. + См. раздел Кэширование для получения + дополнительной информации. + В качестве необязательного четвертого аргумента вы можете передать минимальный + возраст файла кэша в секундах, прежде чем он будет очищен. clear_cache() clear_cache('index.tpl'); -// +// очищает определенный идентификатор кэша для шаблонов со множественным кэшированием $smarty->clear_cache('index.tpl', 'CACHEID'); ?> ]]> - . + См. также clear_all_cache() - - . + и + кэширование. diff --git a/docs/ru/programmers/api-functions/api-clear-compiled-tpl.xml b/docs/ru/programmers/api-functions/api-clear-compiled-tpl.xml index 36244e00..b6753e2e 100644 --- a/docs/ru/programmers/api-functions/api-clear-compiled-tpl.xml +++ b/docs/ru/programmers/api-functions/api-clear-compiled-tpl.xml @@ -1,13 +1,13 @@ - + clear_compiled_tpl() - + очищает скомпилированную версию указанного шаблона - + Описание voidclear_compiled_tpl stringtpl_file @@ -16,27 +16,27 @@ intexp_time - , - , . - - $compile_id, - , . - exp_time, - , - . - , - . - - . + Очищает скомпилированную версию указанного шаблона, либо все скомпилированные + файлы, если конкретный файл не указан. + Если вы укажете аргумент + $compile_id, будут очищены + только те скомпилированные версии, которые имеют такой идентификатор. + Если вы укажете аргумент exp_time, будут очищены только те скомпилированные + версии, которые будут старше этого кол-ва секунд. + По умолчанию очищаются все скомпилированные шаблоны, независимо от их + возраста. + Эта функция предназначена для продвинутого использования и для решения + обычных задачь необходимости в ней нет. clear_compiled_tpl() clear_compiled_tpl("index.tpl"); -// +// очищает скомпилированные версии всех шаблонов $smarty->clear_compiled_tpl(); ?> ]]> diff --git a/docs/ru/programmers/api-functions/api-clear-config.xml b/docs/ru/programmers/api-functions/api-clear-config.xml index 32b7f0c6..359d7ced 100644 --- a/docs/ru/programmers/api-functions/api-clear-config.xml +++ b/docs/ru/programmers/api-functions/api-clear-config.xml @@ -1,44 +1,44 @@ - + clear_config() - + очищает назначенную конфигурационную переменную - + Описание voidclear_config stringvar - - . - , . + Очищает все назначенные + конфигурационные переменные. + Если указано имя переменной, только эта переменная будет очищена. clear_config() clear_config(); -// +// очищает одну конфигурационную переменную $smarty->clear_config('foobar'); ?> ]]> - . + См. также get_config_vars(), config variables, config files, {config_load}, config_load() - + и clear_assign() diff --git a/docs/ru/programmers/api-functions/api-config-load.xml b/docs/ru/programmers/api-functions/api-config-load.xml index 0dd62df2..db2baf61 100644 --- a/docs/ru/programmers/api-functions/api-config-load.xml +++ b/docs/ru/programmers/api-functions/api-config-load.xml @@ -1,37 +1,37 @@ - + config_load() - + загружает данные из конфигурационного файла и назначает их шаблону - + Описание voidconfig_load stringfile stringsection - - - . + Эта функция загружает данные из + конфигурационного файла + и назначает их шаблону. Работает идентично функции шаблона {config_load}. - + Техническое Замечание - Smarty 2.4.0, - + Начиная с версии Smarty 2.4.0, присвоенные переменные шаблона сохраняются + между вызовами методов fetch() - + и display(). - , config_load(), - . - , + Конфигурационные переменные, загруженные через config_load(), всегда + находятся в глобальной зоне видимости. Конфигурационные файлы также + компилируются для более быстрой обработки, и учитывают настройки $force_compile - + и $compile_check. @@ -40,22 +40,22 @@ config_load('my.conf'); -// +// загружаем секцию $smarty->config_load('my.conf', 'foobar'); ?> ]]> - . + См. также {config_load}, get_config_vars(), clear_config(), - - . + и + конфигурационные переменные. diff --git a/docs/ru/programmers/api-functions/api-display.xml b/docs/ru/programmers/api-functions/api-display.xml index da4d029e..cdb2ce87 100644 --- a/docs/ru/programmers/api-functions/api-display.xml +++ b/docs/ru/programmers/api-functions/api-display.xml @@ -1,13 +1,13 @@ - + display() - + отображает шаблон - + Описание voiddisplay stringtemplate @@ -16,15 +16,15 @@ - , + Данная функция отображает шаблон, в отличие от fetch(). - - . - , - . - . - - . + В качестве первого аргумента следуедует указать доступный тип и путь к + ресурсу шаблона. + В качестве второго необязательного аргумета, вы можете передать идентификатор + кэша. + См. раздел + Кэширование + для получения дополнительной информации. ¶meter.compileid; @@ -36,10 +36,10 @@ include("Smarty.class.php"); $smarty = new Smarty; $smarty->caching = true; -// , +// выполняем запрос к БД только в том случае, если кэш не существует if(!$smarty->is_cached("index.tpl")) { - // + // немного данных для примера $address = "245 N 50th"; $db_data = array( "City" => "Lincoln", @@ -53,42 +53,42 @@ if(!$smarty->is_cached("index.tpl")) { } -// +// выводим результат $smarty->display("index.tpl"); ?> ]]> - - + Используйте синтаксис ресурсов шаблона для отображения файлов + за пределами директории $template_dir. - display() + Пример работы функции display() с ресурсами шаблона display('/usr/local/include/templates/header.tpl'); -// ( ) +// абсолютный файловый путь (тот же результат) $smarty->display('file:/usr/local/include/templates/header.tpl'); -// Windows ( "file:" ) +// абсолютный файловый путь под Windows (префикс "file:" ОБЯЗАТЕЛЕН) $smarty->display('file:C:/www/pub/templates/header.tpl'); -// "db" +// использование ресурса шаблона с именем "db" $smarty->display('db:header.tpl'); ?> ]]> - . + См. также fetch() - + и template_exists(). diff --git a/docs/ru/programmers/api-functions/api-fetch.xml b/docs/ru/programmers/api-functions/api-fetch.xml index dcb05bff..1c8eb6b7 100644 --- a/docs/ru/programmers/api-functions/api-fetch.xml +++ b/docs/ru/programmers/api-functions/api-fetch.xml @@ -1,4 +1,4 @@ - + @@ -15,13 +15,13 @@ stringcompile_id - . - - . - cache id. - - . + Функция возвращает вывод шаблона вместо его отображения на экран. + Укажите верный тип ресурса шаблонов + и путь. В качестве необязательного второго параметра можно передать + cache id. Смотрите раздел + Кэширование + для получения дополнительной информации. ¶meter.compileid; @@ -35,11 +35,11 @@ $smarty = new Smarty; $smarty->caching = true; -// +// обращаемся к БД только если отсутствует кэш if(!$smarty->is_cached("index.tpl")) { - // + // присваиваем некоторые значения $address = "245 N 50th"; $db_data = array( "City" => "Lincoln", @@ -53,10 +53,10 @@ if(!$smarty->is_cached("index.tpl")) } -// +// перехватываем вывод $output = $smarty->fetch("index.tpl"); -// - $output +// здесь выполняем какие-либо действия с $output echo $output; ?> @@ -65,8 +65,8 @@ echo $output; - . - display() + См. также + display() и template_exists. diff --git a/docs/ru/programmers/api-functions/api-get-config-vars.xml b/docs/ru/programmers/api-functions/api-get-config-vars.xml index b81396bb..8bd5a230 100644 --- a/docs/ru/programmers/api-functions/api-get-config-vars.xml +++ b/docs/ru/programmers/api-functions/api-get-config-vars.xml @@ -1,4 +1,4 @@ - + @@ -13,21 +13,21 @@ stringvarname - . , - . + Возвращает значение переданной конфигурационной переменной. Если аргумент не передан, + то будет возвращен массив всех конфигурационных переменных. get_config_vars get_config_vars('foo'); -// +// получаем все загруженные конфигурационные переменные шаблона $config_vars = $smarty->get_config_vars(); -// , +// смотрим, что у нас получилось print_r($config_vars); ?> ]]> diff --git a/docs/ru/programmers/api-functions/api-get-registered-object.xml b/docs/ru/programmers/api-functions/api-get-registered-object.xml index cd0e965b..892efd50 100644 --- a/docs/ru/programmers/api-functions/api-get-registered-object.xml +++ b/docs/ru/programmers/api-functions/api-get-registered-object.xml @@ -1,4 +1,4 @@ - + @@ -13,9 +13,9 @@ stringobject_name - . - - . + Возвращает ссылку на зарегестрированный объект. Может быть полезно в случае + необходимости получения прямого доступа к + зарегестрированному объекту из пользовательской функции. get_registered_object @@ -24,9 +24,9 @@ &get_registered_object($params['object']); - // $obj_ref + // теперь используем $obj_ref как ссылку на объект } } ?> diff --git a/docs/ru/programmers/api-functions/api-get-template-vars.xml b/docs/ru/programmers/api-functions/api-get-template-vars.xml index e3cbd368..b76d2cde 100644 --- a/docs/ru/programmers/api-functions/api-get-template-vars.xml +++ b/docs/ru/programmers/api-functions/api-get-template-vars.xml @@ -1,4 +1,4 @@ - + @@ -13,21 +13,21 @@ stringvarname - . , - . + Возвращает значение переменной. Если аргумент не передан, + будет возвращен массив всех назначенными переменными. get_template_vars get_template_vars('foo'); -// +// получаем все назначенные переменные шаблона $tpl_vars = $smarty->get_template_vars(); -// , +// поглядим, что из этого вышло print_r($tpl_vars); ?> ]]> diff --git a/docs/ru/programmers/api-functions/api-is-cached.xml b/docs/ru/programmers/api-functions/api-is-cached.xml index 71a17698..2f0ca3f5 100644 --- a/docs/ru/programmers/api-functions/api-is-cached.xml +++ b/docs/ru/programmers/api-functions/api-is-cached.xml @@ -1,4 +1,4 @@ - + @@ -15,9 +15,9 @@ stringcompile_id - true . - , caching true. + Возвращает true если существует кэш для указанного шаблона. + Работает только в том случае, если значение caching установлено в true. is_cached @@ -27,7 +27,7 @@ $smarty->caching = true; if(!$smarty->is_cached("index.tpl")) { - // , + // обращаемся к БД, назначаем переменные } $smarty->display("index.tpl"); @@ -36,27 +36,27 @@ $smarty->display("index.tpl"); - cache id - , . + Также вы можете передавать cache id в качестве необязательного второго + параметра, если у вас используется множественное кэширование шаблона. - compile id . - , + Также вы можете передавать compile id в качестве необязательного третьего параметра. + Если вы не передадите этот параметр, будет использован текущий $compile_id. - cache id, compile - id, null cache id. + Если вы не хотите передавать cache id, но хотите передать compile + id, вы должны передать null в качестве cache id. - is_cached + is_cached при множественном кэшировании шаблона caching = true; if(!$smarty->is_cached("index.tpl", "FrontPage")) { - // , + // обращаемся к БД, назначаем переменные } $smarty->display("index.tpl", "FrontPage"); @@ -67,19 +67,19 @@ $smarty->display("index.tpl", "FrontPage"); - + Техническое замечание - is_cached true, - . - display() + Если is_cached возвращает true, при этом она загружает + кэшированный вывод и хранит его в памяти. Любые последующие вызовы + display() или fetch() - - . , - is_cached - display . , + будут возвращать этот хранимый в памяти вывод и не будут пытаться перезагрузить + файл кэша. Это предотвращает неприятную ситуацию, которая может возникнуть если + другой процесс очищает кэш между вызовами is_cached и + display в предыдущем примере. Это также означает, что clear_cache() - , - is_cached true. + и другие изменения настроек кэширования могут не вступить в силу после того, как + is_cached вернула true. diff --git a/docs/ru/programmers/api-functions/api-load-filter.xml b/docs/ru/programmers/api-functions/api-load-filter.xml index 94f80d69..302df199 100644 --- a/docs/ru/programmers/api-functions/api-load-filter.xml +++ b/docs/ru/programmers/api-functions/api-load-filter.xml @@ -1,4 +1,4 @@ - + @@ -14,19 +14,19 @@ stringname - . - : - 'pre', 'post' 'output'. - , 'trim'. + Эта функция может быть использована для загрузки плагина фильтра. Первый аргумент + определяет тип загружаемого фильтра и может быть одним из следующих: + 'pre', 'post' или 'output'. Второй аргумент + определяет имя плагина фильтра, к примеру 'trim'. - + Загрузка плагинов фильтров load_filter('pre', 'trim'); // 'trim' -$smarty->load_filter('pre', 'datefooter'); // - 'datefooter' -$smarty->load_filter('output', 'compress'); // 'compress' +$smarty->load_filter('pre', 'trim'); // загружаем префильтр под названием 'trim' +$smarty->load_filter('pre', 'datefooter'); // загружаем еще один префильтр - 'datefooter' +$smarty->load_filter('output', 'compress'); // загружаем фильтр вывода 'compress' ?> ]]> diff --git a/docs/ru/programmers/api-functions/api-register-block.xml b/docs/ru/programmers/api-functions/api-register-block.xml index be15863a..8d400f99 100644 --- a/docs/ru/programmers/api-functions/api-register-block.xml +++ b/docs/ru/programmers/api-functions/api-register-block.xml @@ -1,4 +1,4 @@ - + @@ -16,27 +16,27 @@ mixedcache_attrs - - . - , . + Используйте для динамической регистрации плагинов + блоковых функций. В качестве аргументов передаются + имя блоковой функции и имя функции, реализующей ее. - - php impl (a) , - , (b) - array(&$object, $method), - &$object - , $method , - , (c) - array($class, $method), - $class , - $method - . + Коллбек-функцией php impl может быть (a) строка, + содержащая имя функции, или (b) массив вида + array(&$object, $method), где + &$object является ссылкой на + объект, а $method является строкой, + содержащей имя метода, или (c) массив в форме + array($class, $method), где + $class является именем класса, а + $method является методом этого + класса. - cacheable cache_attrs - . - . + cacheable и cache_attrs + в большинстве случаев могут быть опущены. Смотрите Управление кэшированием результатов работы плагинов + для получения информации об их правильном использовании. register_block @@ -49,7 +49,7 @@ function do_translation ($params, $content, &$smarty, &$repeat) { if (isset($content)) { $lang = $params['lang']; - // $content + // выполняем перевод $content return $translation; } } @@ -57,11 +57,11 @@ function do_translation ($params, $content, &$smarty, &$repeat) ]]> - : + Содержимое шаблона: + @@ -15,26 +15,26 @@ boolcacheable - . - , , . + Используется для динамической регистрации плагина функции компилятора. + Передается наименование функции компилятора, далее имя функции, реализующей ее. - - php impl (a) , - , (b) - array(&$object, $method), - &$object - , $method , - , (c) - array($class, $method), - $class , - $method - . + Коллбек-функцией php impl может быть (a) строка, + содержащая имя функции, или (b) массив вида + array(&$object, $method), где + &$object является ссылкой на + объект, а $method является строкой, + содержащей имя метода, или (c) массив в форме + array($class, $method), где + $class является именем класса, а + $method является методом этого + класса. - cacheable cache_attrs - . - . + cacheable и cache_attrs + в большинстве случаев могут быть опущены. Смотрите Управление кэшированием результатов работы плагинов + для получения информации об их правильном использовании. diff --git a/docs/ru/programmers/api-functions/api-register-function.xml b/docs/ru/programmers/api-functions/api-register-function.xml index 9368cb5e..8827e8bf 100644 --- a/docs/ru/programmers/api-functions/api-register-function.xml +++ b/docs/ru/programmers/api-functions/api-register-function.xml @@ -1,4 +1,4 @@ - + @@ -16,26 +16,26 @@ mixedcache_attrs - . - , . + Используется для динамической регистрации плагинов функций шаблона. + Передается наименование функции шаблона и имя функции, реализующей ее. - PHP impl - (a) , , (b) - array(&$object, $method), - &$object - , $method , - , (c) - array($class, $method), - $class , - $method - . + Функция обратного вызова PHP impl может быть + (a) строка, содержащая имя функции, или (b) массив вида + array(&$object, $method), где + &$object является ссылкой на + объект, а $method является строкой, + содержащей имя метода, или (c) массив в форме + array($class, $method), где + $class является именем класса, а + $method является методом этого + класса. - cacheable cache_attrs - . - . + cacheable и cache_attrs + в большинстве случаев могут быть опущены. Смотрите Управление кэшированием результатов работы плагинов + для получения информации об их правильном использовании. register_function @@ -53,8 +53,8 @@ function print_current_date($params) } } -// Smarty : {date_now} -// {date_now format="%Y/%m/%d"} . +// теперь вы можете использовать ее в Smarty чтобы вывести текущую дату: {date_now} +// или {date_now format="%Y/%m/%d"} чтобы задать формат. ?> ]]> diff --git a/docs/ru/programmers/api-functions/api-register-modifier.xml b/docs/ru/programmers/api-functions/api-register-modifier.xml index 3888ce4e..4965908f 100644 --- a/docs/ru/programmers/api-functions/api-register-modifier.xml +++ b/docs/ru/programmers/api-functions/api-register-modifier.xml @@ -1,4 +1,4 @@ - + @@ -14,37 +14,37 @@ mixedimpl - . - , . + Используйте функцию для динамической регистрации плагина модификатора. В функцию + передаются имя модификатора и имя функции, реализующей его. - - php impl (a) , - , (b) - array(&$object, $method), - &$object - , $method , - , (c) - array($class, $method), - $class , - $method - . + Коллбек-функцией php impl может быть (a) строка, + содержащая имя функции, или (b) массив вида + array(&$object, $method), где + &$object является ссылкой на + объект, а $method является строкой, + содержащей имя метода, или (c) массив в форме + array($class, $method), где + $class является именем класса, а + $method является методом этого + класса. - cacheable cache_attrs - . - . + cacheable и cache_attrs + в большинстве случаев могут быть опущены. Смотрите Управление кэшированием результатов работы плагинов + для получения информации об их правильном использовании. register_modifier register_modifier("sslash"," stripslashes"); -// {$var|sslash} +// теперь можно использовать {$var|sslash} чтобы вырезать слеши из переменной ?> ]]> diff --git a/docs/ru/programmers/api-functions/api-register-object.xml b/docs/ru/programmers/api-functions/api-register-object.xml index 5ae12eec..1882ae25 100644 --- a/docs/ru/programmers/api-functions/api-register-object.xml +++ b/docs/ru/programmers/api-functions/api-register-object.xml @@ -1,4 +1,4 @@ - + @@ -17,12 +17,12 @@ arrayblock_methods - . - - . + Функция регестрирует объект для использования в шаблоне. Обратитесь к + разделу Объекты + за примерами. - . + См. также unregister_object. diff --git a/docs/ru/programmers/api-functions/api-register-outputfilter.xml b/docs/ru/programmers/api-functions/api-register-outputfilter.xml index 176035ab..42ffb278 100644 --- a/docs/ru/programmers/api-functions/api-register-outputfilter.xml +++ b/docs/ru/programmers/api-functions/api-register-outputfilter.xml @@ -1,4 +1,4 @@ - + @@ -13,23 +13,23 @@ mixedfunction - - , , - . - - . + Используйте функцию для динамической регистрации фильтров + вывода, чтобы управлять выводом шаблона перед тем, как он + будет отображен. Обратитесь к + фильтрам + вывода шаблонов для получения дополнительной информации. - - php function (a) , - , (b) - array(&$object, $method), - &$object - , $method , - , (c) - array($class, $method), - $class , - $method - . + Коллбек-функцией php function может быть (a) строка, + содержащая имя функции, или (b) массив вида + array(&$object, $method), где + &$object является ссылкой на + объект, а $method является строкой, + содержащей имя метода, или (c) массив в форме + array($class, $method), где + $class является именем класса, а + $method является методом этого + класса. diff --git a/docs/ru/programmers/api-functions/api-register-postfilter.xml b/docs/ru/programmers/api-functions/api-register-postfilter.xml index 7da839d7..9b281c49 100644 --- a/docs/ru/programmers/api-functions/api-register-postfilter.xml +++ b/docs/ru/programmers/api-functions/api-register-postfilter.xml @@ -1,4 +1,4 @@ - + @@ -13,22 +13,22 @@ mixedfunction - , - . - - . + Используйте функцию для динамической регистрации постфильтров, + в целях управления выводом шаблонов уже после их компиляции. + Обратитесь к постфильтрам + шаблонов для получения дополнительной информации. - - php function (a) , - , (b) - array(&$object, $method), - &$object - , $method , - , (c) - array($class, $method), - $class , - $method - . + Коллбек-функцией php function может быть (a) строка, + содержащая имя функции, или (b) массив вида + array(&$object, $method), где + &$object является ссылкой на + объект, а $method является строкой, + содержащей имя метода, или (c) массив в форме + array($class, $method), где + $class является именем класса, а + $method является методом этого + класса. diff --git a/docs/ru/programmers/api-functions/api-register-prefilter.xml b/docs/ru/programmers/api-functions/api-register-prefilter.xml index 7f72bebf..c9c9200c 100644 --- a/docs/ru/programmers/api-functions/api-register-prefilter.xml +++ b/docs/ru/programmers/api-functions/api-register-prefilter.xml @@ -1,4 +1,4 @@ - + @@ -13,22 +13,22 @@ mixedfunction - , - . - - . + Используйте функцию для динамической регистрации префильтра, + в целях управления содержимым шаблона перед его компиляцией. + Обратитесь к префильтрам + шаблонов для получения дополнительной информации. - - php function (a) , - , (b) - array(&$object, $method), - &$object - , $method , - , (c) - array($class, $method), - $class , - $method - . + Коллбек-функцией php function может быть (a) строка, + содержащая имя функции, или (b) массив вида + array(&$object, $method), где + &$object является ссылкой на + объект, а $method является строкой, + содержащей имя метода, или (c) массив в форме + array($class, $method), где + $class является именем класса, а + $method является методом этого + класса. diff --git a/docs/ru/programmers/api-functions/api-register-resource.xml b/docs/ru/programmers/api-functions/api-register-resource.xml index 5ca7477c..ce95032d 100644 --- a/docs/ru/programmers/api-functions/api-register-resource.xml +++ b/docs/ru/programmers/api-functions/api-register-resource.xml @@ -1,4 +1,4 @@ - + @@ -14,29 +14,29 @@ arrayresource_funcs - , - Smarty. php-. - - . + Используйте эту функцию, чтобы динамически зарегистрировать + плагин ресурса в Smarty. Передается имя ресурса и массив php-функций. + Обратитесь к ресурсам шаблонов + для получениядополнительной информации. - + Техническое замечание - . - - , $smarty->display('c:/path/to/index.tpl'); + Имя ресурса должно состоять минимум из двух букв. Однобуквенные + имена ресурсов будут игнорироваться и испольщоваться как часть файлового + пути, например $smarty->display('c:/path/to/index.tpl'); - php- resource_funcs - 4 5 . - , - -: "source", - "timestamp", "secure" "trusted" . - , - , - , 4 , - "source", "timestamp", "secure" "trusted". + Массив php-функций resource_funcs + должен содержать 4 или 5 элементов. + В случае четырех элементов, элементы являются + соответствующими коллбек-функциями: "source", + "timestamp", "secure" и "trusted" функции ресурса. + В случае пяти элементов, первый элемент должен быть + ссылкой на объект или имя класса, объект или класс которого + реализовывает ресурс, а 4 следующих элементов должны быть названиями методов, + реализующимх "source", "timestamp", "secure" и "trusted". register_resource diff --git a/docs/ru/programmers/api-functions/api-template-exists.xml b/docs/ru/programmers/api-functions/api-template-exists.xml index 423cfed4..e1fef437 100644 --- a/docs/ru/programmers/api-functions/api-template-exists.xml +++ b/docs/ru/programmers/api-functions/api-template-exists.xml @@ -1,4 +1,4 @@ - + @@ -13,9 +13,9 @@ stringtemplate - , . - - , . + Эта функция проверяет, существует ли определенный шаблон. + Здесь можно указать путь к шаблону в файловой системе или + строку ресурса, соответствующую шаблону. diff --git a/docs/ru/programmers/api-functions/api-trigger-error.xml b/docs/ru/programmers/api-functions/api-trigger-error.xml index 4274769c..ab7f792b 100644 --- a/docs/ru/programmers/api-functions/api-trigger-error.xml +++ b/docs/ru/programmers/api-functions/api-trigger-error.xml @@ -1,4 +1,4 @@ - + @@ -14,11 +14,11 @@ intlevel - - Smarty. level - , PHP- - trigger_error(), .. E_USER_NOTICE, E_USER_WARNING, . - E_USER_WARNING. + Эта функция может быть использована для вывода сообщения об + ошибке средствами Smarty. Параметр level + может быть равен одному из значений, используемых для PHP-функции + trigger_error(), т.е. E_USER_NOTICE, E_USER_WARNING, и др. + По умолчанию установлено значение E_USER_WARNING. diff --git a/docs/ru/programmers/api-functions/api-unregister-block.xml b/docs/ru/programmers/api-functions/api-unregister-block.xml index 2f8c7725..4902256b 100644 --- a/docs/ru/programmers/api-functions/api-unregister-block.xml +++ b/docs/ru/programmers/api-functions/api-unregister-block.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ stringname - . - . + Используйте функцию для динамической дерегистрации плагина блоковой функции. + В качестве аргумента передается имя функции. diff --git a/docs/ru/programmers/api-functions/api-unregister-compiler-function.xml b/docs/ru/programmers/api-functions/api-unregister-compiler-function.xml index 4fcd8443..6e7fae44 100644 --- a/docs/ru/programmers/api-functions/api-unregister-compiler-function.xml +++ b/docs/ru/programmers/api-functions/api-unregister-compiler-function.xml @@ -1,4 +1,4 @@ - + @@ -13,9 +13,9 @@ stringname - - . - . + Используйте функцию для динамической дерегистрации + функции компиляции. В качестве аргумента передается + имя функции компиляции. diff --git a/docs/ru/programmers/api-functions/api-unregister-function.xml b/docs/ru/programmers/api-functions/api-unregister-function.xml index 41f8c08d..ac48f9c0 100644 --- a/docs/ru/programmers/api-functions/api-unregister-function.xml +++ b/docs/ru/programmers/api-functions/api-unregister-function.xml @@ -1,4 +1,4 @@ - + @@ -13,15 +13,15 @@ stringname - . - . + Используйте функцию для динамической деригистрации плагина функции шаблона. + В качестве аргумента передается имя функции шаблона. unregister_function unregister_function("fetch"); ?> diff --git a/docs/ru/programmers/api-functions/api-unregister-modifier.xml b/docs/ru/programmers/api-functions/api-unregister-modifier.xml index 168e344a..800a656e 100644 --- a/docs/ru/programmers/api-functions/api-unregister-modifier.xml +++ b/docs/ru/programmers/api-functions/api-unregister-modifier.xml @@ -1,4 +1,4 @@ - + @@ -13,16 +13,16 @@ stringname - - . - . + Используйте функцию для динамической дерегистрации + плагина модификатора. В качестве аргумента передается + имя модификатора. unregister_modifier unregister_modifier("strip_tags"); ?> diff --git a/docs/ru/programmers/api-functions/api-unregister-object.xml b/docs/ru/programmers/api-functions/api-unregister-object.xml index 956f80c0..c458b1d7 100644 --- a/docs/ru/programmers/api-functions/api-unregister-object.xml +++ b/docs/ru/programmers/api-functions/api-unregister-object.xml @@ -1,4 +1,4 @@ - + @@ -13,12 +13,12 @@ stringobject_name - . + Используется для дерегистрации объекта. - . - register_object - + См. также + register_object и раздел + Объекты diff --git a/docs/ru/programmers/api-functions/api-unregister-outputfilter.xml b/docs/ru/programmers/api-functions/api-unregister-outputfilter.xml index eb334768..16b6ea65 100644 --- a/docs/ru/programmers/api-functions/api-unregister-outputfilter.xml +++ b/docs/ru/programmers/api-functions/api-unregister-outputfilter.xml @@ -1,4 +1,4 @@ - + @@ -13,7 +13,7 @@ stringfunction_name - . + Используйте функцию для динамической дерегистрации фильтра вывода. diff --git a/docs/ru/programmers/api-functions/api-unregister-postfilter.xml b/docs/ru/programmers/api-functions/api-unregister-postfilter.xml index c2afb1fb..7b47b6ad 100644 --- a/docs/ru/programmers/api-functions/api-unregister-postfilter.xml +++ b/docs/ru/programmers/api-functions/api-unregister-postfilter.xml @@ -1,4 +1,4 @@ - + @@ -13,7 +13,7 @@ stringfunction_name - . + Используйте функцию для динамической дерегистрации постфильтра. diff --git a/docs/ru/programmers/api-functions/api-unregister-prefilter.xml b/docs/ru/programmers/api-functions/api-unregister-prefilter.xml index d2b357f9..8f335ee1 100644 --- a/docs/ru/programmers/api-functions/api-unregister-prefilter.xml +++ b/docs/ru/programmers/api-functions/api-unregister-prefilter.xml @@ -1,4 +1,4 @@ - + @@ -13,7 +13,7 @@ stringfunction_name - . + Используйте для динамической дерегистрации префильтра. diff --git a/docs/ru/programmers/api-functions/api-unregister-resource.xml b/docs/ru/programmers/api-functions/api-unregister-resource.xml index 46772d31..fc39974d 100644 --- a/docs/ru/programmers/api-functions/api-unregister-resource.xml +++ b/docs/ru/programmers/api-functions/api-unregister-resource.xml @@ -1,4 +1,4 @@ - + @@ -13,8 +13,8 @@ stringname - - . . + Используйте функцию для динамической дерегистрации + плагина ресурса. В качестве аргумента передается имя ресурса. unregister_resource diff --git a/docs/ru/programmers/api-variables.xml b/docs/ru/programmers/api-variables.xml index 52d8eb4d..3a5651ac 100644 --- a/docs/ru/programmers/api-variables.xml +++ b/docs/ru/programmers/api-variables.xml @@ -1,8 +1,8 @@ - + - Smarty + Переменные класса Smarty &programmers.api-variables.variable-template-dir; &programmers.api-variables.variable-compile-dir; &programmers.api-variables.variable-config-dir; diff --git a/docs/ru/programmers/api-variables/variable-autoload-filters.xml b/docs/ru/programmers/api-variables/variable-autoload-filters.xml index af77cbb9..9b05e584 100644 --- a/docs/ru/programmers/api-variables/variable-autoload-filters.xml +++ b/docs/ru/programmers/api-variables/variable-autoload-filters.xml @@ -1,14 +1,14 @@ - + $autoload_filters - - , , , - Smarty . - , , - - . : + При необходимости загрузки при каждом вызове шаблонов некоторого + количества фильтров, вы можете определить их, используя эту переменную, + и Smarty автоматически их загрузит. Переменная представляет из себя + ассоциативный массив, ключи в котором являются типами фильтров, а значения + - массивами имен фильтров. Например: + $cache_dir - , . - "./cache". , - , - . - - , . + Имя каталога, в котором хранится кэш шаблонов. По умолчанию + установлено в "./cache". Это означает, что поиск каталога с кэшем + будет производиться в том же каталоге, в котором выполняется + скрипт. Вы также можете использовать собственную функцию-обработчик + для управления файлами кэша, которая будет игнорировать этот параметр. - + Техническое замечание - , - . include_path . + При установке этого параметра можно использовать как относительные, + так и абсолютные пути. Для создаваемых файлов include_path не используется. - + Техническое замечание - - -. + Не рекомендуется помещать этот каталог внутри корневого каталога документов + веб-сервера. diff --git a/docs/ru/programmers/api-variables/variable-cache-handler-func.xml b/docs/ru/programmers/api-variables/variable-cache-handler-func.xml index d7ea696f..8f21123d 100644 --- a/docs/ru/programmers/api-variables/variable-cache-handler-func.xml +++ b/docs/ru/programmers/api-variables/variable-cache-handler-func.xml @@ -1,14 +1,14 @@ - + $cache_handler_func - - , $cache_dir. - - - . + Вы можете добавить собственную функцию для управления файлами кэша + вместо вызовов встроенного метода, используя $cache_dir. + За дополнительной информацией обратитесь к разделу + Управление + кэшированием. $cache_lifetime - , - . . - $caching "true" - $cache_lifetime. -1 - . 0 - ( , - + Задает длительность времени в секундах, в течение которого кэш шаблона + будет актуальным. По истечении этого времени кэш будет регенерирован. + Переменная $caching должна быть установлена в "true" при использовании + $cache_lifetime. Значение переменной -1 задает неограниченное время + жизни кэша. Значение переменной 0 вызовет постоянную его регенерацию + (подходит только для тестирования, для отключения кэширования более + целесообразно устанавливать $caching = false.) - $force_compile - , , - . , - clear_all_cache(), - () - + Если $force_compile + активировано, файлы кэша каждый раз будут регенерироваться, + отключая таким образом кэширование. Вы можете очистить сразу все файлы кэша, + используя функцию clear_all_cache(), + или в случае с конкретными файлами (группами) кэша - при помощи функции clear_cache(). - + Техническое замечание - , - $caching - = 2, $cache_lifetime - display() fetch(). + Если вы хотите назначить конкретным шаблонам собственное время жизни их кэша, + вы можете сделать это путем установки $caching + = 2, затем установкой $cache_lifetime в нужное значение перед вызовом + display() или fetch(). diff --git a/docs/ru/programmers/api-variables/variable-cache-modified-check.xml b/docs/ru/programmers/api-variables/variable-cache-modified-check.xml index f33f123d..dd879fce 100644 --- a/docs/ru/programmers/api-variables/variable-cache-modified-check.xml +++ b/docs/ru/programmers/api-variables/variable-cache-modified-check.xml @@ -1,14 +1,14 @@ - + $cache_modified_check - true, Smarty If-Modified-Since - , . - , - "304 Not Modified". - , + Если установлено в true, Smarty будет учитывать If-Modified-Since + заголовок, посланный клиентом. Если время создания кэшированного + файла не изменилось с момента последнего посещения, то взамен его + содержимого будет послан заголовок "304 Not Modified". Это работает + только в случае, если кэшированное содержимое не содержит тэгов insert. diff --git a/docs/ru/programmers/api-variables/variable-caching.xml b/docs/ru/programmers/api-variables/variable-caching.xml index b09bb440..3dfeda58 100644 --- a/docs/ru/programmers/api-variables/variable-caching.xml +++ b/docs/ru/programmers/api-variables/variable-caching.xml @@ -1,27 +1,27 @@ - + $caching - Smarty, . - 0, .. . - , - - . - . 1 2 . - 1, - $cache_lifetime. 2 Smarty - cache_lifetime . - cache_lifetime - - . . + Сообщает Smarty, будет или нет кэшироваться вывод шаблонов. По умолчанию + этот параметр установлен в 0, т.е. не активирован. Если ваши шаблоны + генерируют большие объемы кода, рекомендуется активировать кэширование - это + даст ощутимый прирост в производительности. Вы также можете использовать + множественный кэш шаблонов. Значение 1 или 2 активирует кэширование. + При задании значения 1, для определения времени жизни кэша используется + текущее значение переменной $cache_lifetime. Значение 2 задает Smarty + использовать значение cache_lifetime во время окончания генерации кэша. В + этом случае вы можете устанавливать cache_lifetime непосредственно перед + обработкой шаблона для осуществления гибкого контроля за истечением времени + жизни конкретного экземпляра кэша. См. также is_cached. - $compile_check , , - , - , . $force_compile, - . + Если параметр $compile_check активирован, кэш будет обновляться в случае, + когда любой из шаблонов или конфигурационных файлов, являющихся частью + этого кэша, был изменен. Если активирован $force_compile, кэш будет + обновляться во всех случаях. $compile_check - - Smarty , - . , - . , , - . - true. , - ( ), - . , - $compile_check "false" - . , - "false", , ** - , . - caching compile_check , - . . - $force_compile + При каждом вызове РНР-приложения Smarty проверяет, изменился или нет + текущий шаблон с момента последней компиляции. Если шаблон изменился, + он перекомпилируется. В случае, если шаблон еще не был скомпилирован, + его компиляция производится с игнорированием значения этого параметра. + По умолчанию эта переменная установлена в true. В момент, когда приложение + начнет работать в реальных условиях (шаблоны больше не будут изменяться), + этап проверки компиляции становится ненужным. В этом случае проверьте, чтобы + переменная $compile_check была установлена в "false" для достижения + максимальной производительности. Учтите, что если вы присвоите этой переменной + значение "false", и файл шаблона будет изменен, вы *НЕ* увидите изменений + в выводе шаблона до тех пор, пока шаблон не будет перекомпилирован. Если + caching и compile_check активированы, файлы кэша будут регенерированы при + обновлении связанных с ним шаблонов или конфигурационных файлов. См. + $force_compile или clear_compiled_tpl. diff --git a/docs/ru/programmers/api-variables/variable-compile-dir.xml b/docs/ru/programmers/api-variables/variable-compile-dir.xml index 272c5d31..08775144 100644 --- a/docs/ru/programmers/api-variables/variable-compile-dir.xml +++ b/docs/ru/programmers/api-variables/variable-compile-dir.xml @@ -1,26 +1,26 @@ - + $compile_dir - , . - "./templates_c", .. - , - . + Имя каталога, в котором хранятся компилированные шаблоны. По + умолчанию установлено в "./templates_c", т.е. поиск каталога с + компилированными шаблонами будет производиться в том же каталоге, + в котором выполняется скрипт. - + Техническое замечание - , - . include_path . + При установке этого параметра можно использовать как относительные, + так и абсолютные пути. Для создаваемых файлов include_path не используется. - + Техническое замечание - - -. + Не рекомендуется помещать этот каталог внутри корневого каталога документов + веб-сервера. diff --git a/docs/ru/programmers/api-variables/variable-compile-id.xml b/docs/ru/programmers/api-variables/variable-compile-id.xml index e38600b3..e6a9b7c4 100644 --- a/docs/ru/programmers/api-variables/variable-compile-id.xml +++ b/docs/ru/programmers/api-variables/variable-compile-id.xml @@ -1,30 +1,30 @@ - + $compile_id - . - compile_id , - , - . + Постоянный идентификатор компиляции. Как альтернативу использованию одного + и того же compile_id при каждом вызове функции, вы можете самостоятельно + задавать этот идентификатор, и в этом случае будет безусловно автоматически + это значение. - compile_id , - - compile_dir template_dir. - compile_id template_dir, Smarty - compile_id. + С помощью compile_id вы можете обойти ограничение, из-за которого вы не + можете использовать один compile_dir для разных template_dir. + Если вы установите уникальный compile_id для каждого template_dir, Smarty + сможет различать компилированные шаблоны по их compile_id. - , , - ( , ) - , - compile_id - . + К примеру, если у вас есть префильтр, локализирующий ваш ваши шаблоны + (проще говоря, переводит части шаблонов на другой язык) во время + компиляции, то вам следует использовать текущий язык в качестве + compile_id и вы получите по набору скомпилированных шаблонов для + каждого используемого языка. - - / vhost', : + Другим примером может быть использование одной компиляционной директории + для нескольких доменов / нескольких vhost'ов, к примеру: compile_id diff --git a/docs/ru/programmers/api-variables/variable-compiler-class.xml b/docs/ru/programmers/api-variables/variable-compiler-class.xml index 7cf4b711..f87e1a85 100644 --- a/docs/ru/programmers/api-variables/variable-compiler-class.xml +++ b/docs/ru/programmers/api-variables/variable-compiler-class.xml @@ -1,12 +1,12 @@ - + $compiler_class - -, Smarty - . 'Smarty_Compiler'. - . + Задает имя класса-компилятора, который Smarty будет использовать + для компиляции шаблонов. По умолчанию это 'Smarty_Compiler'. Только + для продвинутых пользователей. $config_booleanize - true, - on/true/yes off/false/no . - , : - {if #foobar#} ... {/if}. foobar on, true yes, - {if}. true. + Если установлено в true, значения параметров конфигурационных файлов + on/true/yes и off/false/no будут конвертированы в булевы значения автоматически. + В этом случае вы можете использовать в шаблоне конструкции, подобные этой: + {if #foobar#} ... {/if}. Если foobar равно on, true или yes, будет осуществлен + переход по условию {if}. По умолчанию равно true. $config_dir - , - . "./configs", .. - - , . + Каталог для хранения конфигурационных файлов, используемых + в шаблонах. По умолчанию установлено в "./configs", т.е. поиск + каталога с конфигурационными файлами будет производиться в том + же каталоге, в котором выполняется скрипт. - + Техническое замечание - - -. + Не рекомендуется помещать этот каталог внутри корневого каталога документов + веб-сервера. diff --git a/docs/ru/programmers/api-variables/variable-config-fix-newlines.xml b/docs/ru/programmers/api-variables/variable-config-fix-newlines.xml index c370e4b2..634ee898 100644 --- a/docs/ru/programmers/api-variables/variable-config-fix-newlines.xml +++ b/docs/ru/programmers/api-variables/variable-config-fix-newlines.xml @@ -1,12 +1,12 @@ - + $config_fix_newlines - true, mac dos (\r \r\n) - \n - . true. + Если установлено в true, переводы строк в стиле mac и dos (\r и \r\n) + в конфигурационных файлах будут конвертированы в \n при синтаксическом + разборе. По умолчанию равно true. $config_overwrite - true, , , - . , - . , - - . true. + Если установлено в true, переменные, полученные из конфигурационных файлов, + будут перекрывать все остальные. В лбом случае, перемнные будут помещены в + массив. Это удобно, когда вы хотите хранить массив данных в конфигурационном + файле - просто задавайте каждый элемент много раз. По умолчанию true. $config_read_hidden - true, ( , ) - . , - false: - (, ) - , , . - false. + Если установлено в true, скрытые разделы (имеющие имя, начинающиеся с точки) + в конфигурационных файлах могут быть доступными из шаблонов. Как правило, + следует устанавливать значение этого параметра в false: в этом случае вы + можете хранить важные данные (например, параметры подключения к базе данных) + в конфигурационных файлах, не беспокоясь, что они будут загружены в шаблон. + По умолчанию false. $debug_tpl - , (debugging console). - debug.tpl, SMARTY_DIR. diff --git a/docs/ru/programmers/api-variables/variable-debugging-ctrl.xml b/docs/ru/programmers/api-variables/variable-debugging-ctrl.xml index 05cd7191..d548714c 100644 --- a/docs/ru/programmers/api-variables/variable-debugging-ctrl.xml +++ b/docs/ru/programmers/api-variables/variable-debugging-ctrl.xml @@ -1,15 +1,15 @@ - + $debugging_ctrl - . - NONE . - URL, - , QUERY_STRING - SMARTY_DEBUG. , - $debugging true. + Позволяет активировать режим отладки альтернативными путями. + Значение NONE запрещает использовать альтернативные методы. При + значении переменной URL, режим отладки будет активирован для данного + вызова скрипта в случае, если в QUERY_STRING будет обнаружено + ключевое слово SMARTY_DEBUG. Этот параметр игнорируется, если + $debugging установлено в true. $debugging - debugging - console - javascript , - - . + Активирует debugging + console - порожденное при помощи javascript окно браузера, + содержащее информацию о подключенных шаблонах и загруженных + переменных для текущей страницы. $default_modifiers - , . - , HTML- , - array('escape:"htmlall"'); - - , "smarty" - "nodefaults", {$var|smarty:nodefaults}. + Массив модификаторов, неявно применяемых ко всем переменным шаблона. + Например, для HTML-экранирования каждой переменной по умолчанию, используется + конструкция array('escape:"htmlall"'); Для исключения действия таких + модификаторов на какую-либо переменную, применяйте специальный "smarty" + модификатор с параметром "nodefaults", например {$var|smarty:nodefaults}. $default_resource_type - Smarty, . - 'file', - $smarty->display('index.tpl'); $smarty->display('file:index.tpl'); - . . + Это свойство говорит Smarty, какой тип ресурсов использовать по умолчанию. + Значением этого свойства по умолчанию является 'file', так что + $smarty->display('index.tpl'); и $smarty->display('file:index.tpl'); + имеют одинаковый смысл. Обратитесь к главе ресурсы для дополнительной информации. $default_template_handler_func - , , - . + Функция, вызываемая в случае, если шаблон не был получен из + своего источника. $error_reporting - , - error_reporting - display() + Если это свойство имеет ненулевое значние, то оно используется + в качестве значения error_reporting внутри + display() и fetch(). - - . + При включенном режиме отладки это значение + игнорируется и уровень обработки ошибок не меняется. $force_compile - Smarty () . - $compile_check - . - , - : , () - . + Указывает Smarty (пере)компилировать шаблоны при каждом вызове. + Этот параметр перекрывает действие $compile_check и по умолчанию + не активирован. Действие параметра удобно использовать в процессе + разработки и отладки, однако никогда не используйте его в условиях + реальной эксплуатации: если кэширование активировано, файл(ы) кэша + будут каждый раз перезаписываться. $left_delimiter - , . - "{". + Левый разделитель, используемый в языке шаблонов. + По умолчанию равно "{". - . + См. также $right_delimiter. diff --git a/docs/ru/programmers/api-variables/variable-php-handling.xml b/docs/ru/programmers/api-variables/variable-php-handling.xml index 90c8daa0..602dd4e6 100644 --- a/docs/ru/programmers/api-variables/variable-php-handling.xml +++ b/docs/ru/programmers/api-variables/variable-php-handling.xml @@ -1,26 +1,26 @@ - + $php_handling - Smarty, PHP-, - . , - SMARTY_PHP_PASSTHRU. , PHP- - {php}{/php} - . + Этот параметр говорит Smarty, как обращаться с PHP-кодом, встроенным в + шаблоны. Существует четыре возможных значения, значением по умолчанию является + SMARTY_PHP_PASSTHRU. Обратите внимание, что это НЕ влияет на PHP-код + внутри тэгов {php}{/php} + в шаблоне. - SMARTY_PHP_PASSTHRU - Smarty . - SMARTY_PHP_QUOTE - Smarty HTML-. - SMARTY_PHP_REMOVE - Smarty . - SMARTY_PHP_ALLOW - Smarty PHP-. + SMARTY_PHP_PASSTHRU - Smarty показывает тэги без обработки. + SMARTY_PHP_QUOTE - Smarty превращает спецсимволы тэгов в HTML-сущности. + SMARTY_PHP_REMOVE - Smarty удаляет тэги из шалона. + SMARTY_PHP_ALLOW - Smarty будет выполнять тэги как PHP-код. - PHP- . - , - . + Встраивать PHP-код в шаблоны весьма не рекоммендуется. + Вместо этого, используется пользовательские функции или + модификаторы. diff --git a/docs/ru/programmers/api-variables/variable-plugins-dir.xml b/docs/ru/programmers/api-variables/variable-plugins-dir.xml index 439d9be0..9775169f 100644 --- a/docs/ru/programmers/api-variables/variable-plugins-dir.xml +++ b/docs/ru/programmers/api-variables/variable-plugins-dir.xml @@ -1,25 +1,25 @@ - + $plugins_dir - ( ), Smarty - . "plugins" - SMARTY_DIR. , Smarty - SMARTY_DIR, - (cwd, current working - directory), PHP- - include_path. $plugins_dir , - Smarty - , . + Это директория (или директории), в которых Smarty будет искать + необходимые ему плагины. По умолчанию это поддиректория "plugins" + директории SMARTY_DIR. Если вы укажете относительный путь, Smarty + будет в первую очередь искать относительно SMARTY_DIR, затем + оносительно текущей рабочей директории (cwd, current working + directory), а затем относительно каждой директории в PHP-директиве + include_path. Если $plugins_dir является массивом директорий, + Smarty будет искать ваш плагин в каждой директории плагинов + в том порядке, в котором они указаны. - + Техническое замечание - , plugins_dir - include_path. - SMARTY_DIR . + Для улучшения производительности, не нужно настраивать plugins_dir для использования + include_path. Используйте абсолютные пути или относительные пути от + SMARTY_DIR или текущей рабочей директории. diff --git a/docs/ru/programmers/api-variables/variable-request-use-auto-globals.xml b/docs/ru/programmers/api-variables/variable-request-use-auto-globals.xml index d426b67a..c29de41f 100644 --- a/docs/ru/programmers/api-variables/variable-request-use-auto-globals.xml +++ b/docs/ru/programmers/api-variables/variable-request-use-auto-globals.xml @@ -1,17 +1,17 @@ - + $request_use_auto_globals - Smarty $HTTP_*_VARS[] - ($request_use_auto_globals=false - ) - $_*[] ($request_use_auto_globals=true). , - {$smarty.request.*}, {$smarty.get.*} .. - : $request_use_auto_globals true, variable.request.vars.order - , - gpc_order php. + не учитывается, а вместо него используется значение + gpc_order из настроек php. $request_vars_order - , , - variables_order php.ini + Порядок, в котором будут регистрироваться переменные запроса, + наподобие variables_order из php.ini $right_delimiter - , . - "}". + Правый разделитель, используемый в языке шаблонов. + По умолчанию равно "}". - . + См. также $left_delimiter. diff --git a/docs/ru/programmers/api-variables/variable-secure-dir.xml b/docs/ru/programmers/api-variables/variable-secure-dir.xml index 1a99f66e..0dae04c6 100644 --- a/docs/ru/programmers/api-variables/variable-secure-dir.xml +++ b/docs/ru/programmers/api-variables/variable-secure-dir.xml @@ -1,11 +1,11 @@ - + $secure_dir - , . - {include} {fetch} . + Это массив всех локальных директори, которые считаются безопасными. + {include} и {fetch} используют этот параметр при влюченном безопасном режиме. $security_settings - - (security) . : + Это используется для изменения или указания настроек безопасности + когда безопасносить (security) включена. Допустимые значения: - PHP_HANDLING - true/false. true, - $php_handling . - IF_FUNCS - PHP-, - IF. - INCLUDE_ANY - true/false. true, - , + PHP_HANDLING - true/false. Если установлено в true, параметр + $php_handling не проверяется на безопасность. + IF_FUNCS - Это массив имён PHP-функций, разрешенных + к использованию в условиях IF. + INCLUDE_ANY - true/false. Если установлено в true, любой + шаблон может быть подключен из файловой системы, независимо от списка $secure_dir. - PHP_TAGS - true/false. true, - {php}{/php} . - MODIFIER_FUNCS - PHP-, - . - ALLOW_CONSTANTS - true/false. true, - {$smarty.const.name}. - "false" . + PHP_TAGS - true/false. Если установлено в true, тэги + {php}{/php} разрешены к использованию в шаблонах. + MODIFIER_FUNCS - Это массив имён PHP-функций, разрешенных + к использованию в качестве модификаторов переменных. + ALLOW_CONSTANTS - true/false. Если установлено в true, + разрешается использование констант вида {$smarty.const.name}. + По умолчанию равно "false" из соображений безопасности. $security - $security true/false, false. (security) - , , - (, ftp) - . - - , $security_settings: + $security true/false, по умолчанию false. Безопасность (security) + полезна в ситуациях, когда ваши шаблоны редактируют лица, + не заслуживающе вашего доверия (например, через ftp) и вы хотите + сократить риски взлома системы с помощью языка шаблонов. + Включение безопасного режима накладывает следующие ограничения + на язык шаблонов, если только они не изменяются параметром $security_settings: - $php_handling SMARTY_PHP_ALLOW, - SMARTY_PHP_PASSTHRU - PHP- IF, - , $security_settings - , - $secure_dir - {fetch} - , $secure_dir - {php}{/php} - PHP- , - , $security_settings + Если $php_handling установлен в SMARTY_PHP_ALLOW, это + неявно меняет его на SMARTY_PHP_PASSTHRU + PHP-функции запрещены в условиях IF, + кроме тех, которые указаны в $security_settings + Шаблоны могут быть подключены только из директорий, + перечисленных в массиве $secure_dir + Локальные файлы могут быть прочитаны при помощи {fetch} + только из директорий, перечисленных в массиве $secure_dir + Тэги {php}{/php} запрещены + PHP-функции запрещено использовать в виде модификаторов, + кроме тех, которые указаны в $security_settings $template_dir - . - , - . - "./templates", , - templates , - php-. + Это название директории шаблонов по умолчанию. Если вы не + передадите тип ресурса во время подключения файлов, они будут + искаться здесь. Значение по умолчанию - "./templates", а это значит, что + движок будет искать шаблоны в поддиректории templates той директории, в которой + выполняется php-скрипт. - + Техническое замечание - - -. + Не рекоммендуется размещать эту директорию в пределах + корневой директории веб-сервера. diff --git a/docs/ru/programmers/api-variables/variable-trusted-dir.xml b/docs/ru/programmers/api-variables/variable-trusted-dir.xml index 5572da6b..ad0f701d 100644 --- a/docs/ru/programmers/api-variables/variable-trusted-dir.xml +++ b/docs/ru/programmers/api-variables/variable-trusted-dir.xml @@ -1,13 +1,13 @@ - + $trusted_dir - $trusted_dir $security. - , . - , - php-, - {include_php}. + $trusted_dir используется только при включенном параметре $security. Это массив + всех директорий, которые считаются надёжными. Надёжные директории - это директории, + в которых вы храните свои php-скрипты, которые включаются прямо в шаблоны при помощи + директивы {include_php}. $use_sub_dirs - false PHP - Smarty. , , - . + Установите это в false если ваше окружение PHP не разрешает создание директорий + от имени Smarty. Поддиректории более эффективны, так что используйте их, + если можете. - + Техническое замечание - Smarty 2.6.2, use_sub_dirs false. + Начиная с версии Smarty 2.6.2, значением по умолчанию для use_sub_dirs является false. diff --git a/docs/ru/programmers/caching.xml b/docs/ru/programmers/caching.xml index 9fae0954..3301695f 100644 --- a/docs/ru/programmers/caching.xml +++ b/docs/ru/programmers/caching.xml @@ -1,27 +1,27 @@ - + - + Кэширование - display() fetch() - . , - . - , . - display() fetch() , - , .. + Кэширование используется для ускорения вызовов display() или fetch() при помощи сохранения результатов + их работы в файл. Если доступна кэшированная версия вызова, она отображается + вместо повторной обработки шаблона. Кэширование может значительно ускорить + работу, особенно в случае длительно обрабатываемых шаблонов. + Так как результат работы методов display() или fetch() кэшируется, один файл кэша вполне может + состоять из нескольких файлов шаблонов, конфигурационных файлов и т.д. - , , - . , - , , - . - , , - , . + Так как шаблоны динамичны, очень важно быть осторожным относительно того, + что вы кэшируете и на какой период. Например, если вы отображаете главную + страницу вашего сайта, которая меняет своё содержимое достаточно редко, + хорошей идеей может быть кэширование этой страницы на час и более. + С другой стороны, если вы отображаете страницу с картой погоды, которая + обновляется ежеминутно, смысла в кэшировании этой страницы нет. &programmers.caching.caching-setting-up; &programmers.caching.caching-multiple-caches; diff --git a/docs/ru/programmers/caching/caching-cacheable.xml b/docs/ru/programmers/caching/caching-cacheable.xml index 830c6c7b..03a58c89 100644 --- a/docs/ru/programmers/caching/caching-cacheable.xml +++ b/docs/ru/programmers/caching/caching-cacheable.xml @@ -1,35 +1,35 @@ - + - + Управление кэшированием результатов работы плагинов - Smarty-2.6.0, - . register_block, - register_compiler_function register_function - $cacheable true, - Smarty 2.6.0 + Начиная с плагинов Smarty-2.6.0, кэшируемость плагинов может быть объявлена + во время их регистрации. Третий аргумент у register_block, + register_compiler_function и register_function называется + $cacheable и имеет значение по умолчанию true, + что соответствует поведению плагинов Smarty версии ранее 2.6.0 - $cacheable=false, - , , - . + Если плагин регистрируется с $cacheable=false, плагин вызывается + каждый раз, когда страница отображается, даже если сама страница + кэширована. Поведение плагина немного похоже на функцию insert. - {insert}, - . - - + В отличие от {insert}, + атрибуты плагина не кэшируются по умолчанию. Они могут быть + объявлены как кэшируемые при помощи четвертого параметра - $cache_attrs. $cache_attrs - , , - , - , , . + это массив имен атрибутов, которые должны кэшироваться, чтобы + функция плагина брала значение в том виде, в котором оно было в момент + помещения страницы в кэш, каждый раз, когда страница запрашивается из кэша. - + Предотвращение кэширования результата работы плагина register_function('remaining', 'remaining_seconds', false, array('endtime')); if (!$smarty->is_cached('index.tpl')) { - // $obj ... + // извлекаем $obj из БД и присваиваем... $smarty->assign_by_ref('obj', $obj); } @@ -57,24 +57,24 @@ $smarty->display('index.tpl'); ]]> - index.tpl: + Шаблон index.tpl: endtime} +Оставшееся время: {remaining endtime=$obj->endtime} ]]> - endtime $obj - , . - endtime , , - , - . + Количество секунд до endtime объекта $obj изменяется при каждом + обновлении страницы, даже если страница кэширована. Так как + атрибут endtime кэширован, объект извлекается из базы данных в тот момент, + когда страница помещается в кэш, но не во время последующих запросов + к странице. - + Предотвращение кэширования части страницы display('index.tpl'); ]]> - index.tpl: + Шаблон index.tpl: @@ -112,10 +112,10 @@ $smarty->display('index.tpl'); - , . - "", - "". - {dynamic}...{/dynamic} , - . + Во время обновления страницы вы заметите, что даты отличаются. + Одна является "динамической", другая - "статической". Вы можете поместить + в конструкцию {dynamic}...{/dynamic} любой код и быть уверенным, + что он не будет помещён в кэш вместе с остальной частью страницы. diff --git a/docs/ru/programmers/caching/caching-groups.xml b/docs/ru/programmers/caching/caching-groups.xml index 46488241..2fe084c1 100644 --- a/docs/ru/programmers/caching/caching-groups.xml +++ b/docs/ru/programmers/caching/caching-groups.xml @@ -1,40 +1,40 @@ - + - + Групповое кэширование - , cache_id. - , "|" - cache_id. . + Вы можете сделать группировку более продуманной, используя групповые значения cache_id. + В таком случае, каждая подгруппа отделяется знаком вертикальной черты "|" в + значении cache_id. Возможно создавать любое количество подгрупп. - . - , "a|b|c" - "/a/b/c/". clear_cache(null,"a|b|c") - , - "/a/b/c/*". clear_cache(null,"a|b") - "/a/b/*". compile_id, - clear_cache(null,"a|b","foo"), : - "/a/b/c/foo/". , - clear_cache("foo.tpl","a|b|c"), Smarty - "/a/b/c/foo.tpl". - , "/a/b/*/foo.tpl" - - . - , - . + Вы можете представить себе группы кэширования в виде иерархии каталогов. + К примеру, группа кэширования "a|b|c" соответствует структуре каталогов + "/a/b/c/". clear_cache(null,"a|b|c") - это всё равно, что удалить файлы из + "/a/b/c/*". clear_cache(null,"a|b") соответствует удалению файлов + "/a/b/*". Если вы укажете compile_id, например + clear_cache(null,"a|b","foo"), он добавляется в конец группы кэширования: + "/a/b/c/foo/". Если вы укажете имя шаблона, например + clear_cache("foo.tpl","a|b|c"), то Smarty попытается удалить + "/a/b/c/foo.tpl". Вы НЕ можете удалить определенный шаблон из + нескольких групп кэширования, наподобие "/a/b/*/foo.tpl" - группы кэширования + работают ТОЛЬКО слева направо. Вам нужно будет сгруппировать шаблоны + под единой иерархией групп кэширования, чтобы иметь возможность очистить + их как группу. - . - , - . , - "themes/blue/index.tpl" - "blue", , - , - display("themes/blue/index.tpl","themes|blue"), : + Групповое кэширование не следует путать с иерархией директорий шаблонов. + Групповое кэширование не имеет представления о том, как структурированы + ваши шаблоны. К примеру, если структура ваших шаблонов выглядит как + "themes/blue/index.tpl" и вы хотите иметь возможность очистить все файлы кэша + для темы "blue", вам нужно создать такую структуру групп кэширования, которая + бы повторяла файловую структуру ваших шаблонов, например + display("themes/blue/index.tpl","themes|blue"), а затем очистить их вот так: clear_cache(null,"themes|blue"). - cache_id + Группы в cache_id caching = true; -// "sports|basketball" +// Удалить все кэшированные копии подгруппы "sports|basketball" $smarty->clear_cache(null,"sports|basketball"); -// "sports", -// "sports|basketball", "sports|(anything)|(anything)|(anything)|..." +// Удалить все кэшированные копии группы "sports", +// включая "sports|basketball", или "sports|(anything)|(anything)|(anything)|..." $smarty->clear_cache(null,"sports"); $smarty->display('index.tpl',"sports|basketball"); diff --git a/docs/ru/programmers/caching/caching-multiple-caches.xml b/docs/ru/programmers/caching/caching-multiple-caches.xml index 7e35861d..43481cad 100644 --- a/docs/ru/programmers/caching/caching-multiple-caches.xml +++ b/docs/ru/programmers/caching/caching-multiple-caches.xml @@ -1,17 +1,17 @@ - + - + Множественное кэширование страниц - display() - fetch(). , display('index.tpl') , - , - . - (cache_id) . + Вы можете создавать несколько кэшированных копий для одного вызова функции display() или + fetch(). Предположим, что по вызову display('index.tpl') должны отображаться данные, + содержимое которых зависит от определенных условий, и вы хотите иметь несколько вариантов + соответствующих кэшированных копий. Для этого необходимо передать в функцию идентификатор + кэша (cache_id) в качестве второго параметра. - display() + Вызов display() с идентификатором кэша display('index.tpl',$my_cache_id); - $my_cache_id display() - cache_id. $my_cache_id - index.tpl. , "article_id" - URL, $my_cache_id cache_id. + В примере мы передали переменную $my_cache_id в функцию display() + в качестве cache_id. Для каждого уникального значения $my_cache_id будет создана + кэшированная копия вывода index.tpl. Здесь, значение "article_id" было передано в скрипт + через URL, присвоено переменной $my_cache_id и использовано как cache_id. - + Техническое замечание - () - Smarty ( PHP-). - article_id URL , - . cache_id - , , - article_id , - article_id , - . - , . , - , article_id 10 , - , - . ! + Будьте очень осторожными при передаче значений от клиента (браузера) + в Smarty (как и в любое PHP-приложение). Хотя приведенный пример + фактического использования article_id прямо из URL выглядит нормально, + он может иметь неприятные последствия. Значение cache_id используется для + создания директории в файловой системе, поэтому, если пользователь решит + передать крайне большое значение article_id или написать скрипт, + который посылает случайные article_id с огромной частотой, это может вызвать + проблемы на уровне сервера. Поэтому вам необходимо в обязательном порядке + проверять данные из форм, перед тем как использовать их. В нашем случае, + мы заранее знаем, что значение article_id имеет длину в 10 символов, состоит + только из букв и цифр, а так же должно являться реальным + идентификатором в базе данных. Все это необходимо проверить! - , cache_id - - is_cached() - clear_cache(), - . + Имейте ввиду, что тоже самое значение cache_id необходимо использовать + как второй параметр + в функциях is_cached() и + clear_cache(), если вы хотите применить + их к конкретному кэшу. - cache_id is_cached() + Передача cache_id в is_cached() caching = true; $my_cache_id = $_GET['article_id']; if(!$smarty->is_cached('index.tpl',$my_cache_id)) { - // , . + // Кэша нет, поэтому присваиваем значение переменным. $contents = get_database_contents(); $smarty->assign($contents); } @@ -77,11 +77,11 @@ $smarty->display('index.tpl',$my_cache_id); - cache_id, null - clear_cache(). + Вы можете удалить все кэшированные копии с конкретным cache_id, передав null в качестве + первого параметра clear_cache(). - cache_id + Удаление всех кэшированных копий с конкретным cache_id caching = true; -// "sports" cache_id +// удаляем все кэшированные копии со значением "sports" в качестве cache_id $smarty->clear_cache(null,"sports"); $smarty->display('index.tpl',"sports"); @@ -97,8 +97,8 @@ $smarty->display('index.tpl',"sports"); - , , - cache_id. + Таким образом, вы можете группировать ваши кэшированные копии, назначая им + одинаковые cache_id. - + Настройка кэширования - , . , - $caching = true ( 1). + Прежде всего, кэширование необходимо активировать. Это можно сделать, + установив $caching = true (или 1). - + Включение кэширования display('index.tpl'); - , display('index.tpl') - , ( ) - $cache_dir. - display('index.tpl'), , - . + При включенном кэшировании, вызываемая функция display('index.tpl') интерпретирует + шаблон как обычно, но также сохраняет копию вывода в файл (кэшированую копию) + в $cache_dir. + При следующем вызове display('index.tpl'), вместо повторной интерпретации шаблона, + будет использована кешированая копия. - + Техническое замечание - $cache_dir , - . ".php", - php-. ! + Файлы в директории $cache_dir имеют те же имена, что и соответствующие + шаблоны. Их имена оканчиваются расширением ".php", но на самом деле они не являются + выполняемыми php-скриптами. Не редактируйте эти файлы! - , - $cache_lifetime. - 3600 1 . , - , . - , $caching = 2. - $cache_lifetime - . + Каждая кэшированая страничка существует на протяжении определенного времени, + указанного в $cache_lifetime. + Значение по умолчанию равно 3600 секундам или 1 часу. После того, как это время + истекает, кэш обновляется. Существует возможность присвоить каждой + кэшированой страничке собственное время жизни, установив $caching = 2. + Смотрите документацию $cache_lifetime + для получения подробных сведений. - cache_lifetime + Установка собственного cache_lifetime для кэшированой копии caching = 2; // +$smarty->caching = 2; // Срок действия только для этой копии -// cache_lifetime index.tpl 5 +// устанавливаем cache_lifetime для index.tpl в 5 минут $smarty->cache_lifetime = 300; $smarty->display('index.tpl'); -// cache_lifetime home.tpl 1 +// устанавливаем cache_lifetime для home.tpl в 1 час $smarty->cache_lifetime = 3600; $smarty->display('home.tpl'); -// : $cache_lifetime , $caching = 2. -// home.tpl -// 1 , Smarty $cache_lifetime. -// home.tpl . -$smarty->cache_lifetime = 30; // 30 +// Примечание: следующая $cache_lifetime настройка не будет работать, когда $caching = 2. +// Срок жизни кэша для home.tpl уже был установлен +// в 1 час, и Smarty больше не будет обращать внимание на значение $cache_lifetime. +// Время жизни кэша home.tpl по прежнему будет истекать по прошествию одного часа. +$smarty->cache_lifetime = 30; // 30 секунд $smarty->display('home.tpl'); ]]> - $compile_check, - , , - . , - , . , - , $compile_check - false. + Если включен параметр $compile_check, + то каждый файл шаблона и конфигурации, связанный с файлом кэша, проверяется на + наличие изменений. Если один из этих файлов был модифицирован с тех пор, как + кэш был создан, кэш немедленно обновляется. Это незначительно повышает нагрузку, + поэтому, для оптимальной производительности оставьте значение $compile_check + равным false. - $compile_check + Включение $compile_check display('index.tpl'); - $force_compile - , . - . - $force_compile , - - $caching = false ( 0). + Если $force_compile + активирован, файлы кэша всегда будут обновляться. Это средство можно + использовать для отключения кэширования во время отладки. + $force_compile обычно используется только в целях отладки, так как более + правильным способом отключения кеширования является установка + $caching = false (или 0). - is_cached() - , . - , , , - , , - . + Функция is_cached() может быть + использована для определения, имеется ли у шаблона работоспособный кэш. + Если у вас есть кэшированый шаблон, которому необходимо, например, + получить выборку из базы данных, вы можете использовать эту функцию, + чтобы пропустить процесс обращения к базе. - is_cached() + Использование is_cached() caching = true; if(!$smarty->is_cached('index.tpl')) { - // , . + // Кэш отсутствует, значит присваеваем значения переменным. $contents = get_database_contents(); $smarty->assign($contents); } @@ -127,23 +127,23 @@ $smarty->display('index.tpl'); - , , - , insert. , - , . - insert , - , . - insert - . + Вы можете сделать так, чтобы часть страницы оставалась динамической, даже + если страница кэшируется, при помощи встроенной функции insert. Например, + кэшироваться может вся страница, за исключением баннера. + Используя функцию insert для баннера, вы можете сохранять + этот элемент динамичным, внутри кэшированой странички. Смотрите + документацию по insert для + получения подробностей и примеров. - - clear_all_cache(), - ( ) - - clear_cache() . + Очистить все файлы кэша можно при помощи функции + clear_all_cache(), а + конкретный файл кэша (или группу) - вызвав + clear_cache() функцию. - + Очистка кэша caching = true; -// +// очищаем все файлы кэша $smarty->clear_all_cache(); -// index.tpl +// очищаем только кэш шаблона index.tpl $smarty->clear_cache('index.tpl'); $smarty->display('index.tpl'); diff --git a/docs/ru/programmers/plugins.xml b/docs/ru/programmers/plugins.xml index c70a8add..09e1e957 100644 --- a/docs/ru/programmers/plugins.xml +++ b/docs/ru/programmers/plugins.xml @@ -1,30 +1,30 @@ - + - - Smarty + Плагины - расширение функциональности Smarty - 2.0 , - Smarty. : + Архитектура версии 2.0 позволяет внедрять плагины, которыми являются + практически все настраиваемые элементы функционала Smarty. Сюда входят: - - - - - - - - - + функции + модификаторы + блоковые функции + функции компилятора + префильтры + постфильтры + фильтры вывода + ресурсы + вставки - , - , - register_* API. - API, - $custom_funcs, $custom_mods - , - API - . + За исключением ресурсов, в целях обратной совместимости с + предыдущими версиями, сохранена возможность регистрации функций + посредством register_* API. + Если вы не используете API, а вместо этого модифицируете свойства + $custom_funcs, $custom_mods и + некоторые другие напрямую, тогда вам придется подогнать ваши скрипты под + использование API или преобразовать добавленную вами функциональность в + плагины. &programmers.plugins.plugins-howto; &programmers.plugins.plugins-naming-conventions; diff --git a/docs/ru/programmers/plugins/plugins-block-functions.xml b/docs/ru/programmers/plugins/plugins-block-functions.xml index ffe07147..6b0c15b5 100644 --- a/docs/ru/programmers/plugins/plugins-block-functions.xml +++ b/docs/ru/programmers/plugins/plugins-block-functions.xml @@ -1,8 +1,8 @@ - + - + Блоковые функции void smarty_block_name @@ -13,80 +13,80 @@ - : {func} .. {/func}. , - . - , , - , {func} - {func} .. {/func}. + Блоковые функции выглядят следующим образом: {func} .. {/func}. Другими словами, + они заключены в определенном блоке шаблона и оперируют содержимым этого блока. + Блоковые функции имеют приоритет перед пользовательскими функциями, имеющими то же имя, + поэтому, вы не сможете использовать одновременно свои функции вида {func} и + блоковые функции {func} .. {/func}. - Smarty : - . + Smarty вызывает ваши функции дважды: + первый раз при открытии тэга и второй раз при закрытии тэга. - . - , - $params . - : - $params['start'] - extract($params) . - , - . + Только открывающий тэг блоковой функции может иметь атрибуты. Все + атрибуты, переданные в функцию из шаблона сохраняются + в $params в виде ассоциативного массива. Вы можете + получить прямой доступ к их значениям: + $params['start'] или использовать + extract($params) для импорта. + Атрибуты, переданные в открывающем тэге доступны для вашей функции + до обработки закрывающего тэга включительно. - $content , - . - , null, - , . - , - Smarty , - . + Значение переменной $content зависит от того, + вызывается ли ваша функция для открывающего тэга или вызов происходит при закрытии тэга. + В случае с открывающим тэгом, это значение будет равно null, а в случае + закрывающего тэга, значение будет равно содержимому блока в шаблоне. + Заметьте, что этот блок шаблона уже будет обработан + Smarty и на выводе вы получите результат обработки, а не + исходный код шаблона. - &$repeat - - . - $repeat true - ( ) - false - ( ). - , &$repeat - true, - {func} .. {/func} , - $content. + Параметр &$repeat передается по + ссылке в функцию и дает ей возможность контролировать + количество отображений блока. + По умолчанию $repeat равен true + во время первого вызова блоковой функции (открывающий тэг блока) + и false при всех последующих вызовах блоковой функции + (закрывающий тэг блока). + Каждый раз, когда ваша функция возвращает параметр &$repeat + равный true, содержимое между + {func} .. {/func} обрабатывается и ваша функция вновь вызывается, причем новое содержимое + блока передается в параметре $content. - , - . - $smarty->_tag_stack. var_dump() - . + Если вы используете вложенные блоковые функции, есть возможность определять родительские + блоковые функции. Достаточно получить значение переменной + $smarty->_tag_stack. Затем останется только применить var_dump() + для нее и структура будет видна. - : + Смотрите также: register_block(), unregister_block(). - + Блоковая функция + - + Функции компилятора - , , - . - PHP - . - - , - . + Функции компилятора, как вы наверное догадались, вызываются + только в процессе компиляции шаблона. Они могут быть полезными + для вставки кода PHP или чувствительного ко времени статического + контента в шаблон. Если одновременно зарегестрированы две + одноименные функции - пользовательская и компилятора, то приоритет + будет у функции компилятора. @@ -19,29 +19,29 @@ - : - - , - , Smarty. PHP- - . + Функция компилятора имеет два параметра: строку аргументов тэга - + чаще всего это все, что следует от наименования функции до правого + разделителя, и объект Smarty. Функция должна возвращать PHP-код + для вствки в скомпилированный шаблон. - + Смотрите также register_compiler_function(), unregister_compiler_function(). - + Простой пример функции компилятора _current_file . " compiled at " . date('Y-m-d H:M') ?> ]]> - : + Эта функция может быть вызвана из шаблона следующим образом: - PHP : + Результирующий код PHP в скомпилированном шаблоне будет выглядеть примерно так: + - + Функции шаблона void smarty_function_name @@ -11,31 +11,31 @@ - , , - $params . - : - $params['start'] - extract($params) . + Все атрибуты, передаваемые в функции шаблона из самого шаблона, + хранятся в $params в виде ассоциативного массива. + Получить доступ к его значениям можно напрямую: + $params['start'] или используя + extract($params) для импорта в таблицу. - ( ) - ( fetch ). - , - - (assign ). + Вывод (возвращаемое значение) функции будет подставлен в место расположения + тэга функции в шаблоне (функция fetch например). + В качестве альтернативы, функция может выполнять какие либо действия + без какого-либо вывода (assign функция). - (assign) - Smarty, - $smarty . + Если функция должна присвоить(assign) значения некоторым переменным в шаблоне или + использовать иные возможности Smarty, то можно работать с объектом + $smarty как обычно. - . : + См. также: register_function(), unregister_function(). - - + Функция-плагин с выводом - : + которая может быть использована в шаблоне следующим образом: - - + Функция-плагин без вывода + - + Как работают плагины - . , - , .., , - . , , - Smarty, - . + Плагины загружаются только по необходимости. Только те модификаторы, + функции, ресурсы и т.д., которые используются в шаблоне, будут + загружены. К тому же, каждый плагин загружается только один раз, + даже если у вас есть несколько экземпляров Smarty, работающих + в пределах одного запроса. - / . - , - API- . - - , . + Пре/постфильтры и фильтры вывода заслуживают отдельного упоминания. + Так как они не упоминаются в шаблонах, они должны быть зарегистрированы + и загружены неявно через API-функции ещё до обработки шаблона. + Порядок выполнения нескольких фильтров одного типа зависит от + порядка, в котором они регистрировались или загружались. - - , , , - . , - Smarty . + Директория плагинов + может быть строкой, содержащей путь, или массивом, содержащим + множество путей. Чтобы установить плагин, просто поместите его + в одну из этих директорий и Smarty автоматически будет его использовать. diff --git a/docs/ru/programmers/plugins/plugins-inserts.xml b/docs/ru/programmers/plugins/plugins-inserts.xml index ad599e85..b976eb09 100644 --- a/docs/ru/programmers/plugins/plugins-inserts.xml +++ b/docs/ru/programmers/plugins/plugins-inserts.xml @@ -1,12 +1,12 @@ - + - + Вставки - , + Плагины вставок используются для исполнения функций, вызываемых тэгом insert - . + в шаблоне. @@ -16,27 +16,27 @@ - , - . : - .. $params['start'] - extract($params) . + Первый параметр функции представляет собой ассоциативный массив атрибутов, + переданых для вставки. Доступ к этим значениям можно получить как напрямую: + т.е. $params['start'] так и используя + extract($params) для импорта. - , - insert . + Функция вставки возвращает результат, которым будет + заменен тэг insert в шаблоне. - + Плагин вставки + - + Модификаторы - - , - , . - , . + Модификаторы - это маленькие функции, которые воздействуют на переменные в + шаблоне перед тем, как те будут выведены на экран или использованы в ином контексте. + Для каждой переменной шаблона, одновременно могут быть использованы несколько модификаторов. @@ -16,23 +16,23 @@ - - - . - , , . + Первый параметр плагина-модификатора это значение в отношении которого + модификатор будет применен. Остальные параметры могут быть + произвольными, в зависимости от операций, которые они осуществляют. - , . + Модификатор должен возвращать результат, полученный в процессе своего выполнения. - : + Смотрите также: register_modifier(), unregister_modifier(). - - + Простой плагин-модификатор - PHP-. - . + Этот плагин в своей основе является аналогом одной из PHP-функций. Он + не имеет никаких дополнительных параметров. - + Более сложный модификатор + - + Соглашение об именах - , - , Smarty . + При присвоении имен файлам и функциям плагинов, необходимо придерживаться определенных + правил, чтобы Smarty находил и мог использовать эти плагины. - : + Имена файлов плагинов должны формироваться по следующей схеме:
@@ -18,7 +18,7 @@
- type () : + Где type (тип) это один из следующих типов плагинов: function modifier @@ -32,16 +32,16 @@ - name () PHP - ( , ). + и name (имя) соответствует правилам наименования идентификаторов в PHP + (только буквы, цифры и знак подчеркивания). - : function.html_select_date.php, + Несколько примеров: function.html_select_date.php, resource.db.php, modifier.spacify.php. - , , : + Функции, находящиеся внутри файлов плагинов, должны именоваться следующим образом:
smarty_type_name @@ -49,12 +49,12 @@
- type name , . + Значения type и name те же, что прежде. - Smarty , - , , - . + Smarty выдаст сообщение об ошибке, если необходимый файл плагина + не будет найден, или файл плагина, а так же функция плагина + будут названы неправильно.
- + Фильтры вывода - , - , . + Плагины фильтров вывода оперирут выходным кодом шаблона после того, как + шаблон был загружен и обработан, но перед его выводом в браузер. @@ -15,24 +15,24 @@ - - - , - - Smarty, . - . + Первый параметр функции фильтра вывода - это выходной код шаблона + который должен быть обработан, а второй параметр - это + экземпляр объекта Smarty, вызвавший этот плагин. Плагин предназначен для обработки + и возврата результата. - + Плагин фильтра вывода + - / + Префильтры/Постфильтры - ; - , , , . + Концепция плагинов префильтров и постфильтров очень проста; они + отличаются местом исполнения, или, точнее, временем их исполнения. @@ -15,11 +15,11 @@ - - . - - , , , . - . , - , . + Префильтры используются для обработки исходного кода шаблона непосредственно + перед компиляцией. Первый параметр функции префильтра - это + исходный код шаблона, который, возможно, уже изменен другими префильтрами. + Такой плагин возвращает модифицированый исходный код. Заметьте, что + этот исходный код нигде не сохраняется, он используется только для компиляции. @@ -29,25 +29,25 @@ - - ( - PHP-) , - . - , - . - . + Постфильтры используются для обработки скомпилированного вывода шаблона + (по сути - PHP-кода) сразу по завершению компиляции, но перед сохранением + откомпилированного шаблона в файловой системе. Первым параметром + функции постфильтра является скомпилированный код шаблона, возможно + уже модифицированый другими постфильтрами. Плагин возвращает + модифицированную версию этого кода. - + Плагин префильтра - + Плагин постфильтра + - + Ресурсы - , - PHP- Smarty. : - , LDAP, (shared memory), , . + Плагины ресурсов описывают источники данных, из которых берется исходный + код шаблона или компоненты PHP-скрипта для Smarty. Вот примеры ресурсов: + базы данных, LDAP, разделяемая память (shared memory), сокеты, и прочее. - 4 , - . - Smarty . - . + Необходимо 4 функции для того, чтобы зарегестрировать + каждый тип ресурса. Каждая такая функция получает запрашиваемый ресурс в качестве + первого параметра и объект Smarty как последний параметр. + Остальные параметры зависят от функции. @@ -42,60 +42,60 @@ - . - , , . . - true - - false . + Первая функция получает ресурс. Ее первый + параметр, это переменная, переданная по ссылке. В нее будет сохранен результат. + Функция вернет true если + сможет удачно получить ресурс и + false в ином случае. - - ( UNIX timestamp). - , , . - true - timestamp , false - . + Вторая функция получает время последней модификации + запрошенного ресурса (в виде UNIX timestamp). Второй параметр + представляет собой переменную, переданную по ссылке, в которой и будет сохранено время. + Функция вернет true если + timestamp будет определен в правильной форме, и false + в ином случае. - true - false , - . , - . + Третья функция возвращает true или + false в зависимости от того, является ли + запрашиваемый ресурс безопасным. Эта функция используется только для ресурсов шаблона, но + в любом случае должна быть определена. - true - false , - (is trusted) . PHP-, - include_php - insert src - . , . + Четвертая функция возвращает true или + false в зависимости от того, заслуживает ли запрашиваемый ресурс доверия + (is trusted) или нет. Эта функция используется только для компонентов PHP-скрипта, + запрошенных тэгом include_php или + insert с src + атрибутом. Тем не менее, она должна объявляться даже для ресурсов шаблона. - : + Смотрите также: register_resource(), unregister_resource(). - + Плагин ресурса query("select tpl_source from my_table @@ -110,7 +110,7 @@ function smarty_resource_db_timestamp($tpl_name, &$tpl_timestamp, &$smarty) { - // $tpl_timestamp. + // выполняем обращение к базе данных для присвоения значения $tpl_timestamp. $sql = new SQL; $sql->query("select tpl_timestamp from my_table @@ -125,13 +125,13 @@ function smarty_resource_db_timestamp($tpl_name, &$tpl_timestamp, &$smarty) function smarty_resource_db_secure($tpl_name, &$smarty) { - // , + // предполагаем, что шаблоны безопасны return true; } function smarty_resource_db_trusted($tpl_name, &$smarty) { - // + // не используется для шаблонов } ?> ]]> diff --git a/docs/ru/programmers/plugins/plugins-writing.xml b/docs/ru/programmers/plugins/plugins-writing.xml index 8c93d60c..4078ae8f 100644 --- a/docs/ru/programmers/plugins/plugins-writing.xml +++ b/docs/ru/programmers/plugins/plugins-writing.xml @@ -1,22 +1,22 @@ - + - + Написание плагинов - Smarty - - (at runtime) register_* API . - , unregister_* API . + Smarty может подгружать плагины автоматически из + файловой системы или регистрировать их во время выполнения + (at runtime) посредством одной из register_* API функций. + Их также можно дерегистрировать, используя unregister_* API функции. - , , - . + Плагинам, которые регистрируются во время выполнения, + могут присваиваться имена не соответствующие правилам соглашения об именах. - - ( , Smarty), - : + Если плагин зависит от некоторых функций другого плагина + (как в некоторых случаях с плагинами, поставляемыми вместе со Smarty), то + такой плагин можно загрузить следующим образом: _get_plugin_filepath('function', 'html_options'); ]]> - , Smarty - ( : Smarty , - &$repeat Smarty - Smarty). + Важно знать, что объект Smarty всегда передаётся в плагин последним параметром + (за двумя исключениями: модификатором объект Smarty вообще не передаётся, а + блоки получают &$repeat следом за объектом Smarty + в целях обратной совместимости с ранними версиями Smarty). - + Константы SMARTY_DIR - - Smarty. - , Smarty - . , - . + Эта константа должна содержать полный путь + к файлам класса Smarty. + Если константа не определена, Smarty будет пытаться определить путь + самостоятельно. При определении данной константы, + слэш в конце строки обязателен. SMARTY_DIR ]]> - . + См. также $smarty.const - - $php_handling + и + константы $php_handling SMARTY_CORE_DIR - (core) Smarty. - , Smarty - - internals/ + Это полный путь к файлам ядра (core) Smarty. + Если он не установлен, Smarty будет использовать значение по умолчанию + - путь к поддиректории internals/ директории SMARTY_DIR. - , . - , - core.* . + Если константа определена, путь должен заканчиваться слэшем. + Используйте эту константу, когда вручную подключаете любой из + core.* файлов. SMARTY_CORE_DIR @@ -55,7 +55,7 @@ require_once(SMARTY_DIR . 'Smarty.class.php'); @@ -63,7 +63,7 @@ require_once(SMARTY_CORE_DIR . 'core.get_microtime.php'); - . + См. также $smarty.const