diff --git a/docs/ru/appendixes/resources.xml b/docs/ru/appendixes/resources.xml index e4a3e7d6..2e77df6a 100644 --- a/docs/ru/appendixes/resources.xml +++ b/docs/ru/appendixes/resources.xml @@ -1,6 +1,6 @@ - + Источники diff --git a/docs/ru/appendixes/tips.xml b/docs/ru/appendixes/tips.xml index 3c0e8c79..a93cb3a1 100644 --- a/docs/ru/appendixes/tips.xml +++ b/docs/ru/appendixes/tips.xml @@ -1,13 +1,13 @@ - + Советы Обработка пустых переменных - Иногда, например, для того чтобы фон таблицы работал корректно, - необходимо вывести вместо пустого значения переменной, значение + Иногда, например, для того чтобы фон таблицы работал корректно, + необходимо вывести вместо пустого значения переменной, значение по умолчанию " ". Многие бы использовали конструкцию {if}, но есть более короткий путь в Smatry используя default модификатор переменной. @@ -35,7 +35,7 @@ Обработка переменных по умолчанию - Если переменная встречается часто, то использование модификатора + Если переменная встречается часто, то использование модификатора default каждый раз можно избежать, используя функцию assign. @@ -55,9 +55,9 @@ Присвоение переменной заголовка (title) заголовку шаблона. - Если большинство ваших шаблонов имеют похожие верхние и нижние - части, то имеет смысл вынести их в отдельные файлы. Но если - шапка должна иметь различные заголовки на различных страницах? + Если большинство ваших шаблонов имеют похожие верхние и нижние + части, то имеет смысл вынести их в отдельные файлы. Но если + шапка должна иметь различные заголовки на различных страницах? Смотрите пример ниже. @@ -99,7 +99,7 @@ footer.tpl Если выводится главная страница, то заголовок будет "Main Page", - если архивы, то заголовк берется из файла конфигурации. Если + если архивы, то заголовк берется из файла конфигурации. Если заголовок будет пустой, то выведется значение по умолчанию "BC News". @@ -109,7 +109,7 @@ footer.tpl Обычно даты в Smarty всегда передаются как временные метки, что позволяет проектировщикам шаблонов использовать date_format - для полного контроля над форматированием даты и также делает легким + для полного контроля над форматированием даты и также делает легким сравнение дат там, где это необходимо. @@ -193,10 +193,10 @@ function makeTimeStamp($year="", $month="", $day="") WAP/WML WAP/WML шаблоны требуют, чтобы заголовок Content-type был - передан вместе с шаблоном. Простейший путь - написать - пользовательскую функцию, которая будет выводить заголовки. - Так как мы будем пользоваться тэгами insert, то заголовки не будут - кэшироваться. Так же ничего не должно выводиться в браузер до + передан вместе с шаблоном. Простейший путь - написать + пользовательскую функцию, которая будет выводить заголовки. + Так как мы будем пользоваться тэгами insert, то заголовки не будут + кэшироваться. Так же ничего не должно выводиться в браузер до шаблона, иначе заголовки могут быть неправильно восприняты. @@ -205,9 +205,9 @@ function makeTimeStamp($year="", $month="", $day="") - + + - - - - - - - -

-Welcome to WAP with Smarty! -Press OK to continue... -

-
- - -

-Pretty easy isn't it? -

-
+ + + + + + + +

+ Welcome to WAP with Smarty! + Press OK to continue... +

+
+ + +

+ Pretty easy isn't it? +

