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. + - + +