diff --git a/docs/ru/getting-started.xml b/docs/ru/getting-started.xml
index 186f6684..edd26ac4 100644
--- a/docs/ru/getting-started.xml
+++ b/docs/ru/getting-started.xml
@@ -4,202 +4,259 @@
Что такое Smarty?
- Smarty - шаблонный движок для php. Более определенно, он предоставляет
- управляемый способ разделения прикладной логики и содержания от
- представления. Это очень удобно в ситуациях, когда программист и
- проектировщик шаблона играют различные роли, или в часто - это
- различные люди. Например, скажем, Вы создаете страницу, которая
- показывает газетную статью. Название статьи, автор и сама статья -
- елементы, которые не содржат никакой информации о том, как они
- будут представлены. Их передают в Smarty в приложении, а проектировщик
- шаблона редактирует шаблоны и использует комбинацию тэгов HTML и
- тэгов шаблона, чтобы отформатировать представление этих элементов
- (таблицы HTML, фоновые цвета, размеры шрифта, стиля, и т.д.). Однажды
- программист захочет изменить способ хранения статьи (сделать изменения
- в логике приложения.) Это изменение не затрагивает проектировщика шаблонов.
- Содержание будет все еще передаваться в шаблон таким же самым способом.
- Аналогично, если проектировщик шаблона хочет полностью перепроектировать
- шаблоны, это не потребует никаких изменений к прикладной логике. Поэтому,
- программист может делать изменения в прикладной логике без потребности
- изменения шаблонов, а проектировщик шаблона может делать изменения в
- шаблонах без изменения прикладной логики.
-
-
- Теперь коротко о том, чего не может Smarty. Он не пытается полностью
- разделить логику от шаблонов. Нет никакой проблемы с логикой в ваших
- шаблонах при условии, что это строго логика представление. Совета:
- держите прикладную логику вне шаблонов, а логику представления вне
- приложения. Так проще всего сохранить проект управляемым и расширяемым
- в течение долгого времени.
-
-
- Один из уникальных аспектов в Smarty - компилирование шаблонов. Это
- означает, что Smarty читает файлы шаблонов и создает php сценарии из них.
- Они создаются один раз и потом только выполняються. Поэтому нету
- необходимости обрабатывать файл шаблона для каждого запроса, и каждый
- шаблон может пользоваться всеми преимуществами кэшируюших решений
- php компилятора таких, как Zend Accelerator
- (&url.zend;) или PHP Accelerator
- (&url.php-accelerator;).
+ Smarty - это компилирующий обработчик шаблонов для PHP и на PHP.
+ Говоря более четко, он предоставляет один из инструментов, которые
+ позволяет добиться разделения прикладной логики и от
+ представления. Это очень удобно в ситуациях, когда программист и
+ верстальщик шаблона - различные люди. Например, скажем, вы создаете
+ страницу, которая показывает газетную статью. Название статьи, автор
+ и сама статья - элементы, которые не содержат никакой информации о том, как они
+ будут представлены. Их передают в Smarty из приложения, а верстальщик
+ шаблона редактирует шаблоны и использует комбинацию тэгов HTML и
+ тэгов шаблона, чтобы отформатировать представление этих элементов
+ (таблицы HTML, фоновые цвета, размеры шрифта, стиля и т.д.). Однажды
+ программист захочет изменить способ хранения статьи (сделать изменения
+ в логике приложения.) Это изменение не вызовет изменений в шаблонах.
+ Содержание будет все еще передаваться в шаблон таким же самым способом.
+ Аналогично, если верстальщик захочет полностью перепроектировать
+ шаблоны, это не потребует никаких изменений к прикладной логике.
+
+
+ Теперь коротко о том, чего не может Smarty. Он не пытается полностью
+ разделить логику от шаблонов. Нет никакой проблемы с логикой в ваших
+ шаблонах при условии, что это строго логика представления. Совет:
+ держите прикладную логику вне шаблонов, а логику представления вне
+ приложения. Так проще всего сохранить проект управляемым и расширяемым
+ в течение длительного времени.
- Некоторые возможности Smarty:
+ Одна из уникальных возможностей Smarty - компилирование шаблонов. Это
+ означает, что Smarty читает файлы шаблонов и создает PHP-код на их основе.
+ Код создаётся один раз и потом только выполняется. Поэтому нет
+ необходимости обрабатывать файл шаблона для каждого запроса и каждый
+ шаблон может пользоваться всеми преимуществами таких кэшируюших решений,
+ как Zend Accelerator
+ (&url.zend;) или PHP Accelerator
+ (&url.php-accelerator;).
+
+
+ Некоторые особенности Smarty:
- Он очень быстр.
- Он эффективен, так как PHP обработчик делает грязную
- работу
- Никакой лишней обработки шаблонов, они компилируються
- только один раз.
- Перекомпилируются только те шаблоны, которые
- именились.
- Вы можете создавать пользовательскиефункции and модификаторы, так что язык шаблонов чрезвычайно расширяем.
- Настраиваемые разделители тэгов шаблона, то есть вы можете
- использовать {}, {{}}, <!--{}-->, и т.д..
- If/elseif/else/endif конструкции передаются PHP обработчику,
- так что синтаксис {if ...} выражения может быть настолько простым или
- комплексным, как вам нравится.
- Допустимо неограниченное вложение секций, условий и
- т.д.
- Возможно включать php код прямо в ваш шаблон, хотя это
- не должно требоваться (не рекомендуется), в силу того, что движок гибко
- настраиваемый.
- Встроеное кэширование
- Произвольные источники шаблона
- Произвольные функции обработки кэширования
- Поддержка плагинов
+
+
+ Он очень быстр
+
+
+
+
+ Он эффективен, так как PHP обработчик делает за него грязную работу
+
+
+
+
+ Никакой лишней обработки шаблонов, они компилируются только один раз
+
+
+
+
+ Перекомпилируются только те шаблоны, которые именились
+
+
+
+
+ Вы можете создавать пользовательские
+ функции и
+ модификаторы, что делает язык
+ шаблонов чрезвычайно расширяемым
+
+
+
+
+ Настраиваемые разделители тэгов шаблона, то есть вы можете
+ использовать {}, {{}}, <!--{}-->, и т.д..
+
+
+
+
+ If/elseif/else/endif конструкции передаются PHP обработчику,
+ так что синтаксис {if ...} выражения может быть настолько простым или
+ комплексным, как вам нравится
+
+
+
+
+ Допустимо неограниченное вложение секций, условий и т.д.
+
+
+
+
+ Существует возможность включения PHP-кода прямо в ваш шаблон, однако это
+ не рекомендуется
+
+
+
+
+ Встроеное кэширование
+
+
+
+
+ Произвольные источники шаблона
+
+
+
+
+ Произвольные функции обработки кэширования
+
+
+
+
+ Поддержка плагинов
+
+
+
- Инсталяция
+ УстановкаТребования
- Smarty необходим вебсервер с запущеным PHP версии 4.0.6 или выше.
+ Для установки и работы Smarty необходим веб-сервер с установленным PHP версии 4.0.6 или выше.
-
Базовая инсталяция
-
- Инсталируйте библиотечный файлы Smarty, которые анаходятся в папке /libs/
- дистрибутива. Вы НЕ ДОЛЖНЫ редактировать эти файлы. Они разделены среди
- всех приложений и могут изменяться только при обновлении Smarty.
-
-
- Бибилотечные файлы Smarty
+
+ Скопируйте файлы Smarty, которые находятся в директории /libs/ дистрибутива.
+ НЕ МЕНЯЙТЕ эти файлы. Использйте возможности внешней настройки вместо
+ этого.
+
+
+ Файлы Smarty
+
-
-
-
- Smarty использует PHP константу SMARTY_DIR, которая указывает путь к
- библиотечным файлам Smarty. Обычно, если приложение может найти файл
- Smarty.class.php, то нет необходимости устанавливать
- SMARTY_DIR, Иначе, если Smarty.class.php не в вашем
- include_path, или вы не указывали абсолютный путь к нему в приложении, то
- вы должны определить SMARTY_DIR вручную. SMARTY_DIR должен
- включать завершающий слэш.
-
-
- Как надо создавать обект Smarty в ваших PHP сценариях:
-
-
-
+/plugins/*.php (все файлы!)
+/core/*.php (все файлы!)
+]]>
+
+
+
+ Smarty использует PHP константу SMARTY_DIR, которая указывает путь к
+ файлам Smarty. Обычно, если приложение может найти файл
+ Smarty.class.php, то нет необходимости устанавливать
+ SMARTY_DIR. Однако, если Smarty.class.php не может
+ быть найден в вашем include_path или вы не указывали абсолютный путь к нему в
+ приложении, то вы должны определить SMARTY_DIR вручную.
+ SMARTY_DIR должен включать завершающий слэш.
+
+
+ Как надо следует инстанциировать объект Smarty в ваших PHP-скриптах:
+
+ Создание обекта Smarty
+
-
+$smarty = new Smarty;
+]]>
+
+
+
+ Попробуйте выполнить вышеуказанный код. Если Вы получаете ошибку о том,
+ что Smarty.class.php не найден, попробуйте следующие
+ варианты:
+
-
- Попробуйте выполнить вышеупомянутый сценарий. Если Вы получаете ошибку о том,
- что Smarty.class.php не найден, вы должны селать одно из
- следующего:
-
-
-
- Укажите абсолютный путь к библиотечному каталогу
+
+ Укажите абсолютный путь к директории Smarty
+
-
+$smarty = new Smarty;
+]]>
+
+
-
- Добавьте библиотечный каталог к php_include пути
+
+ Добавьте директорию Smarty к include_path
-// Отредактируйте ваш php.ini файл, добавьте библиотечный
-// каталог Smarty к include_path и перезаупстите веб сервер.
-// Тогда следующее должно работать:
+
-
+$smarty = new Smarty;
+]]>
+
+
-
- Установите SMARTY_DIR константу вручную
+
+ Установите значение константы SMARTY_DIR
+
-
+$smarty = new Smarty;
+]]>
+
+
-
- Теперь, когда библиотечные файлы находятся на месте, пришло время
- установка каталоги Smarty для вашего приложения. Smarty требует
- четыре каталога, которые (по умолчанию) называются
- templates, templates_c,
- configs и cache. Каждый из
- них определяем свойствами класса Smarty $template_dir,
- $compile_dir, $config_dir, и
- $cache_dir соответственно. Очень рекомендуется, чтобы
- вы устанавливали отдельные наборы этих каталогов для каждого приложения,
- которое будет использовать Smarty.
-
-
- Убедитесь, что Вы знаете расположение вашего корня документа на веб
- сервере. В нашем примере, корень документа - "/web/www.mydomain.com/docs/".
- К каталогам Smarty обращается только библиотека Смарти и никогда не обращает непосредственно web-браузером. Поэтому, чтобы избежать любых предприятий(беспокойств) защиты, рекомендует разместить эти каталоги в каталог от корня документа.
+
+ Теперь, когда все файлы находятся на своих местах, пришло время
+ установки директорий Smarty в вашем приложении. Smarty требует
+ четыре директории, которые по умолчанию называются
+ templates, templates_c,
+ configs и cache. Каждый из
+ них определяется свойствами класса Smarty $template_dir,
+ $compile_dir, $config_dir, и
+ $cache_dir соответственно. Настойчиво рекомендуется
+ использовать разные наборы этих директорий для каждого приложения,
+ использующего Smarty.
+
+
+ Убедитесь, что вы знаете значение DOCUMENT_ROOT вашего веб-сервера.
+ В нашем примере это "/web/www.mydomain.com/docs/".
+ Так как к файлам Smarty будут обращаться только скрипты, то вам
+ рекомендуется вынести директории Smarty за пределы
+ DOCUMENT_ROOT, чтобы избежать лишнего беспокойства.
+
- Be sure you know the location of your web server document root. In our
- example, the document root is "/web/www.mydomain.com/docs/". The Smarty
- directories are only accessed by the Smarty library and never accessed
- directly by the web browser. Therefore to avoid any security concerns, it
- is recommended to place these directories in a directory
- off the document root.
-
-
- For our installation example, we will be setting up the Smarty environment
- for a guest book application. We picked an application only for the purpose
- of a directory naming convention. You can use the same environment for any
- application, just replace "guestbook" with the name of your app. We'll
- place our Smarty directories under
- "/web/www.mydomain.com/smarty/guestbook/".
-
-
- You will need as least one file under your document root, and that is the
- script accessed by the web browser. We will call our script "index.php",
- and place it in a subdirectory under the document root called
- "/guestbook/". It is convenient to setup the web server so that "index.php"
- can be identified as the default directory index, so if you access
- "http://www.mydomain.com/guestbook/", the index.php script will be executed
- without "index.php" in the URL. In Apache you can set this up by adding
- "index.php" onto the end of your DirectoryIndex setting (separate each
- entry with a space.)
-
-
-
- Lets take a look at the file structure so far:
-
-
-
+
+
+
+ For our installation example, we will be setting up the Smarty environment
+ for a guest book application. We picked an application only for the purpose
+ of a directory naming convention. You can use the same environment for any
+ application, just replace "guestbook" with the name of your app. We'll
+ place our Smarty directories under
+ "/web/www.mydomain.com/smarty/guestbook/".
+
+
+ You will need as least one file under your document root, and that is the
+ script accessed by the web browser. We will call our script "index.php",
+ and place it in a subdirectory under the document root called
+ "/guestbook/". It is convenient to setup the web server so that "index.php"
+ can be identified as the default directory index, so if you access
+ "http://www.mydomain.com/guestbook/", the index.php script will be executed
+ without "index.php" in the URL. In Apache you can set this up by adding
+ "index.php" onto the end of your DirectoryIndex setting (separate each
+ entry with a space.)
+
+
+ Lets take a look at the file structure so far:
+
+ Example file structure
+
/web/www.mydomain.com/smarty/guestbook/configs/
/web/www.mydomain.com/smarty/guestbook/cache/
-/web/www.mydomain.com/docs/guestbook/index.php
-
-
-
- Smarty will need write access to the $compile_dir and
- $cache_dir, so be sure the web server user can write
- to them. This is usually user "nobody" and group "nobody". For OS X users,
- the default is user "www" and group "www". If you are using Apache, you can
- look in your httpd.conf file (usually in "/usr/local/apache/conf/") to see
- what user and group are being used.
-
-
-
+/web/www.mydomain.com/docs/guestbook/index.php
+]]>
+
+
+
+ Smarty will need write access to the $compile_dir and
+ $cache_dir, so be sure the web server user can write
+ to them. This is usually user "nobody" and group "nobody". For OS X users,
+ the default is user "www" and group "www". If you are using Apache, you can
+ look in your httpd.conf file (usually in "/usr/local/apache/conf/") to see
+ what user and group are being used.
+
+ Setting file permissions
-
+
-
-
-
- Technical Note
-
- chmod 770 will be fairly tight security, it only allows user "nobody" and
- group "nobody" read/write access to the directories. If you would like to
- open up read access to anyone (mostly for your own convenience of viewing
- these files), you can use 775 instead.
+chmod 770 /web/www.mydomain.com/smarty/guestbook/cache/
+]]>
+
+
+
+ Technical Note
+
+ chmod 770 will be fairly tight security, it only allows user "nobody" and
+ group "nobody" read/write access to the directories. If you would like to
+ open up read access to anyone (mostly for your own convenience of viewing
+ these files), you can use 775 instead.
-
-
-
- We need to create the index.tpl file that Smarty will load. This will be
- located in your $template_dir.
-
-
-
+
+
+ We need to create the index.tpl file that Smarty will load. This will be
+ located in your $template_dir.
+
+ Editing /web/www.mydomain.com/smarty/guestbook/templates/index.tpl
-
+
-
-
-
-
- Technical Note
-
- {* Smarty *} is a template comment. It is not required, but it is good
- practice to start all your template files with this comment. It makes
- the file easy to recognize regardless of the file extension. For
- example, text editors could recognize the file and turn on special
- syntax highlighting.
-
-
-
-
- Now lets edit index.php. We'll create an instance of Smarty, assign a
- template variable and display the index.tpl file. In our example
- environment, "/usr/local/lib/php/Smarty" is in our include_path. Be sure you
- do the same, or use absolute paths.
-
-
-
+Hello, {$name}!
+]]>
+
+
+
+ Technical Note
+
+ {* Smarty *} is a template comment. It is not required, but it is good
+ practice to start all your template files with this comment. It makes
+ the file easy to recognize regardless of the file extension. For
+ example, text editors could recognize the file and turn on special
+ syntax highlighting.
+
+
+
+ Now lets edit index.php. We'll create an instance of Smarty, assign a
+ template variable and display the index.tpl file. In our example
+ environment, "/usr/local/lib/php/Smarty" is in our include_path. Be sure you
+ do the same, or use absolute paths.
+
+ Editing /web/www.mydomain.com/docs/guestbook/index.php
+cache_dir = '/web/www.mydomain.com/smarty/guestbook/cache/';
$smarty->assign('name','Ned');
-$smarty->display('index.tpl');
-
-
-
- Technical Note
-
- In our example, we are setting absolute paths to all of the Smarty
- directories. If '/web/www.mydomain.com/smarty/guestbook/' is within your
- PHP include_path, then these settings are not necessary. However, it is
- more efficient and (from experience) less error-prone to set them to
- absolute paths. This ensures that Smarty is getting files from the
- directories you intended.
-
-
-
-
- Now load the index.php file from your web browser. You should see "Hello,
- Ned!"
-
-
- You have completed the basic setup for Smarty!
-
+$smarty->display('index.tpl');
+]]>
+
+
+
+ Technical Note
+
+ In our example, we are setting absolute paths to all of the Smarty
+ directories. If '/web/www.mydomain.com/smarty/guestbook/' is within your
+ PHP include_path, then these settings are not necessary. However, it is
+ more efficient and (from experience) less error-prone to set them to
+ absolute paths. This ensures that Smarty is getting files from the
+ directories you intended.
+
+
+
+ Now load the index.php file from your web browser. You should see "Hello,
+ Ned!"
+
+
+ You have completed the basic setup for Smarty!
+
+
- Extended Setup
+ Extended Setup
-
- This is a continuation of the basic installation, please read
- that first!
-
-
- A slightly more flexible way to setup Smarty is to extend the class and
- initialize your Smarty environment. So instead of repeatedly setting
- directory paths, assigning the same vars, etc., we can do that in one place.
- Lets create a new directory "/php/includes/guestbook/" and make a new file
- called "setup.php". In our example environment, "/php/includes" is in our
- include_path. Be sure you set this up too, or use absolute file paths.
-
-
-
- Editing /php/includes/guestbook/setup.php
-
+
+ This is a continuation of the basic installation, please read
+ that first!
+
+
+ A slightly more flexible way to setup Smarty is to extend the class and
+ initialize your Smarty environment. So instead of repeatedly setting
+ directory paths, assigning the same vars, etc., we can do that in one place.
+ Lets create a new directory "/php/includes/guestbook/" and make a new file
+ called "setup.php". In our example environment, "/php/includes" is in our
+ include_path. Be sure you set this up too, or use absolute file paths.
+
+
+ Editing /php/includes/guestbook/setup.php
+
+assign('app_name','Guest Book');
}
-}
+}
+]]>
+
-
-
- Now lets alter the index.php file to use setup.php:
-
-
+
+ Now lets alter the index.php file to use setup.php:
+ Editing /web/www.mydomain.com/docs/guestbook/index.php
-
+assign('name','Ned');
-$smarty->display('index.tpl');
+$smarty->display('index.tpl');
+]]>
+
-
-
- Now you see it is quite simple to bring up an instance of Smarty, just use
- Smarty_GuestBook which automatically initializes everything for our application.
-
-
+
+ Now you see it is quite simple to bring up an instance of Smarty, just use
+ Smarty_GuestBook which automatically initializes everything for our application.
+
-
+
+