From c1eb7285506ef49bb93fcb8fb48a80a8a70f2388 Mon Sep 17 00:00:00 2001 From: freespace Date: Sun, 28 Aug 2005 16:51:15 +0000 Subject: [PATCH] Sync with en. --- docs/ru/appendixes/tips.xml | 441 ++++++++++-------- docs/ru/appendixes/troubleshooting.xml | 196 ++++++-- .../designers/chapter-debugging-console.xml | 54 ++- docs/ru/designers/config-files.xml | 34 +- .../language-escaping.xml | 21 +- .../language-basic-syntax/language-math.xml | 5 +- .../language-syntax-attributes.xml | 30 +- .../language-syntax-comments.xml | 31 +- .../language-syntax-functions.xml | 38 +- .../language-syntax-quotes.xml | 23 +- .../language-syntax-variables.xml | 20 +- .../language-combining-modifiers.xml | 29 +- docs/ru/designers/language-modifiers.xml | 53 ++- docs/ru/designers/language-variables.xml | 30 +- docs/ru/getting-started.xml | 131 +++--- docs/ru/language-snippets.ent | 27 +- docs/ru/preface.xml | 4 +- docs/ru/programmers/plugins.xml | 4 +- 18 files changed, 743 insertions(+), 428 deletions(-) diff --git a/docs/ru/appendixes/tips.xml b/docs/ru/appendixes/tips.xml index a93cb3a1..30766909 100644 --- a/docs/ru/appendixes/tips.xml +++ b/docs/ru/appendixes/tips.xml @@ -1,20 +1,23 @@ - + Советы - + + Обработка пустых переменных Иногда, например, для того чтобы фон таблицы работал корректно, необходимо вывести вместо пустого значения переменной, значение - по умолчанию "&nbsp;". Многие бы использовали конструкцию {if}, - но есть более короткий путь в Smatry используя default - модификатор переменной. + по умолчанию "&nbsp;". Многие бы использовали конструкцию + {if}, + но в Smatry есть более короткий путь - используя модификатор переменной + default. - -Вывод &nbsp;, если переменная пуста - + + Вывод &nbsp;, если переменная пуста + - - - - - Обработка переменных по умолчанию - - Если переменная встречается часто, то использование модификатора - default каждый раз можно избежать, используя функцию - assign. - - -Назначение переменной шаблона значения по умолчанию - + + + + См. также default и + Обработка переменных по умолчанию. + + + + + Обработка переменных по умолчанию + + Если переменная встречается часто, то использование модификатора + default каждый раз можно избежать, используя функцию + {assign}. + + + Назначение переменной шаблона значения по умолчанию + - - - - - Присвоение переменной заголовка (title) заголовку шаблона. + + + + См. также default и + Обработка пустых переменных. + + + + + Присвоение переменной заголовка (title) шаблону-шапке Если большинство ваших шаблонов имеют похожие верхние и нижние - части, то имеет смысл вынести их в отдельные файлы. Но если + части, то имеет смысл вынести их в отдельные файлы. Но как быть, если шапка должна иметь различные заголовки на различных страницах? - Смотрите пример ниже. + Вы можете передавать текст заголовка шапке в момент её включения. - -Присвоение переменной заголовка (title) заголовку шаблона. - + + Присвоение переменной заголовка (title) шаблону-шапке + + mainpage.tpl + + + - -archives.tpl ------------- - + + archives.tpl + + + - - {$title|default:"BC News"} - - - - -footer.tpl ----------- - - ]]> - - - - Если выводится главная страница, то заголовок будет "Main Page", - если архивы, то заголовк берется из файла конфигурации. Если - заголовок будет пустой, то выведется значение по умолчанию "BC News". - - - -Даты - - Обычно даты в Smarty всегда передаются как временные метки, что - позволяет проектировщикам шаблонов использовать date_format - для полного контроля над форматированием даты и также делает легким - сравнение дат там, где это необходимо. - - - - Начиная с версии Smarty 1.4.0, вы можете передавать даты в Smarty в виде - меток времени Unix (unix timestamps), mysql, или в любом другом виде, который принимает strtotime(). - - - - using date_format - + + + + header.tpl + + + + + {$title|default:"BC News"} + + +]]> + + + + footer.tpl + + + + +]]> + + + + + При отображении главной страниц, строка "Main Page" передаётся в + header.tpl и в последствии используется как заголовок. + При отображении страницы архива, заголовком будет "Archives". + Обратите внимание, что в примере с архивом мы используем переменную из + файла archives_page.conf, вместо того, чтобы жёстко + задать её в шаблоне. Также обратите внимание, что в случае, если + переменная $title не задана, при помощи модификатора переменной + default + заголовком будет "BC News". + + + + + Даты + + Обычно даты в Smarty всегда передаются как временные метки, что + позволяет проектировщикам шаблонов использовать date_format + для полного контроля над форматированием даты и также делает легким + сравнение дат там, где это необходимо. + + + + Начиная с версии Smarty 1.4.0, вы можете передавать даты в Smarty в виде + меток времени Unix (unix timestamps), mysql, или в любом другом виде, + который понимает функция + strtotime(). + + + + using date_format + - - - Результат работы: - - + + + Результат работы: + + - - + + - - - Результат работы: - - + + + Результат работы: + + - - + + - - - - Когда {html_select_date} используется в шаблоне, программистам может - понадобиться получить дату виде временной метки. Вот функция, которая поможет это - сделать. - - -Преобразование элементов формы ввода даты назад к временной метке - + + + + Когда {html_select_date} + используется в шаблоне, программист наверняка захочет преобразовать + данные из формы назад в формат метки времени. Вот функция, которая + поможет вам сделать это. + + + Преобразование элементов формы ввода даты назад к метке времени + ]]> - - - - - WAP/WML - - WAP/WML шаблоны требуют, чтобы заголовок Content-type был - передан вместе с шаблоном. Простейший путь - написать - пользовательскую функцию, которая будет выводить заголовки. - Так как мы будем пользоваться тэгами insert, то заголовки не будут - кэшироваться. Так же ничего не должно выводиться в браузер до - шаблона, иначе заголовки могут быть неправильно восприняты. - - - Использование insert для записи WML Content-Type заголовков - + + + + См. также + {html_select_date}, + {html_select_time}, + date_format и + $smarty.now + + + + + WAP/WML + + WAP/WML шаблоны требуют, чтобы + заголовок Content-type + был передан вместе с шаблоном. Простейший путь - написать + пользовательскую функцию, которая будет выводить заголовки. + Если вы используете кэширование, + это не сработает, так что мы сделаем это с помощью тега + {insert}; + не забывайте, что теги {insert} не кэшируются! + Убедитесь, что перед шаблоном в браузер ничего не выводится, + иначе отправить заголовок не получится. + + + Использование {insert} для записи заголовка Content-Type для WML + ]]> - - - ваш шаблон Smarty должен начинаться с тэга insert: - - + + + ваш шаблон Smarty должен начинаться с тэга insert: + + ]]> - - - - - Составные шаблоны + + + + + + Составные шаблоны + + По традиции, программирование шаблонов в вашем приложении идёт следующим + путём: Сначала вы формируете переменные внутри вашего приложения PHP + (возможно, используя запросы к базе данных). Затем вы создаёте экземпляр + объекта Smarty, назначаете переменные и отображаете шаблон. + Давайте представим себе такую ситуацию: К примеру, у нас есть котировщик + ценных бумаг в нашем шаблоне. Мы собираем данные о котировках ценных бумаг + в нашем приложении, затем передаём эти переменные в шаблон и отображаем + его. Правда, было бы здорово, если бы этот котировщик можно было перенести + в другое приложение, просто подключив к нему шаблон, не беспокоясь об + источнике данных. + + + Вы можете сделать это, написав собственное расширение для получения + данных и присваивания их переменной шаблона. + + + составной шаблон - По традиции, программирование шаблонов в вашем приложении идёт следующим - путём: Сначала вы формируете переменные внутри вашего приложения PHP - (возможно используя запросы к базе данных). Затем вы создаёте экземпляр - объекта Smarty, назначаете переменные и отображаете шаблон. - Давайте представим себе такую ситуацию: К примеру, у нас есть котировщик - ценных бумаг в нашем шаблоне. Мы собираем данные о котировках ценных бумаг - в нашем приложении, затем передаём эти переменные в шаблон и отображаем - его. Правда, было бы здорово, если бы этот котировщик можно было перенести - в другое приложение, просто подключив к нему шаблон, не беспокоясь об - источнике данных. + function.load_ticker.php - + поместите файл в + директорию $plugins - - Вы можете сделать это, написав собственный плагин для получения данных и - присваивания их переменной шаблона. - - - составной шаблон - + ]]> - - + + + index.tpl + + - - - - - Сокрытие E-mail адреса - - Вы когда-нибудь удивлялись, как ваш e-mail адрес попадает в такое - количество спамерских рассылок? Один из способов сбора e-mail адресов - заключается в просмотре веб-страниц. Чтобы помочь предотвратить эту - проблему, вы можете сделать так, чотбы ваш e-mail адрес отображался - в скрытом за javascript'ом виде в HTML-исходниках, в то же время - выглядя и работая корректно в браузере. Это можно совершить при помощи - плагина mailto. - - - Пример сокрытия e-mail адреса - + + + + См. также + {include_php}, + {include} и + {php}. + + + + + Сокрытие E-mail адреса + + Вы когда-нибудь удивлялись, как ваш e-mail адрес попадает в такое + количество спамерских рассылок? Один из способов сбора e-mail адресов + заключается в просмотре веб-страниц. Чтобы помочь предотвратить эту + проблему, вы можете сделать так, чотбы ваш e-mail адрес отображался + в скрытом за javascript'ом виде в HTML-исходниках, в то же время + выглядя и работая корректно в браузере. Это можно совершить при помощи + расширения {mailto}. + + + Пример сокрытия e-mail адреса + - - - - Техническое Замечание - - Этот метод не может гарантировать 100% защиты. - Существует вероятность, что спамер запрограммирует свой - сборщик e-mail адресов на раскодирование этих значений, - но это маловероятно. - - - + + + + Техническое Замечание + + Этот метод не может гарантировать 100% защиты. + Существует вероятность, что спамер запрограммирует свой + сборщик e-mail адресов на раскодирование этих значений, + но это маловероятно... будем надеяться. + + + + См. также + escape и + {mailto}. + + - - - Решение проблем - - - Ошибки Smarty/PHP - - Smarty может ловить многие ошибки, например отсутствующие атрибуты - тэгов или недопустимые имена переменных. Если это произойдет, вы увидите - ошибку наподобие следующей: - - - Ошибка Smarty - + + + Решение проблем + + + Ошибки Smarty/PHP + + 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 находится за пределами этой + директории. + + + + + + + + + + + Переменная + $compile_dir + установлена неверно, эта директория не существует + или templates_c является файлом, а не + директорией. + + + + + + + + У веб сервера нет прав на запись в директорию + $compile_dir. + Смотрите конец страницы + Базовая установка + для получения информации о правах доступа. + + + + + + + + Это означает, что + $caching включено и + $cache_dir + установлена неправильно, директория не существует + или cache является файлом, а не + директорией. + + + + + + + + Это означает, что + $caching включено и + у веб сервера нет прав на запись в директорию + $cache_dir. + Смотрите конец страницы + Базовая установка + для получения информации о правах доступа. + + + + + + См. также + debugging, + $error_reporting и + trigger_error(). + + - + Отладочная консоль - В Smarty включена консоль для отладки. Консоль позволяет узнать все включенные - файлы, присвоенные переменные и настройки из конфигурационных файлов. + В Smarty включена консоль для отладки. Консоль позволяет узнать все + включенные шаблоны, + присвоенные переменные и настройки из + конфинурационных файлов + для текущего экземпляра Smarty. Шаблон "debug.tpl", поставляемый вместе со Smarty, управляет видом консоли. - Установите опцию Smarty $debugging в true и, если надо, укажите в $debug_tpl путь - к шаблону debug.tpl (по умолчанию это SMARTY_DIR). - Когда вы загружаете страницу, должно появиться всплывающие окно и вывести консоль - отладки. Для вывода доступных переменных из конкретного шаблона, см. функцию - {debug}. Для отключения консоли - отладки, установите $debugging в false. Можно также опционально включить консоль - отладки, добавив SMARTY_DEBUG в URL, если включена опция $debugging_ctrl. + Установите опцию Smarty + $debugging в true и, если + необходимо, укажите в + $debug_tpl путь к шаблону + debug.tpl (по умолчанию это + SMARTY_DIR). + Когда вы загружаете страницу, должно появиться всплывающие окно и вывести + консоль отладки. Для вывода доступных переменных из конкретного шаблона, + см. функцию {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. @@ -32,6 +45,13 @@ в миллисекундах. + + См. также + Решение проблем, + $error_reporting + и + trigger_error(). + - + Конфигурационные файлы С помощью конфигурационных файлов дизайнеру удобно управлять глобальными переменными из одного файла. Например, цветами в шаблонах. Обычно, если вы хотите сменить цветувую схему, то необходимо просмотреть каждый шаблон - и в каждом изменить цвета. С помощью файла конфигурации все цвета могут быть - вынесены в отдельный файл и только один файл надо будет исправлять. + и в каждом изменить цвета. С помощью файла конфигурации все цвета могут + быть вынесены в отдельный файл и только один файл надо будет исправлять. Пример файла конфигурации @@ -37,15 +37,17 @@ db=ADDRESSBOOK user=php-user pass=foobar ]]> - + - Значения переменных могут заключаться в кавычки, но это не обязательно. - Можно использовать как двойные, так и одинарные кавычки. Если у вас есть - значение, которое занимает больше, чем одну строку, необходимо заключить - его в тройные кавычки ("""). Можно включать комментарии в файл конфигурации - используя любой синтакис, который не является допустимым синтаксисом - файлов конфигурации. Рекомендуется использовать символ # + Значения переменных в + конфигурационных файлах могут заключаться в кавычки, но это не + обязательно. Можно использовать как двойные, так и одинарные кавычки. + Если у вас есть значение, которое занимает больше, чем одну строку, + необходимо заключить его в тройные кавычки ("""). + Можно включать комментарии в файл конфигурации используя любой синтакис, + который не является допустимым синтаксисом файлов конфигурации. + Для этих целей рекомендуется использовать символ # (hash) в начале строки. @@ -62,7 +64,9 @@ pass=foobar Файлы конфигурации загружаются в шаблон в помощью функции - config_load. + + {config_load} (см. также config_load()). Можно спрятать отдельные переменные или целые секции, добавив к названию @@ -71,6 +75,14 @@ pass=foobar редактировать третьи лица, то вы можете быть спокойны за ценную информацию из файлов конфигураций: они не смогут ее загрузить в шаблон. + + См. также {config_load}, $config_overwrite, get_config_vars(), clear_config() и config_load() + - + Предотвращение обработки Smarty @@ -8,7 +8,8 @@ которая должна по умолчанию обрабатываться. Классическим примером такой ситуации является встраивание Javascript или CSS-кода в шаблон. Проблема появляется из-за того, что эти языки используют - символы { и }, которые так же используются в качестве разделителей + символы { и }, которые так же используются в качестве + разделителей для Smarty. @@ -23,9 +24,8 @@ Подобно тому, как вы используете HTML-сущности (&nbsp; и т.п.), вы можете использовать {ldelim},{rdelim} иди {$smarty.ldelim},{$smarty.rdelim} + linkend="language.function.ldelim">{rdelim} или {$smarty.ldelim} для отображения текущих разделителей. @@ -56,15 +56,18 @@ $smarty->display('example.tpl'); -var foo = ; -function dosomething() { + var foo = ; + function dosomething() { alert("foo is " + foo); -} -dosomething(); + } + dosomething(); ]]> + + См. также модификатор escape + - + Арифметические операции @@ -26,6 +26,9 @@ ]]> + + См. также функцию {math}. + - + Параметры - Большинство функций принимает параметры, которые уточняют или - изменяют ее поведение. Параметры в Smarty очень похожи на - параметры в HTML. Не обязательно заключать статические значения - в кавычки, хотя текст рекомендуется заключать в кавычки. Переменные + Большинство + функций + принимают аргументы, которые уточняют или + изменяют ее поведение. Аргументы в Smarty очень похожи на + параметры в HTML. Статические значения не обязательно заключать + в кавычки, но это рекомендуется для текстовых строк. Переменные также могут быть использованы в качестве параметров, и не должны заключаться в кавычки. - Некоторые параметры принимают логические значения (правда или ложь). + Некоторые параметры принимают логические значения (true или false). Они могут быть указаны словами true, - on, и yes, или - false, off, и + on и yes, или + false, off и no без кавычек. - Синтаксис параметров функции + синтаксис параметров функции -{html_options values=$vals selected=$selected output=$output} - + ]]> diff --git a/docs/ru/designers/language-basic-syntax/language-syntax-comments.xml b/docs/ru/designers/language-basic-syntax/language-syntax-comments.xml index 6c961dbc..2f7b4acb 100644 --- a/docs/ru/designers/language-basic-syntax/language-syntax-comments.xml +++ b/docs/ru/designers/language-basic-syntax/language-syntax-comments.xml @@ -1,31 +1,40 @@ - + Комментарии - Комментарии в шаблонах заключаются в звездочки(*) окруженные . - разделителями, например: {* это комментарий *}. Комментарии не - отображаются в выводе шаблона. Они используются для внутренних - примечаний в шаблонах. + Комментарии в шаблонах заключаются в звездочки (*) окруженные + разделителями, + например: {* это комментарий *}. + Комментарии не отображаются в выводе шаблона, в отличие + от <!-- комментариев HTML -->. + Они используются для внутренних примечаний в шаблонах. Комментарии +{* этот многострочный комментарий + не отправляется в бразуер +*} -{* подключаем шапку шаблона *} +{* здесь включаем заголовок *} {include file="header.tpl"} + +{* Примечание разработчика: $includeFile назначается в скрипте foo.php *} + {include file=$includeFile} {include file=#includeFile#} -{* выпадающий список *} - +{* отображаем выпадающее меню *} + + ]]> 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 14c4b086..9f969511 100644 --- a/docs/ru/designers/language-basic-syntax/language-syntax-functions.xml +++ b/docs/ru/designers/language-basic-syntax/language-syntax-functions.xml @@ -1,13 +1,15 @@ - + Функции Каждый тэг Smarty либо выводит значение переменной, либо вызывает некоторую функцию. Для вызова функции надо заключить в разделители - название функции и ее параметры, например: + название функции и ее + параметры, + например: {funcname attr1="val" attr2="val"}. @@ -29,17 +31,27 @@ Welcome, {$name}! - И встроенные, и пользовательские функции используются с одинаковым - синтаксисом. Встроенные функции реализованы внутри Smarty и не - могут быть изменены или переопределены. Это такие функции, как - if, - section и - strip. - Пользовательские функции реализуются через - плагины. Они могут быть изменены по вашему желанию, также вы можете - написать новые. Примеры пользовательских функций: - html_options и - html_select_date. + И встроенные, + и пользовательские функции + используются с одинаковым синтаксисом. + + + Встроенные функции обеспечивают + внутреннюю работу Smarty, например + {if}, + {section} и + {strip}. + Они не могут быть модифицированы. + + + Пользовательские функции являются + дополнительными и реализуются через + плагины. + Они могут быть изменены по вашему желанию, также вы можете + добавить новые. + Примерами пользовательских функций могут быть + {html_options} и + {popup}. - + Внедренные переменные в двойных кавычках - Smarty распознает переменные, если они встречаются в строках, заключенных в - двойные кавычки. Распознаются переменные, состоящие из чисел, букв, символов - подчеркивания и квадратных кавычек. Если надо использовать другие символы - для обозначения переменной (точка, указатель объекта и т.д.), то переменную - необходимо заключить в обратные кавычки. В данном случае вы не можете - использовать модификаторы, их следует применять вне кавычек. + Smarty распознает + присвоенные + переменные, + если они встречаются в строках, заключенных в двойные кавычки, + если переменные состоят из цифр, букв, знака подчёркивания и + квадратных скобок. + В случае, если переменная содержит другие символы + (точки, ссыки на объекты и т.д.), переменную необходимо заключить + в обратные кавычки. + В данном случае вы не можете использовать + модификаторы, + их следует применять вне кавычек. Синтаксис внедренных переменных @@ -30,6 +36,9 @@ ]]> + + См. также escape. + - + Переменные - Переменные шаблона начинаются со знака доллара. Они могут состоять из цифр, - букв, знаков подчёркивания - как и обычные переменные PHP. Вы можете - обращаться к массивам, имеющим числовые и нечисловые индексы. Вы также можете - обращаться к свойствам и методам объектов. Переменные конфигурационного файла + Переменные шаблона начинаются со знака $доллара. Они могут состоять из цифр, + букв, знаков подчёркивания - как и обычные + PHP variable. + Вы можете обращаться к массивам, имеющим числовые и нечисловые индексы. + Вы также можете обращаться к свойствам и методам объектов. + Переменные конфигурационного файла - это исключения из долларового синтаксиса. К ним можно обращаться, окружив - их решетками или воспользовавшись специальной переменной $smarty.config. + их #решетками# или воспользовавшись специальной переменной + $smarty.config. Переменные @@ -24,6 +27,7 @@ {#foo#} <-- отображает переменную "foo" конфигурационного файла {$smarty.config.foo} <-- синоним для {#foo#} {$foo[bar]} <-- синтаксис доступен только в цикле section, см. {section} +{assign var=foo value="baa"}{$foo} <-- отображает "baa", см. {assign} Также доступно множество других комбинаций @@ -37,6 +41,10 @@ ]]> + + См. также Зарезервированная переменная $smarty + и Переменные файлов конфигурации. + - + Комбинирование модификаторов @@ -12,15 +12,18 @@ Комбинирование модификаторов assign('articleTitle', 'Smokers are Productive, but Death Cuts Efficiency.'); -$smarty->display('index.tpl'); + +$smarty->assign('articleTitle', 'Капля никотина убивает лошадь, хомячка разрывает на куски.'); + ?> - -index.tpl: - +]]> + + + Содержимое шаблона: + + + diff --git a/docs/ru/designers/language-modifiers.xml b/docs/ru/designers/language-modifiers.xml index f7248909..d805f9ab 100644 --- a/docs/ru/designers/language-modifiers.xml +++ b/docs/ru/designers/language-modifiers.xml @@ -1,6 +1,6 @@ - + Модификаторы переменных @@ -44,27 +44,36 @@ количество елементов в массиве $articleTitle. -&designers.language-modifiers.language-modifier-cat; -&designers.language-modifiers.language-modifier-capitalize; -&designers.language-modifiers.language-modifier-count-characters; -&designers.language-modifiers.language-modifier-count-paragraphs; -&designers.language-modifiers.language-modifier-count-sentences; -&designers.language-modifiers.language-modifier-count-words; -&designers.language-modifiers.language-modifier-date-format; -&designers.language-modifiers.language-modifier-default; -&designers.language-modifiers.language-modifier-escape; -&designers.language-modifiers.language-modifier-indent; -&designers.language-modifiers.language-modifier-lower; -&designers.language-modifiers.language-modifier-nl2br; -&designers.language-modifiers.language-modifier-regex-replace; -&designers.language-modifiers.language-modifier-replace; -&designers.language-modifiers.language-modifier-spacify; -&designers.language-modifiers.language-modifier-string-format; -&designers.language-modifiers.language-modifier-strip; -&designers.language-modifiers.language-modifier-strip-tags; -&designers.language-modifiers.language-modifier-truncate; -&designers.language-modifiers.language-modifier-upper; -&designers.language-modifiers.language-modifier-wordwrap; + + См. также + register_modifier(), + register_function(), + Плагины - расширение функциональности Smarty + и + модификаторы, + + + &designers.language-modifiers.language-modifier-capitalize; + &designers.language-modifiers.language-modifier-cat; + &designers.language-modifiers.language-modifier-count-characters; + &designers.language-modifiers.language-modifier-count-paragraphs; + &designers.language-modifiers.language-modifier-count-sentences; + &designers.language-modifiers.language-modifier-count-words; + &designers.language-modifiers.language-modifier-date-format; + &designers.language-modifiers.language-modifier-default; + &designers.language-modifiers.language-modifier-escape; + &designers.language-modifiers.language-modifier-indent; + &designers.language-modifiers.language-modifier-lower; + &designers.language-modifiers.language-modifier-nl2br; + &designers.language-modifiers.language-modifier-regex-replace; + &designers.language-modifiers.language-modifier-replace; + &designers.language-modifiers.language-modifier-spacify; + &designers.language-modifiers.language-modifier-string-format; + &designers.language-modifiers.language-modifier-strip; + &designers.language-modifiers.language-modifier-strip-tags; + &designers.language-modifiers.language-modifier-truncate; + &designers.language-modifiers.language-modifier-upper; + &designers.language-modifiers.language-modifier-wordwrap; - + Переменные 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 могут быть отображены или использованы как + аргументы + функций и + модификаторов, + внутри выражений условных операторов и т.д. Для + вывода значения переменной необходимо указать имя переменной + между разделителями. + Примеры: -&designers.language-variables.language-assigned-variables; -&designers.language-variables.language-config-variables; -&designers.language-variables.language-variables-smarty; + &designers.language-variables.language-assigned-variables; + &designers.language-variables.language-config-variables; + &designers.language-variables.language-variables-smarty; - + Приступая к работе Что такое Smarty? - Smarty - это компилирующий обработчик шаблонов для PHP и на PHP. + Smarty - это компилирующий обработчик шаблонов для PHP. Говоря более четко, он предоставляет один из инструментов, которые позволяет добиться отделения прикладной логики и данных от представления. Это очень удобно в ситуациях, когда программист и @@ -78,55 +78,62 @@ Вы можете создавать пользовательские функции - и модификаторы, что делает язык - шаблонов чрезвычайно расширяемым. + linkend="language.custom.functions">функции и + модификаторы, + что делает язык шаблонов чрезвычайно расширяемым. - Настраиваемые разделители тэгов шаблона, то есть вы можете - использовать {}, {{}}, <!--{}-->, и т.д. + Настраиваемые + разделители тэгов + шаблона, то есть вы можете использовать {}, {{}}, <!--{}--> + и т.д. - Конструкции if/elseif/else/endif конструкции передаются обработчику PHP, - так что синтаксис выражения {if ...} может быть настолько простым или - сложным, насколько вам угодно. + Конструкции + if/elseif/else/endif + передаются обработчику PHP, так что синтаксис выражения {if ...} может + быть настолько простым или сложным, насколько вам угодно. - Допустимо неограниченное вложение секций, условий и т.д. + Допустимо неограниченное вложение + секций, + условий и т.д. - Существует возможность включения PHP-кода прямо в ваш шаблон, однако - обычно в этом нет необходимости (и это не рекоммендуется), так как - движок весьма гибок и расширяем. + Существует возможность + включения PHP-кода + прямо в ваш шаблон, однако обычно в этом нет необходимости + (и это не рекоммендуется), так как движок весьма гибок и расширяем. - Встроенный механизм кэширования. + Встроенный механизм кэширования. - Произвольные источники шаблонов. + Произвольные источники + шаблонов. - Пользовательские функции кэширования. + Пользовательские функции + кэширования. - Компонентная архитектура. + Компонентная архитектура. @@ -151,24 +158,25 @@ Smarty до новой версии. - Файлы библиотеки Smarty + Необходимые файлы библиотеки Smarty - Smarty использует константу PHP SMARTY_DIR, которая указывает путь к - директории библиотеки Smarty. Обычно, если приложение может найти файл - Smarty.class.php, то нет необходимости устанавливать - SMARTY_DIR. Однако, если Smarty.class.php не может + Smarty использует константу PHP + SMARTY_DIR, которая указывает + путь к директории 'libs/' Smarty. Обычно, если ваше приложение может + найти файл Smarty.class.php, то нет необходимости + устанавливать SMARTY_DIR - Smarty сам во всём разберётся. Однако, если + Smarty.class.php не может быть найден в вашем include_path или вы не указывали абсолютный путь к нему в приложении, то вы должны определить SMARTY_DIR вручную. SMARTY_DIR должен включать завершающий слэш. @@ -238,14 +246,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. @@ -270,7 +284,7 @@ $smarty = new Smarty; Вам понадобится как минимум один файл в корневой директории для документов - это скрипт, к которому обращается веб-браузер. Мы назовём наш скрипт - index.php и поместим его в поддиректорию + 'index.php' и поместим его в поддиректорию /guestbook/ корневой директории для документов. @@ -278,12 +292,18 @@ $smarty = new Smarty; Техническое замечание - Бывает удобно настроить веб-сервер так, чтобы "index.php" расценивался + Бывает удобно настроить веб-сервер так, чтобы 'index.php' расценивался как индексный файл дирекотрии по умолчанию, чтобы при запросе страницы - "http://www.example.com/guestbook/", вызывался скрипт index.php без - "index.php" в конце адресной строки. В веб-сервере Apache вы можете - настроить это, добавив "index.php" в конец директивы DirectoryIndex - (записи разделяются пробелами). + http://www.example.com/guestbook/, вызывался скрипт 'index.php' без + 'index.php' в конце адресной строки. В веб-сервере Apache вы можете + настроить это, добавив "index.php" в конец директивы + DirectoryIndex (записи разделяются пробелами), + как в примере из httpd.conf + + + DirectoryIndex + index.htm index.html index.php index.php3 default.html index.cgi + @@ -313,10 +333,15 @@ $smarty = new Smarty; - Smarty понадобятся права на запись в $compile_dir и - $cache_dir, так что убедитесь, что у веб-сервера - есть эти права. Обычно сервер запущен от имени пользователя "nobody" группы - "nobody". Для пользователей OS X пользователем по умолчанию является "www" + Smarty понадобятся права на запись + (пользователей Windows это не касается) в + + $compile_dir и + + $cache_dir, + так что убедитесь, что у веб-сервера есть эти права. + Обычно сервер запущен от имени пользователя "nobody" группы "nobody". + Для пользователей OS X пользователем по умолчанию является "www" группы "www". Если вы используете Apache, вы можете заглянуть в ваш файл httpd.conf (который обычно расположен в "/usr/local/apache/conf/") чтобы узнать, какой пользователь и группа используются. @@ -346,8 +371,9 @@ chmod 770 /web/www.example.com/smarty/guestbook/cache/ - Нам необходимо создать файл index.tpl, которы будет загружаться Smarty. - Он будет расположен в вашей $template_dir. + Нам необходимо создать файл 'index.tpl', которы будет загружаться Smarty. + Он будет расположен в вашей + $template_dir. @@ -365,17 +391,18 @@ Hello, {$name}! Техническое замечание - {* Smarty *} - это комментарий шаблона. Он не является обязательным, но - его размещение в начале каждого шаблона является хорошим тоном. - Это позволяет проще различать файлы независимо от их расширения. - К примеру, текстовые редакторы могут узнавать файл и включать особенную - подсветку синтаксиса. + {* Smarty *} - это + комментарий шаблона. + Он не является обязательным, но его размещение в начале каждого шаблона + является хорошим тоном. Это позволяет проще различать файлы независимо + от их расширения. К примеру, текстовые редакторы могут узнавать этот + файл и включать особенную подсветку синтаксиса. - Теперь давайте отредактируем index.php. Мы создадим экземпляр Smarty, - присвоим значение переменной шаблона и отобразим файл index.tpl. + Теперь давайте отредактируем 'index.php'. Мы создадим экземпляр Smarty, + присвоим значение переменной шаблона и отобразим файл 'index.tpl'. В условиях нашего примера, мы поместили "/usr/local/lib/php/Smarty" в include_path. Убедитесь, что вы сделали то же самое или используете абсолютные пути. diff --git a/docs/ru/language-snippets.ent b/docs/ru/language-snippets.ent index f30dbb91..0c16c8fa 100644 --- a/docs/ru/language-snippets.ent +++ b/docs/ru/language-snippets.ent @@ -1,6 +1,6 @@ - + Техническое замечание @@ -8,21 +8,28 @@ Пераметр merge учитывает ключи массива, поэтому если вы объединяете массивы с числовыми индексами, то они могут наложиться друг на друга или привести к непоследовательному порядку ключей. - Результат отличается от действия функции PHP array_merge(), которая - заново нумерует элементы в массиве с числовоми ключами. + Результат отличается от действия функции PHP + array_merge(), + которая заново нумерует элементы в массиве с числовоми ключами. '> В качестве необязательного третьего аргумента вы можете передать - compile_id. Это полезно в случае, если вы хотите + $compile_id. + Это полезно в случае, если вы хотите скомпилировать несколько различных версий одного шаблона, например несколько версий одного шаблона на разных языках. - Другое применение compile_id можно найти, если вы используете - несколько $template_dir, но только одну $compile_dir. + Другое применение + $compile_id можно найти, + если вы используете несколько + $template_dir, + но только одну + $compile_dir. Устанавливайте свой compile_id для каждой - $template_dir, иначе шаблоны с одинаковыми именами будут записываться - поверх друг-друга. Также вы можете один раз указать $compile_id, вместо того, чтобы каждый - раз передавать его при вызове этой функции. + $template_dir, + иначе шаблоны с одинаковыми именами будут сохраняться поверх друг друга. + Также вы можете один раз указать + $compile_id, + вместо того, чтобы каждый раз передавать его при вызове этой функции. '> diff --git a/docs/ru/preface.xml b/docs/ru/preface.xml index a80b9a42..19a6cb3f 100644 --- a/docs/ru/preface.xml +++ b/docs/ru/preface.xml @@ -1,6 +1,6 @@ - + Предисловие @@ -71,7 +71,7 @@ Мы также знали, как всеобъемлюще и непонятно может выглядить язык PHP для среднестатистического дизайнера, и что это можно замаскировать при помощи более простого синтаксиса шаблонов. А почему бы нам - не объединить две эти силы? Так и родился Smarty... + не объединить две эти силы? Так и родился Smarty... :-) diff --git a/docs/ru/programmers/plugins.xml b/docs/ru/programmers/plugins.xml index e970e4a1..11489517 100644 --- a/docs/ru/programmers/plugins.xml +++ b/docs/ru/programmers/plugins.xml @@ -1,8 +1,8 @@ - + - Плагины - расширение функционала Smarty + Плагины - расширение функциональности Smarty Архитектура версии 2.0 позволяет внедрять плагины, которыми являются