+
]]> @@ -280,18 +280,18 @@ Pretty easy isn't it? // поместите файл "function.load_ticker.php" в директорию плагинов // настраиваем нашу функцию для получения информации о ценных бумагах -function fetch_ticker($symbol) +function fetch_ticker($symbol) { // здесь находится логика формирования $ticker_info // из какого-то источника return $ticker_info; } -function smarty_function_load_ticker($params, &$smarty) +function smarty_function_load_ticker($params, &$smarty) { // вызываем функцию $ticker_info = fetch_ticker($params['symbol']); - + // присваиваем переменную шаблона $smarty->assign($params['assign'], $ticker_info); } @@ -300,10 +300,7 @@ function smarty_function_load_ticker($params, &$smarty) Пример сокрытия e-mail адреса - + Smarty - компилирующий обработчик шаблонов - MonteOhrt <monte@ispi.net> + Monte + Ohrt <monte@ispi.net> - AndreiZmievski <andrei@php.net> + Andrei + Zmievski <andrei@php.net> - SergeiSuslenkov <student@bsuir-fcd.org> + Sergei + Suslenkov <student@bsuir-fcd.org> - GeorgeMiroshnikov <freespace@php.net> + George + Miroshnikov <freespace@php.net> &build-date; diff --git a/docs/ru/designers/config-files.xml b/docs/ru/designers/config-files.xml index 8056e90c..7183fde5 100644 --- a/docs/ru/designers/config-files.xml +++ b/docs/ru/designers/config-files.xml @@ -1,19 +1,19 @@ - + Конфигурационные файлы - С помощью конфигурационных файлов дизайнеру удобно управлять глобальными - переменными из одного файла. Например, цветами в шаблонах. Обычно, если - вы хотите сменить цветувую схему, то необходимо просмотреть каждый шаблон - и в каждом изменить цвета. С помощью файла конфигурации все цвета могут быть + С помощью конфигурационных файлов дизайнеру удобно управлять глобальными + переменными из одного файла. Например, цветами в шаблонах. Обычно, если + вы хотите сменить цветувую схему, то необходимо просмотреть каждый шаблон + и в каждом изменить цвета. С помощью файла конфигурации все цвета могут быть вынесены в отдельный файл и только один файл надо будет исправлять. Пример файла конфигурации -# (hash) в начале строки.
- Конфигурационный файл в примере имеет две секции. Названия секций заключены в + Конфигурационный файл в примере имеет две секции. Названия секций заключены в квадратные скобки []. Названия секций могут быть произвольными строками, не содержащими символов [ или ]. Четыре переменные вначале - глобальные переменные или переменные вне секций. - Эти переменные всегда загружаются из файла конфигурации. Если загружается + Эти переменные всегда загружаются из файла конфигурации. Если загружается определенная секция, то глобальные переменные и переменные из этой секции становятся доступными. Если переменная существует как глобальная, так и внутри секции, то используется версия из секции. Если есть две одинаковые - переменные в пределах одной секции, то используеться последний встретившийся + переменные в пределах одной секции, то используеться последний встретившийся вариант. - Файлы конфигурации загружаются в шаблон в помощью функции + Файлы конфигурации загружаются в шаблон в помощью функции config_load. Можно спрятать отдельные переменные или целые секции, добавив к названию - точку в начале. Это полезно, когда ваше приложение берет некоторые - переменные, ненужные в шаблоне, из файла конфигурации. Если шаблоны могут + точку в начале. Это полезно, когда ваше приложение берет некоторые + переменные, ненужные в шаблоне, из файла конфигурации. Если шаблоны могут редактировать третьи лица, то вы можете быть спокойны за ценную информацию из файлов конфигураций: они не смогут ее загрузить в шаблон. diff --git a/docs/ru/designers/language-builtin-functions/language-function-include.xml b/docs/ru/designers/language-builtin-functions/language-function-include.xml index 2539a5fd..abb0fa72 100644 --- a/docs/ru/designers/language-builtin-functions/language-function-include.xml +++ b/docs/ru/designers/language-builtin-functions/language-function-include.xml @@ -1,6 +1,6 @@ - + include @@ -14,7 +14,7 @@ Имя атрибута Тип - Обязателен + Обязателен По умолчанию Описание @@ -48,12 +48,12 @@ Тэги include используются для включения других шаблонов в текущий. - Любые переменные, доступные в текущем шаблоне, доступны и во - включаемом. Тэг include должен иметь атрибут "file", который + Любые переменные, доступные в текущем шаблоне, доступны и во + включаемом. Тэг include должен иметь атрибут "file", который указывает имя ресурса шаблона. - Опциональный атрибут assign указывает, что + Опциональный атрибут assign указывает, что вывод шаблона будет присвоен переменной вместо отображения. @@ -68,13 +68,13 @@ ]]> - - Вы также можете передать переменные в подключаемый шаблон в - виде атрибутов. Любая переменная, переданная в подключаемый - шаблон, доступны только в области видимости подключаемого - файла. Переданные переменные имеют преимущество перед + + Вы также можете передать переменные в подключаемый шаблон в + виде атрибутов. Любая переменная, переданная в подключаемый + шаблон, доступны только в области видимости подключаемого + файла. Переданные переменные имеют преимущество перед существующими переменными с аналогичными именами. - + функция include: передача переменных @@ -83,15 +83,15 @@ {* тело шаблона *} -{include file="footer.tpl" logo="http://my.domain.com/logo.gif"} +{include file="footer.tpl" logo="http://my.example.com/logo.gif"} ]]> - - Для подключения файлов вне папки $template_dir можно - указывать файл с помощью ресурсов. - + + Для подключения файлов вне папки $template_dir можно + указывать файл с помощью ресурсов. + функция include: пример использвоания ресурсов @@ -131,4 +131,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> - 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 e60f6f59..dc0a160a 100644 --- a/docs/ru/designers/language-builtin-functions/language-function-section.xml +++ b/docs/ru/designers/language-builtin-functions/language-function-section.xml @@ -1,6 +1,6 @@ - + section,sectionelse @@ -14,7 +14,7 @@ Имя атрибута Тип - Обязателен + Обязателен По умолчанию Описание @@ -32,21 +32,21 @@ [$variable_name] Да n/a - Имя переменной цикла, для определения + Имя переменной цикла, для определения количества итераций цикла. start integer Нет - 0 + 0 Индекс позиции, с которой будет начинаться цикл. Если значение отрицательное, то начальная позиция - вычисляется от конца массива. Например, если в переменной + вычисляется от конца массива. Например, если в переменной цикла 7 элементов и значение атрибута start равно -2, то начальный индекс будет 5. Неверные значения (значения, вне - массива) автоматически обрезаются до ближайшего верного + массива) автоматически обрезаются до ближайшего верного значения. @@ -57,8 +57,8 @@ 1 Значение шага, которое используется для прохода по - массиву. Например, step=2 указывает обход массива - по элементам 0,2,4... Если шаг отрицателен, то обход + массиву. Например, step=2 указывает обход массива + по элементам 0,2,4... Если шаг отрицателен, то обход массива будет производится в обратном направлении. @@ -84,11 +84,11 @@ section должны иметь в пару тэг /section. Обязательные параметры: name и loop. Имя - секции может быть какой угодно последовательностью букв, - цифр и знаков подчеркиваний. Секции могут быть вложенными. - Имена вложенных секций должны отличаться друг от друга. - Переменная цикла (обычно массив) определяет количество итериций - цикла. Когда отображаем переменную цикла, имя секции должно + секции может быть какой угодно последовательностью букв, + цифр и знаков подчеркиваний. Секции могут быть вложенными. + Имена вложенных секций должны отличаться друг от друга. + Переменная цикла (обычно массив) определяет количество итериций + цикла. Когда отображаем переменную цикла, имя секции должно быть указана после имени переменной в квадратных скобках []. Тэг sectionelse выполняется, когда переменная цикла пуста. @@ -117,7 +117,7 @@ id: 1002
@@ -149,7 +149,7 @@ address: 5605 apple st
имена секций @@ -166,7 +166,7 @@ address: 5605 apple st
address: 253 N 45th
home phone: 555-555-5555
cell phone: 555-555-5555
-e-mail: john@mydomain.com
+e-mail: john@example.com

id: 1001
name: Jack Jones
address: 417 Mulberry ln
home phone: 555-555-5555
cell phone: 555-555-5555
-e-mail: jack@mydomain.com
+e-mail: jack@example.com

id: 1002
name: Jane Munson
address: 5605 apple st
home phone: 555-555-5555
cell phone: 555-555-5555
-e-mail: jane@mydomain.com
+e-mail: jane@example.com

]]> @@ -225,16 +225,16 @@ OUTPUT: name: John Smith
home: 555-555-5555
cell: 555-555-5555
-e-mail: john@mydomain.com

+e-mail: john@example.com

name: Jack Jones
home phone: 555-555-5555
cell phone: 555-555-5555
-e-mail: jack@mydomain.com

+e-mail: jack@example.com

name: Jane Munson
home phone: 555-555-5555
cell phone: 555-555-5555
-e-mail: jane@mydomain.com

-]]> +e-mail: jane@example.com

+]]> @@ -248,33 +248,33 @@ e-mail: jane@mydomain.com

