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.
+
+
+
+
+
+ ЧаВО находятся тут и
+ тут.
+
+
+
-
+
-
+ Советы
-
+ Обработка пустых переменных
- , , ,
- ,
- " ".
- {if},
- Smatry -
+ Иногда, например, для того чтобы фон таблицы работал корректно,
+ необходимо вывести вместо пустого значения переменной, значение
+ по умолчанию, например .
+ Многие бы использовали конструкцию
+ {if}
+ в данной ситуации,
+ но в Smatry есть более короткий путь - используя модификатор переменной
default.
+
+
+
+ PHP выдаст ошибку Undefined variable в случае, если
+
+ error_reporting() установлен в E_ALL
+ и переменная не была присвоена шаблону Smarty.
+
+
+
- ,
+ Вывод , если переменная пуста
- . 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.nowWAP/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- ( ..),
- {ldelim},{rdelim} {$smarty.ldelim}
- .
+ Дословное включение контента возможно при помощи блоков
+ {literal}..{/literal}.
+ Подобно тому, как вы используете HTML-сущности ( и т.п.), вы можете
+ использовать {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,
- onyes,
- 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}
-{*
-
- .
- ,
+ Конфигурационные файлы
+ могут также содержать секции. Вы можете загружать
+ переменные из определенной секции, указав атрибут
'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}.
- fromitem.
- {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 @@
-
-
-
-
-
+ Имя атрибута
+ Тип
+ Обязателен
+ По умолчанию
+ Описаниеfromarray
-
+ Даn/a
- ,
+ Массив, по которому надо пройтисьitemstring
-
+ Даn/a
- ,
-
+ Имя переменной, которая будет выступать в
+ качестве значения текущего елементаkeystring
-
+ Нетn/a
- ,
-
+ Имя переменной, которая будет выступать в
+ качестве ключа текущего елементаnamestring
-
+ Нет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
-
+ проверка идентичности===!notnot $a
-
+ отрицание!%mod$a mod $b
-
+ остаток от деления%is [not] div by$a is not div by 4
-
+ возможно деление без остатка$a % $b == 0is [not] even$a is not even
- []
+ [не]чётно$a % 2 == 0is [not] even by$a is not even by $b
- []
+ [не]чётно значению($a / $b) % 2 == 0is [not] odd$a is not odd
- []
+ [не]нечётно$a % 2 != 0is [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 @@
-
-
-
-
-
+ Имя атрибута
+ Тип
+ Обязателен
+ По умолчанию
+ Описаниеfilestring
-
+ Даn/a
- php
+ Имя подключаемого php файлаonceboolean
-
+ Нетtrue
- ,
-
+ Указывает подключать файл или нет,
+ если он уже был однажды подключенassignstring
-
+ Нет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 @@
-
-
-
-
-
+ Имя атрибута
+ Тип
+ Обязателен
+ По умолчанию
+ Описаниеfilestring
-
+ Даn/a
-
+ Имя файла шаблона для включенияassignstring
-
+ Нет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'}