diff --git a/docs/ru/appendixes/tips.xml b/docs/ru/appendixes/tips.xml
index 1fc04220..346f601d 100644
--- a/docs/ru/appendixes/tips.xml
+++ b/docs/ru/appendixes/tips.xml
@@ -1,6 +1,6 @@
-
+
Советы
diff --git a/docs/ru/appendixes/troubleshooting.xml b/docs/ru/appendixes/troubleshooting.xml
index 4c6ad85f..0bf0185e 100644
--- a/docs/ru/appendixes/troubleshooting.xml
+++ b/docs/ru/appendixes/troubleshooting.xml
@@ -1,6 +1,5 @@
-
Troubleshooting
diff --git a/docs/ru/designers/language-basic-syntax.xml b/docs/ru/designers/language-basic-syntax.xml
index 4c72791b..8d1c6820 100644
--- a/docs/ru/designers/language-basic-syntax.xml
+++ b/docs/ru/designers/language-basic-syntax.xml
@@ -15,10 +15,12 @@
интерпретировать их и вывести вместо них соответствующий результат.
-&designers.language-basic-syntax.language-syntax-comments;
-&designers.language-basic-syntax.language-syntax-functions;
-&designers.language-basic-syntax.language-syntax-attributes;
-&designers.language-basic-syntax.language-syntax-quotes;
+ &designers.language-basic-syntax.language-syntax-comments;
+ &designers.language-basic-syntax.language-syntax-functions;
+ &designers.language-basic-syntax.language-syntax-attributes;
+ &designers.language-basic-syntax.language-syntax-quotes;
+ &designers.language-basic-syntax.language-math;
+ &designers.language-basic-syntax.language-escaping;
+
+
+ Предотвращение обработки Smarty
+
+ Иногда необходимо, чтобы Smarty не обрабатывал часть шаблона,
+ которая должна по умолчанию обрабатываться. Классическим примером
+ такой ситуации является встраивание Javascript или CSS-кода в
+ шаблон. Проблема появляется из-за того, что эти языки используют
+ символы { и }, которые так же используются в качестве ограничителей
+ для Smarty.
+
+
+
+ Самым простым решением является избежание этой ситуации путём выноса Javascript'а
+ и CSS-кода в отдельные файлы и использования стандартных методов HTML для доступа к ним.
+
+
+
+ Дословное включение контента возможно при помощи блоков {literal} .. {/literal}.
+ Подобно тому, как вы используете HTML-сущности ( и т.п.), вы можете
+ использовать {ldelim} и {rdelim}, чтобы отобразить текущие
+ ограничители.
+
+
+
+ Порой бывает удобно просто изменить свойства $left_delimiter и
+ $right_delimiter
+ в объекте Smarty.
+
+
+ Изменение ограничителей
+
+left_delimiter = '';
+$smarty->assign('foo', 'bar');
+$smarty->display('example.tpl');
+
+?>
+]]>
+
+
+ Шаблон example.tpl:
+
+
+
+var foo = ;
+function dosomething() {
+ alert("foo is " + foo);
+}
+dosomething();
+
+]]>
+
+
+
+
diff --git a/docs/ru/designers/language-basic-syntax/language-math.xml b/docs/ru/designers/language-basic-syntax/language-math.xml
new file mode 100644
index 00000000..8b0acbfe
--- /dev/null
+++ b/docs/ru/designers/language-basic-syntax/language-math.xml
@@ -0,0 +1,49 @@
+
+
+
+
+ Арифметические операции
+
+ Арифметические операции могут совершаться непосредственно над значениями переменных.
+
+
+ Примеры арифметики
+
+bar-$bar[1]*$baz->foo->bar()-3*7}
+
+{if ($foo+$bar.test%$baz*134232+10+$b+10)}
+
+{$foo|truncate:"`$fooTruncCount/$barTruncFactor-1`"}
+
+{assign var="foo" value="`$foo+$bar`"}
+]]>
+
+
+
+
diff --git a/docs/ru/programmers/api-variables.xml b/docs/ru/programmers/api-variables.xml
index 203ccbc4..f9514cf1 100644
--- a/docs/ru/programmers/api-variables.xml
+++ b/docs/ru/programmers/api-variables.xml
@@ -1,6 +1,6 @@
-
+
Переменные
&programmers.api-variables.variable-template-dir;
@@ -34,9 +34,12 @@
&programmers.api-variables.variable-right-delimiter;
&programmers.api-variables.variable-compiler-class;
&programmers.api-variables.variable-request-vars-order;
+ &programmers.api-variables.variable-request-use-auto-globals;
+ &programmers.api-variables.variable-error-reporting;
&programmers.api-variables.variable-compile-id;
&programmers.api-variables.variable-use-sub-dirs;
&programmers.api-variables.variable-default-modifiers;
+ &programmers.api-variables.variable-default-resource-type;
+
+
+ $default_resource_type
+
+ Это свойство говорит Smarty, какой тип ресурсов использовать по умолчанию.
+ Значением этого свойства по умолчанию является 'file', так что
+ $smarty->display('index.tpl'); и $smarty->display('file:index.tpl');
+ имеют одинаковый смысл. Обратитесь к главе ресурсы для дополнительной информации.
+
+
+
diff --git a/docs/ru/programmers/api-variables/variable-error-reporting.xml b/docs/ru/programmers/api-variables/variable-error-reporting.xml
new file mode 100644
index 00000000..8908ed4c
--- /dev/null
+++ b/docs/ru/programmers/api-variables/variable-error-reporting.xml
@@ -0,0 +1,32 @@
+
+
+
+
+ $error_reporting
+
+ Если это свойство имеет ненулевое значние, то оно используется
+ в качестве значения error_reporting внутри display() и
+ fetch(). При включенном режиме отладки это значение игнорируется
+ и уровень обработки ошибок не меняется.
+
+
+
diff --git a/docs/ru/programmers/api-variables/variable-request-use-auto-globals.xml b/docs/ru/programmers/api-variables/variable-request-use-auto-globals.xml
new file mode 100644
index 00000000..d426b67a
--- /dev/null
+++ b/docs/ru/programmers/api-variables/variable-request-use-auto-globals.xml
@@ -0,0 +1,36 @@
+
+
+
+
+ $request_use_auto_globals
+
+ Определяет должен ли Smarty использовать $HTTP_*_VARS[]
+ ($request_use_auto_globals=false - значением по умолчанию) или
+ $_*[] ($request_use_auto_globals=true). Это влияет на поведение шаблонов,
+ которые используют {$smarty.request.*}, {$smarty.get.*} и т.д.
+ Внимание: если вы установите $request_use_auto_globals в true, variable.request.vars.order
+ не учитывается, а вместо него используется значение
+ gpc_order из настроек php.
+
+
+
diff --git a/docs/ru/programmers/caching.xml b/docs/ru/programmers/caching.xml
index 4f7cc313..0827f4e8 100644
--- a/docs/ru/programmers/caching.xml
+++ b/docs/ru/programmers/caching.xml
@@ -28,7 +28,8 @@
&programmers.caching.caching-setting-up;
&programmers.caching.caching-multiple-caches;
&programmers.caching.caching-groups;
-
+ &programmers.caching.caching-cacheable;
+
+
+
+ Управление кэшированием результатов работы плагинов
+
+ Начиная с плагинов Smarty-2.6.0, кэшируемость плагинов может быть объявлена
+ во время их регистрации. Третий аргумент у register_block,
+ register_compiler_function и register_function называется
+ $cacheable и имеет значение по умолчанию true,
+ что соответствует поведению плагинов Smarty версии ранее 2.6.0
+
+
+
+ Если плагин регистрируется с $cacheable=false, плагин вызывается
+ каждый раз, когда страница отображается, даже если сама страница
+ кэширована. Поведение плагина немного похоже на функцию
+ insert.
+
+
+
+ В отличие от {insert},
+ атрибуты плагина не кэшируются по умолчанию. Они могут быть
+ объявлены как кэшируемые при помощи четвертого параметра -
+ $cache_attrs. $cache_attrs
+ это массив имен атрибутов, которые должны кэшироваться, чтобы
+ функция плагина брала значение в том виде, в котором оно было в момент
+ помещения страницы в кэш, каждый раз, когда страница запрашивается из кэша.
+
+
+
+ Предотвращение кэширования результата работы плагина
+
+caching = true;
+
+function remaining_seconds($params, &$smarty) {
+ $remain = $params['endtime'] - time();
+ if ($remain >=0)
+ return $remain . " second(s)";
+ else
+ return "done";
+}
+
+$smarty->register_function('remaining', 'remaining_seconds', false, array('endtime'));
+
+if (!$smarty->is_cached('index.tpl')) {
+ // извлекаем $obj из БД и присваиваем...
+ $smarty->assign_by_ref('obj', $obj);
+}
+
+$smarty->display('index.tpl');
+?>
+]]>
+
+
+ Шаблон index.tpl:
+
+
+endtime}
+]]>
+
+
+ Количество секунд до endtime объекта $obj изменяется при каждом
+ обновлении страницы, даже если страница кэширована. Так как
+ атрибут endtime кэширован, объект извлекается из базы данных в тот момент,
+ когда страница помещается в кэш, но не во время последующих запросов
+ к странице.
+
+
+
+
+ Предотвращение кэширования части страницы
+
+caching = true;
+
+function smarty_block_dynamic($param, $content, &$smarty) {
+ return $content;
+}
+$smarty->register_block('dynamic', 'smarty_block_dynamic', false);
+
+$smarty->display('index.tpl');
+?>
+]]>
+
+
+ Шаблон index.tpl:
+
+
+
+
+
+
+
+ Во время обновления страницы вы заметите, что даты отличаются.
+ Одна является "динамической", другая - "статической". Вы можете поместить
+ в конструкцию {dynamic}...{/dynamic} любой код и быть уверенным,
+ что он не будет помещён в кэш вместе с остальной частью страницы.
+
+
+
+
+
diff --git a/docs/ru/programmers/plugins.xml b/docs/ru/programmers/plugins.xml
index 0de2e286..364c909d 100644
--- a/docs/ru/programmers/plugins.xml
+++ b/docs/ru/programmers/plugins.xml
@@ -48,7 +48,7 @@
в эту директорию и Smarty будет использовать его в автоматическом режиме.
-
+ &programmers.plugins.plugins-howto;
&programmers.plugins.plugins-naming-conventions;
&programmers.plugins.plugins-writing;
&programmers.plugins.plugins-functions;
diff --git a/docs/ru/programmers/plugins/plugins-howto.xml b/docs/ru/programmers/plugins/plugins-howto.xml
new file mode 100644
index 00000000..65e056fe
--- /dev/null
+++ b/docs/ru/programmers/plugins/plugins-howto.xml
@@ -0,0 +1,47 @@
+
+
+
+
+ Как работают плагины
+
+ Плагины загружаются только по необходимости. Только те модификаторы,
+ функции, ресурсы и т.д., которые используются в шаблоне, будут
+ загружены. К тому же, каждый плагин загружается только один раз,
+ даже если у вас есть несколько экземпляров Smarty, работающих
+ в пределах одного запроса.
+
+
+ Пре/постфильтры и фильтры вывода заслуживают отдельного упоминания.
+ Так как они не упоминаются в шаблонах, они должны быть зарегистрированы
+ и загружены неявно через API-функции ещё до обработки шаблона.
+ Порядок выполнения нескольких фильтров одного типа зависит от
+ порядка, в котором они регистрировались или загружались.
+
+
+ Директория плагинов
+ может быть строкой, содержащей путь, или массивом, содержащим
+ множество путей. Чтобы установить плагин, просто поместите его
+ в одну из этих директорий и Smarty автоматически будет его использовать.
+
+
+
+