{sectionelse} there are no values in $custid. {/section} -]]> +]]> - Секции также имеют свои собственные атрибуты, которые определяют - определенные настройки секции. Они указываются примерно так: + Секции также имеют свои собственные атрибуты, которые определяют + определенные настройки секции. Они указываются примерно так: {$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 хранит текущий индекс цикла, начиная с 0 (или значения атрибута + index хранит текущий индекс цикла, начиная с 0 (или значения атрибута start), и увеличивается на единицу (или на значение атрибута step). Техническое Замечание - Если атрибуты step и start не указаны, то index - аналогичен атрибуту секции iteration, кроме того, - что начинается с 0, а не с 1. + Если атрибуты step и start не указаны, то index + аналогичен атрибуту секции iteration, кроме того, + что начинается с 0, а не с 1. @@ -291,12 +291,12 @@ e-mail: jane@mydomain.com

0 id: 1000
1 id: 1001
2 id: 1002
-]]> +]]> - - + + index_prev index_prev хранит предыдущий индекс цикла. @@ -327,7 +327,7 @@ e-mail: jane@mydomain.com

- + index_next @@ -360,7 +360,7 @@ e-mail: jane@mydomain.com

- + iteration @@ -400,7 +400,7 @@ e-mail: jane@mydomain.com

- + first @@ -435,7 +435,7 @@ e-mail: jane@mydomain.com

- + last @@ -471,8 +471,8 @@ e-mail: jane@mydomain.com

- - + + rownum rownum хранит текущую итерацию цикла, начиная с 1. @@ -492,15 +492,15 @@ e-mail: jane@mydomain.com

1 id: 1000
2 id: 1001
3 id: 1002
-]]> +]]> - - + + loop - loop хранит последний отработанный индекс цикла. Может быть использован + loop хранит последний отработанный индекс цикла. Может быть использован как внутри секции, так и после нее. @@ -520,15 +520,15 @@ e-mail: jane@mydomain.com

2 id: 1002
There were 3 customers shown above. -]]> +]]> - - + + show - Атрибут show может принимать логические + Атрибут show может принимать логические значения (истина или ложь). Если ложь, то цикл section не будет отображаться. Если присутствует тэг sectionelse, то он будет отображен. @@ -557,12 +557,12 @@ e-mail: jane@mydomain.com

3 id: 1002
the section was shown. -]]> +]]> - - + + total total хранит количество всех итераций цикла. Может быть использвован @@ -572,7 +572,7 @@ e-mail: jane@mydomain.com

атрибут секции total {/section} @@ -585,7 +585,7 @@ e-mail: jane@mydomain.com

4 id: 1002
There were 3 customers shown above. - ]]> + ]]> 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 e205faab..4c18726d 100644 --- a/docs/ru/designers/language-builtin-functions/language-function-strip.xml +++ b/docs/ru/designers/language-builtin-functions/language-function-strip.xml @@ -1,17 +1,17 @@ - + strip Часто вебдизайнеры сталкиваются с проблемой, что пробелы и переносы - строк влияют на отображение HTML в броузере ("фишки" броузера), то + строк влияют на отображение HTML в броузере ("фишки" броузера), то есть может понадобится склеить все теги в шаблоне вместе, чтобы получить - желаемый результат. Но в результате получается нечитаемый или + желаемый результат. Но в результате получается нечитаемый или трудноредактируемый шаблон. - В выводимом тексте, заключенном между тэгами {strip} и {/strip}, + В выводимом тексте, заключенном между тэгами {strip} и {/strip}, удаляются повторные пробелы и переносы строк, перед отображением. Так вы можете сохранив шаблон читаемым не волноваться насчет лишних пробелов. @@ -43,15 +43,15 @@ OUTPUT: -
This is a test
+
This is a test
]]> - + Заметьте, что в данном примере все строки начинаются и заканчиваются HTML - тэгами. Учтите, что все строки склеиваются вместе. Если есть - обычный текст в начале строки, то может не получиться желаемый результат. - + тэгами. Учтите, что все строки склеиваются вместе. Если есть + обычный текст в начале строки, то может не получиться желаемый результат. +
- + fetch @@ -14,7 +14,7 @@ Имя атрибута Тип - Обязателен + Обязателен По умолчанию Описание @@ -38,30 +38,30 @@ - fetch используется для отображения локальных файлов, http или ftp + fetch используется для отображения локальных файлов, http или ftp страниц. Если файл начинается с "http://", то вебстраница будет - получена и выведена. Если файл начинается с "ftp://", то файл будет - получен с ftp сервера и выведен. Для локальных файлов должен быть - указан либо абсолютный путь, либо путь относительно выполняемого + получена и выведена. Если файл начинается с "ftp://", то файл будет + получен с ftp сервера и выведен. Для локальных файлов должен быть + указан либо абсолютный путь, либо путь относительно выполняемого php файла. - Если указать специалньый атрибут "assign", то вывод функции fetch - будет присвоен переменной вместо отображения. Добавлено в + Если указать специалньый атрибут "assign", то вывод функции fetch + будет присвоен переменной вместо отображения. Добавлено в Smarty версии 1.5.0. Техническое Замечание - HTTP переадресация не поддерживается. Убедитесь, что указываете + HTTP переадресация не поддерживается. Убедитесь, что указываете завершающие слэши, где это необходимо. Техническое Замечание - Если включена security и указан файл из локальной файловой - системы, то отобразятся лишь файлы, который находятся в + Если включена security и указан файл из локальной файловой + системы, то отобразятся лишь файлы, который находятся в указаных безопасных папках ($secure_dir). @@ -70,20 +70,20 @@ +]]> diff --git a/docs/ru/designers/language-custom-functions/language-function-html-options.xml b/docs/ru/designers/language-custom-functions/language-function-html-options.xml index 79dff59e..21a95aaa 100644 --- a/docs/ru/designers/language-custom-functions/language-function-html-options.xml +++ b/docs/ru/designers/language-custom-functions/language-function-html-options.xml @@ -1,6 +1,6 @@ - + html_options @@ -14,7 +14,7 @@ Имя атрибута Тип - Обязателен + Обязателен По умолчанию Описание @@ -61,7 +61,7 @@ пользовательская функция html_options генерирует группу html тэгов option по указанной информации. Также заботится о выбранных по - умолчанию элементах. Атрибуты values и output обязательны, если не + умолчанию элементах. Атрибуты values и output обязательны, если не указан атрибут options. @@ -71,8 +71,8 @@ Если указан необязательный атрибут name, - то группа опций заключится в тэг <select - name="groupname"> и </select>, иначе сгенерируется только + то группа опций заключится в тэг <select + name="groupname"> и </select>, иначе сгенерируется только группа опций. @@ -128,7 +128,7 @@ -]]> +]]> diff --git a/docs/ru/designers/language-custom-functions/language-function-mailto.xml b/docs/ru/designers/language-custom-functions/language-function-mailto.xml index ee6073b5..597f0b2b 100644 --- a/docs/ru/designers/language-custom-functions/language-function-mailto.xml +++ b/docs/ru/designers/language-custom-functions/language-function-mailto.xml @@ -1,6 +1,6 @@ - + mailto @@ -14,7 +14,7 @@ Имя атрибута Тип - Обязателен + Обязателен По умолчанию Описание @@ -32,7 +32,7 @@ string Нет n/a - название ссылки. По умолчанию: + название ссылки. По умолчанию: адрес e-mail @@ -95,16 +95,16 @@ - пользовательская функция mailto автоматизирует создание ссылок - на e-mail адреса с возможностью кодирования их. Кодирование - усложняет работу web-пауков, которые собирают e-mail адреса + пользовательская функция mailto автоматизирует создание ссылок + на e-mail адреса с возможностью кодирования их. Кодирование + усложняет работу web-пауков, которые собирают e-mail адреса с вашего сайта. Техническое Замечание javascript - скорее всего наиболее полная форма кодирования, - хотя вы так же можете использовать шестнадцатиричное + хотя вы так же можете использовать шестнадцатиричное кодирование. @@ -112,27 +112,27 @@ mailto me@domain.com -send me some mail +me@example.com +send me some mail me@d& #x6f;main.com -me@domain.com -me@domain.com - +me@example.com +me@example.com + ]]> 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 b5be51d3..71e45ac1 100644 --- a/docs/ru/designers/language-custom-functions/language-function-popup.xml +++ b/docs/ru/designers/language-custom-functions/language-function-popup.xml @@ -1,6 +1,6 @@ - + popup @@ -14,7 +14,7 @@ Имя атрибута Тип - Обязателен + Обязателен По умолчанию Описание @@ -25,16 +25,18 @@ string Да n/a - HTML код (текст), который будет выводиться - в высплывающем окне. + + HTML код (текст), который будет выводиться в высплывающем окне. + trigger string Нет onMouseOver - Способ вызова окна. Может быть либо - onMouseOver, либо onClick + + Способ вызова окна. Может быть либо onMouseOver, либо onclick + sticky @@ -167,7 +169,7 @@ boolean Нет false - создает окно выше курсора мыши. ЗАМЕЧАНИЕ: возможно + создает окно выше курсора мыши. ЗАМЕЧАНИЕ: возможно только если указан атрибут height @@ -203,19 +205,23 @@ url to image Нет n/a - определяет фоновое изображение текста, - вместо fgcolor. + + определяет фоновое изображение текста, + вместо fgcolor. + bgbackground url to image Нет n/a - определяет фоновое изображение для границ окна, - вместо bgcolor. ЗАМЕЧАНИЕ: Может понадобиться установить - bgcolor в "" или будет показан цвет, а не зиображение. - ЗАМЕЧАНИЕ: При наличии ссылки "Close" Netscape перерисовывает - ячейки таблицы, что приводит к некорректному отображению. + + определяет фоновое изображение для границ окна, вместо bgcolor. + ЗАМЕЧАНИЕ: Может понадобиться установить bgcolor в "" или будет + показан цвет, а не зиображение. + ЗАМЕЧАНИЕ: При наличии ссылки "Close" Netscape перерисовывает + ячейки таблицы, что приводит к некорректному отображению. + closetext @@ -243,33 +249,41 @@ boolean Нет n/a - установить значение строки статуса в браузере - в текст окна. ЗАМЕЧАНИЕ: отменяет значение status + + установить значение строки статуса в браузере в текст окна. + ЗАМЕЧАНИЕ: отменяет значение status + autostatuscap string Нет n/a - установить значение строки статуса в браузере - в текст заголовка. ЗАМЕЧАНИЕ: отменяет начение autostatus + + установить значение строки статуса в браузере в текст заголовка. + ЗАМЕЧАНИЕ: отменяет начение autostatus + inarray integer Нет n/a - указывает, что текст окна следует взять из указанного - элемента массива ol_text, расположенного в overlib.js. Этот - параметр может использоваться вместо text + + указывает, что текст окна следует взять из указанного элемента массива + ol_text, расположенного в overlib.js. Этот параметр может использоваться + вместо text + caparray integer Нет n/a - указывает, что заголовок окна следует взять из - указанного элемента массива ol_caps + + указывает, что заголовок окна следует взять из указанного элемента + массива ol_caps + capicon @@ -297,18 +311,20 @@ integer Нет n/a - закрепляет горизонтальное положение окна. - Замечание: отменяет все остальные параметры - горизонтального положения + + закрепляет горизонтальное положение окна. + ЗАМЕЧАНИЕ: отменяет все остальные параметры горизонтального положения + fixy integer Нет n/a - закрепляет вертикалнное положение окна. - Замечание: отменяет все остальные параметры - вертикального положения + + закрепляет вертикалнное положение окна. + ЗАМЕЧАНИЕ: отменяет все остальные параметры вертикального положения + background @@ -322,74 +338,84 @@ 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 для дополнительной информации по этой функции + timeout string Нет n/a - вызывает указанную javascript функцию и - использует результат как текст окна + + вызывает указанную javascript функцию и использует результат + как текст окна + delay integer Нет n/a - время жизни окна в милисекундах. Позволяет - реализовывать высплывающие подсказки. + + время жизни окна в милисекундах. Позволяет реализовывать + высплывающие подсказки. + hauto boolean Нет n/a - автоматическое опредление горизонтального - местоположения окна относительно мыши. + + автоматическое опредление горизонтального местоположения окна + относительно мыши. + vauto boolean Нет n/a - автоматическое опредление вертикального - местоположения окна относительно мыши. + + автоматическое опредление вертикального местоположения окна + относительно мыши. + - функция popup используется для генерации javascript кода, + функция popup используется для генерации javascript кода, который создаст высплывающее окно. @@ -400,11 +426,11 @@ {popup_init src="/javascripts/overlib.js"} {* создаем ссылку с всплывающим окном, которое появляеться при наведении мыши *} -mypage +mypage {* можно использовать html, ссылки и т.п. в высплывающем окне *} -mypage +mypage ]]> diff --git a/docs/ru/designers/language-variables/language-variables-smarty.xml b/docs/ru/designers/language-variables/language-variables-smarty.xml index 69923e17..809b919d 100644 --- a/docs/ru/designers/language-variables/language-variables-smarty.xml +++ b/docs/ru/designers/language-variables/language-variables-smarty.xml @@ -1,6 +1,6 @@ - + Зарезервированная переменная {$smarty} @@ -18,7 +18,7 @@ Вывод переменных запроса - + Приступая к работе @@ -11,16 +11,19 @@ Говоря более четко, он предоставляет один из инструментов, которые позволяет добиться отделения прикладной логики и данных от представления. Это очень удобно в ситуациях, когда программист и - верстальщик шаблона - различные люди. Например, скажем, вы создаете - страницу, которая показывает газетную статью. Название статьи, автор - и сама статья - элементы, которые не содержат никакой информации о том, как они - будут представлены. Их передают в Smarty из приложения, а верстальщик - шаблона редактирует шаблоны и использует комбинацию тэгов HTML и - тэгов шаблона, чтобы отформатировать представление этих элементов - (таблицы HTML, фоновые цвета, размеры шрифта, стиля и т.д.). Однажды - программист захочет изменить способ хранения статьи (сделать изменения - в логике приложения). Это изменение не вызовет изменений в шаблонах. - Содержание будет все еще передаваться в шаблон таким же самым способом. + верстальщик шаблона - различные люди. + + + Например, скажем, вы создаете страницу, которая показывает газетную + статью. Название статьи, автор и сама статья - элементы, которые не + содержат никакой информации о том, как они будут представлены. Их + передают в Smarty из приложения, а верстальщик шаблона редактирует + шаблоны и использует комбинацию тэгов HTML и тэгов шаблона, чтобы + отформатировать представление этих элементов (таблицы HTML, фоновые + цвета, размеры шрифта, стиля и т.д.). Однажды программист захочет + изменить способ хранения статьи (сделать изменения в логике приложения). + Это изменение не вызовет изменений в шаблонах. Содержание будет все еще + передаваться в шаблон таким же самым способом. Аналогично, если верстальщик захочет полностью перепроектировать шаблоны, это не потребует никаких изменений в прикладной логике. @@ -31,11 +34,12 @@ данных. Такие задачи, как подключение других шаблонов, чередующаяся окраска строчек в таблице, приведение букв к верхнему регистру, циклический проход по массиву для его отображения и т.д. - всё это является примером логики - представления. Не следует думать, что Smarty заставляет вас разделять логику - приложения и представление. Smarty не видит разницы между этими вещами, - так что помещать или не помещать логику приложения в шаблоны - решать вам. - Если же вы считаете, что в шаблоне ВООБЩЕ не должно быть логики, вы можете - ограничиться использованием чистого текста и переменных. + представления. Не следует думать, что Smarty заставляет вас разделять + логику приложения и представление. Smarty не видит разницы между этими + вещами, так что помещать или не помещать логику приложения в шаблоны - + решать вам. Если же вы считаете, что в шаблоне вообще + не должно быть логики, вы можете ограничиться использованием чистого + текста и переменных. Одна из уникальных возможностей Smarty - компилирование шаблонов. Это @@ -73,9 +77,10 @@ - Вы можете создавать пользовательские - функции и - модификаторы, что делает язык + Вы можете создавать пользовательские функции + и модификаторы, что делает язык шаблонов чрезвычайно расширяемым. @@ -162,8 +167,8 @@ debug.tpl Smarty использует константу PHP SMARTY_DIR, которая указывает путь к директории библиотеки Smarty. Обычно, если приложение может найти файл - Smarty.class.php, то нет необходимости устанавливать - SMARTY_DIR. Однако, если Smarty.class.php не может + Smarty.class.php, то нет необходимости устанавливать + SMARTY_DIR. Однако, если Smarty.class.php не может быть найден в вашем include_path или вы не указывали абсолютный путь к нему в приложении, то вы должны определить SMARTY_DIR вручную. SMARTY_DIR должен включать завершающий слэш. @@ -185,7 +190,7 @@ $smarty = new Smarty; Попробуйте выполнить вышеуказанный код. Если Вы получаете ошибку о том, - что Smarty.class.php не найден, попробуйте следующие + что Smarty.class.php не найден, попробуйте следующие варианты действий: @@ -233,17 +238,20 @@ $smarty = new Smarty; Теперь, когда все файлы находятся на своих местах, пришло время установки директорий Smarty в вашем приложении. Smarty требует четыре директории, которые (по умолчанию) называются - templates, templates_c, - configs и cache. Каждая из + templates, + templates_c, + configs и + cache. Каждая из них определяется свойствами класса Smarty: - $template_dir, $compile_dir, - $config_dir и $cache_dir + $template_dir, $compile_dir, + $config_dir и $cache_dir соответственно. Настойчиво рекомендуется использовать разные наборы этих директорий для каждого приложения, использующего Smarty. Убедитесь, что вы знаете расположение корневой директории для документов - вашего веб-сервера. В нашем примере это "/web/www.mydomain.com/docs/". + вашего веб-сервера. В нашем примере это /web/www.example.com/docs/. Так как доступ к директориям Smarty получает только библиотека Smarty и они никогда не запрашиваются напрямую веб-браузером, вам рекомендуется вынести директории Smarty за пределы корневой @@ -256,12 +264,14 @@ $smarty = new Smarty; имя в именах директорий. Вы можете использовать те же настройки с любым другим приложением, просто меняя "guestbook" на имя вашего приложения. Мы же разместим наши директории Smarty тут: - "/web/www.mydomain.com/smarty/guestbook/". + web/www.example.com/smarty/guestbook/ Вам понадобится как минимум один файл в корневой директории для документов - это скрипт, к которому обращается веб-браузер. Мы назовём наш скрипт - "index.php" и поместим его в поддиректорию "/guestbook/" корневой директории + index.php и поместим его в поддиректорию + /guestbook/ корневой директории для документов. @@ -270,7 +280,7 @@ $smarty = new Smarty; Бывает удобно настроить веб-сервер так, чтобы "index.php" расценивался как индексный файл дирекотрии по умолчанию, чтобы при запросе страницы - "http://www.mydomain.com/guestbook/", вызывался скрипт index.php без + "http://www.example.com/guestbook/", вызывался скрипт index.php без "index.php" в конце адресной строки. В веб-сервере Apache вы можете настроить это, добавив "index.php" в конец директивы DirectoryIndex (записи разделяются пробелами). @@ -292,12 +302,12 @@ $smarty = new Smarty; /usr/local/lib/php/Smarty/internals/*.php /usr/local/lib/php/Smarty/plugins/*.php -/web/www.mydomain.com/smarty/guestbook/templates/ -/web/www.mydomain.com/smarty/guestbook/templates_c/ -/web/www.mydomain.com/smarty/guestbook/configs/ -/web/www.mydomain.com/smarty/guestbook/cache/ +/web/www.example.com/smarty/guestbook/templates/ +/web/www.example.com/smarty/guestbook/templates_c/ +/web/www.example.com/smarty/guestbook/configs/ +/web/www.example.com/smarty/guestbook/cache/ -/web/www.mydomain.com/docs/guestbook/index.php +/web/www.example.com/docs/guestbook/index.php ]]> @@ -316,11 +326,11 @@ $smarty = new Smarty; Установка прав доступа к файлам @@ -341,7 +351,7 @@ chmod 770 /web/www.mydomain.com/smarty/guestbook/cache/ - Редактирование /web/www.mydomain.com/smarty/guestbook/templates/index.tpl + Редактирование /web/www.example.com/smarty/guestbook/templates/index.tpl - Редактироение /web/www.mydomain.com/docs/guestbook/index.php + Редактироение /web/www.example.com/docs/guestbook/index.php template_dir = '/web/www.mydomain.com/smarty/guestbook/templates/'; -$smarty->compile_dir = '/web/www.mydomain.com/smarty/guestbook/templates_c/'; -$smarty->config_dir = '/web/www.mydomain.com/smarty/guestbook/configs/'; -$smarty->cache_dir = '/web/www.mydomain.com/smarty/guestbook/cache/'; +$smarty->template_dir = '/web/www.example.com/smarty/guestbook/templates/'; +$smarty->compile_dir = '/web/www.example.com/smarty/guestbook/templates_c/'; +$smarty->config_dir = '/web/www.example.com/smarty/guestbook/configs/'; +$smarty->cache_dir = '/web/www.example.com/smarty/guestbook/cache/'; $smarty->assign('name','Ned'); @@ -399,17 +409,18 @@ $smarty->display('index.tpl'); Техническое замечание В нашем примере мы устанавливаем абсолютные пути ко всем директориям - Smarty. Если '/web/www.mydomain.com/smarty/guestbook/' находится в - include_path вашего PHP, то эти настройки не обязательны. Тем не менее, - более эффективным и (из опыта) менее глюкоопасным является использование - абсолютных путей. Это придаст уверенность в том, что Smarty получает файлы - из тех директорий, из которых вы хотите. + Smarty. Если /web/www.example.com/smarty/guestbook/ + находится в include_path вашего PHP, то эти настройки не обязательны. + Тем не менее, более эффективным и (из опыта) менее глюкоопасным является + использование абсолютных путей. Это придаст уверенность в том, что Smarty + получает файлы из тех директорий, из которых вы хотите. - Теперь загрузите файл index.php из вашего веб-браузера. - Вы должны увидеть надпись "Hello, Ned!" + Теперь загрузите файл index.php из вашего + веб-браузера. Вы должны увидеть надпись "Hello, Ned!" Вы закончили базовую установку Smarty! @@ -429,9 +440,9 @@ $smarty->display('index.tpl'); того, чтобы постоянно устанавливать пути директорий, присваивать одни и те же переменные и т.д., мы можем всё это сделать в одном месте. Давайте создадим новую директорию "/php/includes/guestbook/",а в ней - - новый файл, который назовем "setup.php". По условиям нашего примера, - "/php/includes" находится в include_path. Убедитесь, чтобы то же самое было - и у вас, или используетй абсолютные пути. + новый файл, который назовем setup.php. По условиям + нашего примера, "/php/includes" находится в include_path. Убедитесь, чтобы + то же самое было и у вас, или используетй абсолютные пути. @@ -453,17 +464,18 @@ class Smarty_GuestBook extends Smarty { function Smarty_GuestBook() { - // Конструктор класса. Он автоматически вызывается при создании нового экземпляра. + // Конструктор класса. + // Он автоматически вызывается при создании нового экземпляра. $this->Smarty(); - $this->template_dir = '/web/www.mydomain.com/smarty/guestbook/templates/'; - $this->compile_dir = '/web/www.mydomain.com/smarty/guestbook/templates_c/'; - $this->config_dir = '/web/www.mydomain.com/smarty/guestbook/configs/'; - $this->cache_dir = '/web/www.mydomain.com/smarty/guestbook/cache/'; + $this->template_dir = '/web/www.example.com/smarty/guestbook/templates/'; + $this->compile_dir = '/web/www.example.com/smarty/guestbook/templates_c/'; + $this->config_dir = '/web/www.example.com/smarty/guestbook/configs/'; + $this->cache_dir = '/web/www.example.com/smarty/guestbook/cache/'; $this->caching = true; - $this->assign('app_name','Guest Book'); + $this->assign('app_name', 'Guest Book'); } } @@ -477,7 +489,7 @@ class Smarty_GuestBook extends Smarty { - Редактирование /web/www.mydomain.com/docs/guestbook/index.php + Редактирование /web/www.example.com/docs/guestbook/index.php display('index.tpl'); Теперь вы видите, что создать экземпляр Smarty довольно просто - нужно лишь - использовать Smarty_GuestBook, который автоматически инициализирует все настройки - для нашего приложения. + использовать Smarty_GuestBook, который автоматически инициализирует все + настройки для нашего приложения. diff --git a/docs/ru/programmers/advanced-features/advanced-features-objects.xml b/docs/ru/programmers/advanced-features/advanced-features-objects.xml index 80e7aea6..4a1ff2a8 100644 --- a/docs/ru/programmers/advanced-features/advanced-features-objects.xml +++ b/docs/ru/programmers/advanced-features/advanced-features-objects.xml @@ -1,40 +1,40 @@ - + Объекты - Смарти позволяет использовать в шаблонах объекты PHP. - Существуют два способа их вызова. Первый - зарегистрировать объект для + Smarty позволяет использовать в шаблонах объекты PHP. + Существуют два способа их вызова. Первый - зарегистрировать объект для шаблона, затем вызвать его примерно так же, как и пользовательскую - функцию. Второй - объявить объект для шаблона и использовать его, - как любую другую объявленную переменную. Первый метод гораздо аккуратнее - и безопаснее, так как у зарегистрированного объекта можно ограничить + функцию. Второй - присвоить объект шаблону и использовать его, + как любую другую присвоенную переменную. Первый метод гораздо аккуратнее + и безопаснее, так как у зарегистрированного объекта можно ограничить свойства и методы. Но, в тоже время, зарегистрированный объект - нельзя использовать в циклах, нельзя помещать в массив объектов - и так далее. Выбор способа за вами, но используйте по - возможности первый, чтобы максимально упростить синтаксис шаблона. + нельзя использовать в циклах, нельзя помещать в массив объектов + и так далее. Выбор способа за вами, но используйте по + возможности первый, чтобы максимально упростить синтаксис шаблона. - - В безопасном режиме недоступны приватные методы и + + В безопасном режиме недоступны приватные методы и функции (имена которых начинаются с "_"). - Если существует и метод, и свойство с одинаковыми именами, + Если существует и метод, и свойство с одинаковыми именами, то будет использован метод. - - - Вы можете ограничить использование объекта только некоторыми + + + Вы можете ограничить использование объекта только некоторыми методами и свойствами. Для этого перечислите их в массиве и укажите - этот массив третьим параметром при регистрации объекта. - - - По умолчанию, параметры из шаблона передаются объекту точно так же, - как и пользовательской функции. Первым параметром передаётся - ассоциативный массив, вторым - объект Smarty. Если вы хотите передавать + этот массив третьим параметром при регистрации объекта. + + + По умолчанию, параметры из шаблона передаются объекту точно так же, + как и пользовательской функции. Первым параметром передаётся + ассоциативный массив, вторым - объект Smarty. Если вы хотите передавать параметры по одному, как при традиционном обращении с объектами, установите - четвёртый параметр вызова в false. - + четвёртый параметр вызова в false. + - использование зарегистрированного или объявленного объекта + использование зарегистрированного или присвоенного объекта 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"); ?> - -ШАБЛОН: - +]]> + + + Вот так нужно обращаться к вашим объектам в index.tpl: + + +meth1 p1="foo" p2=$bar} -{* результат можно перегрузить в переменную *} +{* результат можно поместить в переменную *} {foobar->meth1 p1="foo" p2=$bar assign="output"} в результате получаем {$output} -{* вызываем объявленный объект *} +{* вызываем присвоенный объект *} {$myobj->meth1("foo",$bar)} ]]> diff --git a/docs/ru/programmers/advanced-features/advanced-features-outputfilters.xml b/docs/ru/programmers/advanced-features/advanced-features-outputfilters.xml index 1f4eafc6..8e5bd962 100644 --- a/docs/ru/programmers/advanced-features/advanced-features-outputfilters.xml +++ b/docs/ru/programmers/advanced-features/advanced-features-outputfilters.xml @@ -1,28 +1,29 @@ - + Фильтры вывода Когда шаблон выводится через display() или fetch(), результат может быть - пропущен через один или несколько фильтров вывода. Отличие их от постфильтров - состоит в том, что постфильтры действуют на уже скомпилированный шаблон, перед - его записью на диск, в то время как фильтры вывода обрабатывают шаблон в момент - его исполнения и результат их применения на диск не записывается. + пропущен через один или несколько фильтров вывода. Отличие их от + постфильтров состоит в том, что постфильтры действуют на уже скомпилированный + шаблон, перед его записью на диск, в то время как фильтры вывода обрабатывают + шаблон в момент его исполнения. + - Фильтры вывода могут быть или - зарегистрированы или загружены - из папки с плагинами с помощью - функции load_filter(), - или автоматически вызваны через инициализацию переменной - $autoload_filters. - Smarty передаёт фильтру вывод шаблона в качестве первого параметра. - Предполагается, что функция вернёт обработанный вывод. + Фильтры вывода могут быть или + зарегистрированы или + загружены из папки с плагинами с помощью + функции load_filter(), или + с помощью установки переменной + $autoload_filters. + Smarty передаёт фильтру результат обработки шаблона в качестве первого + аргумента и предполагает, что функция вернёт результат своей работы. Использование фильтра вывода - + register_outputfilter("protect_email"); $smarty->display("index.tpl"); -// теперь все адреса электронной почты в выводе шаблона будут +// теперь все адреса электронной почты в выводе шаблона будут // обработаны несложной функцией защиты от спам-ботов -?>; +?> ]]> diff --git a/docs/ru/programmers/advanced-features/advanced-features-postfilters.xml b/docs/ru/programmers/advanced-features/advanced-features-postfilters.xml index 8bd29e09..ef47c80b 100644 --- a/docs/ru/programmers/advanced-features/advanced-features-postfilters.xml +++ b/docs/ru/programmers/advanced-features/advanced-features-postfilters.xml @@ -1,40 +1,45 @@ - + Постфильтры - Постфильтры шаблона - это функции PHP, которые обрабатывают шаблон после его компиляции. - Постфильтры могут быть или + Постфильтры шаблона - это функции PHP, которые обрабатывают шаблон после его + компиляции. Постфильтры могут быть или зарегистрированы или загружены - из папки с плагинами с помощью - функции load_filter(), - или автоматически вызваны через инициализацию переменной - $autoload_filters. - Smarty передаёт фильтру скомпилированный код шаблона в качестве первого параметра. - Предполагается, что функция вернёт обработанный код. + из папки с плагинами при помощи функции + load_filter(), или + с помощью установки переменной + $autoload_filters. + Smarty передаёт фильтру скомпилированный код шаблона в качестве первого + аргумента и предполагает, что функция вернёт результат своей работы. - Использование постфильтров - + использование постфильтра + ;\n\"; ?>\n".$tpl_source; } // регистрация постфильтра $smarty->register_postfilter("add_header_comment"); $smarty->display("index.tpl"); ?> - -{* скомпилированный шаблон index.tpl *} -<!-- Здесь был Смарти --> -{* и дальше прочий код шаблона... *} ]]> + + Теперь скомпилированный шаблон Smarty index.tpl выглядит так: + + + +{* остальной код шаблона... *} +]]> + - + Префильтры - Префильтры шаблона - это функции PHP, которые обрабатывают шаблон перед его компиляцией. - Это удобно для удаления лишних комментариев и прочих ненужных после компиляции данных. - Префильтры могут быть или + Префильтры шаблона - это функции PHP, которые обрабатывают шаблон перед его + компиляцией. Это удобно для удаления лишних комментариев и прочих ненужных + после компиляции данных. + + + Префильтры могут быть или заргистрированы или загружены - из папки с плагинами с помощью - функции load_filter(), или - автоматически вызваны через инициализацию переменной + из папки с плагинами с помощью функции + load_filter() или + с помощью установки переменной $autoload_filters. - Smarty передаёт фильтру исходный код шаблона в качестве первого параметра. - Предполагается, что функция вернёт обработанный код. + + + Smarty передаёт фильтру исходный код шаблона в качестве первого аргумента + и предполагает, что функция вернёт результат своей работы. - Использование префильтра - + использование префильтра + /U","",$tpl_source); } -// регистрация префильтра +// регистрация префильтра $smarty->register_prefilter("remove_dw_comments"); $smarty->display("index.tpl"); ?> - -{* шаблон index.tpl *} -<!--# эта строка будет удалена префильтром --> ]]> + + Это удалит все комментарии из исходного текста шаблона. + - + Ресурсы - Шаблоны можно получать из самых разных источников. Когда вы отображаете, вызываете - или подключаете один шаблон из другого, вы указываете тип ресурса, вместе с - соответствующим путём и названием шаблона. + Шаблоны можно получать из самых разных источников. Когда вы отображаете, + вызываете или подключаете один шаблон из другого, вы указываете тип ресурса, + вместе с соответствующим путём и названием шаблона. - + Шаблоны из папки $template_dir - Шаблоны, лежащие в папке $template_dir, не требуют при вызове указания + Шаблоны, лежащие в папке $template_dir, не требуют при вызове указания типа ресурса, хотя вы можете использовать префикс 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"); // тоже самое, что и строкой выше {* код в шаблоне *} {include file="index.tpl"} @@ -32,13 +33,13 @@ $smarty->display("file:admin/menu.tpl"); // - + Шаблоны из произвольной папки Для вызова шаблонов из папки вне $template_dir необходимо - использовать префикс file: с последующим указанием асболютного - пути и имени шаблона. + использовать префикс file: с последующим указанием асболютного + пути и имени шаблона. Вызов шаблона из произвольной папки @@ -47,29 +48,43 @@ $smarty->display("file:admin/menu.tpl"); // // PHP скрипт $smarty->display("file:/export/templates/index.tpl"); $smarty->display("file:/path/to/my/templates/menu.tpl"); - -{* код в шаблоне *} +?> +]]> + + + А изнутри шаблона Smarty: + + + - - Пути в Windows + + + Файловые пути в Windows Если вы работаете под Windows, то пути к файлам, как правило, начинаются с буквы логического диска (например, C:). Не забудьте - указать префикс "file:" в начале пути, чтобы избежать проблем с именами - и достичь необходимого результата. + указать префикс "file:" в начале пути, чтобы избежать конфликтов + имён и достичь необходимого результата. - Вызов шаблона под windows - + использование шаблонов с файловіми путями Windows + display("file:C:/export/templates/index.tpl"); $smarty->display("file:F:/path/to/my/templates/menu.tpl"); - -{* код в шаблоне *} +?> +]]> + + + А изнутри шаблона Smarty: + + + @@ -82,30 +97,29 @@ $smarty->display("file:F:/path/to/my/templates/menu.tpl"); Вы можете вызывать шаблоны, используя любые доступные через PHP источники: базы данных, сокеты, LDAP и так далее. - Для этого нужно написать соответствующий плагин ресурса и зарегистрировать - его для Smarty. + Для этого нужно написать соответствующий плагин ресурса и зарегистрировать + его в Smarty. Смотрите раздел плагины ресурсов - для более подробной информации о соответствующих функциях. + для более подробной информации о тех функциях, которые вы должны + предоставить. - Обратите внимание на то, что вы не можете переопределить встроенный ресурс - file, но в ваших силах написать и зарегистрировать ресурс с - другим именем, который будет использовать другой способ вызова шаблонов из + Обратите внимание на то, что вы не можете переопределить встроенный ресурс + file, но в ваших силах написать и зарегистрировать ресурс с + другим именем, который будет использовать другой способ вызова шаблонов из файловой системы. - Использование своих ресурсов - + Использование собственных ресурсов + register_resource("db", array("db_get_template", "db_get_timestamp", "db_get_secure", @@ -156,8 +170,14 @@ $smarty->register_resource("db", array("db_get_template", // используем ресурс из PHP скрипта $smarty->display("db:index.tpl"); - -{* используем ресурс из шаблона *} +?> +]]> + + + А изнутри шаблона Smarty: + + + @@ -167,17 +187,17 @@ $smarty->display("db:index.tpl"); Функция для обработки шаблона по умолчанию - Вы можете определить функцию, которая будет использована, - если шаблон не может быть вызван из соответствующего ресурса. + Вы можете определить функцию, которая будет использована, + если шаблон не может быть вызван из соответствующего ресурса. Это можно использовать, к примеру, для построения недостающего шаблона на лету. использование функции для обработки шаблона по умолчанию - + - + register_function @@ -12,16 +12,16 @@ voidregister_function stringname mixedimpl - boolcacheable - mixedcache_attrs + boolcacheable + mixedcache_attrs Используется для динамической регистрации плагинов функций шаблона. Передается наименование функции шаблона и имя функции, реализующей ее. - Коллбек-функцией php impl может быть (a) строка, - содержащая имя функции, или (b) массив вида + Функция обратного вызова PHP impl может быть + (a) строка, содержащая имя функции, или (b) массив вида array(&$object, $method), где &$object является ссылкой на объект, а $method является строкой, @@ -39,15 +39,18 @@ register_function - + register_function("date_now", "print_current_date"); -function print_current_date ($params) { - extract($params); - if(empty($format)) - $format="%b %e, %Y"; - echo strftime($format,time()); +function print_current_date($params) +{ + if(empty($params['format'])) { + $format = "%b %e, %Y"; + } else { + $format = $params['format']; + return strftime($format,time()); + } } // теперь вы можете использовать ее в Smarty чтобы вывести текущую дату: {date_now}