cvs: smarty /docs/ru getting-started.xml
"George Miroshnikov" <[email protected]>
| Newsgroups | gmane.comp.php.cvs.smarty |
|---|---|
| Message-ID | <cvsfreespace1095029176@cvsserver> |
freespace Sun Sep 12 18:46:16 2004 EDT
Modified files:
/smarty/docs/ru getting-started.xml
Log:
Finished translation and syncronized with English revision.
--
Smarty CVS Mailing List (http://cvs.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
freespace-20040912184616.txt
(text/plain, 44.2 KB)
http://cvs.php.net/diff.php/smarty/docs/ru/getting-started.xml?r1=1.6&r2=1.7&ty=u
Index: smarty/docs/ru/getting-started.xml
diff -u smarty/docs/ru/getting-started.xml:1.6 smarty/docs/ru/getting-started.xml:1.7
--- smarty/docs/ru/getting-started.xml:1.6 Mon Jul 19 09:11:22 2004
+++ smarty/docs/ru/getting-started.xml Sun Sep 12 18:46:16 2004
@@ -1,470 +1,519 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<!-- $Revision: 1.6 $ -->
-<!-- EN-Revision: 1.4 Maintainer: tony2001 Status: ready -->
-<part id="getting.started">
- <title>Ïðèñòóïàÿ ê ðàáîòå</title>
-
- <chapter id="what.is.smarty">
- <title>×òî òàêîå Smarty?</title>
- <para>
- Smarty - ýòî êîìïèëèðóþùèé îáðàáîò÷èê øàáëîíîâ äëÿ PHP è íà PHP.
- Ãîâîðÿ áîëåå ÷åòêî, îí ïðåäîñòàâëÿåò îäèí èç èíñòðóìåíòîâ, êîòîðûå
- ïîçâîëÿåò äîáèòüñÿ ðàçäåëåíèÿ ïðèêëàäíîé ëîãèêè è îò
- ïðåäñòàâëåíèÿ. Ýòî î÷åíü óäîáíî â ñèòóàöèÿõ, êîãäà ïðîãðàììèñò è
- âåðñòàëüùèê øàáëîíà - ðàçëè÷íûå ëþäè. Íàïðèìåð, ñêàæåì, âû ñîçäàåòå
- ñòðàíèöó, êîòîðàÿ ïîêàçûâàåò ãàçåòíóþ ñòàòüþ. Íàçâàíèå ñòàòüè, àâòîð
- è ñàìà ñòàòüÿ - ýëåìåíòû, êîòîðûå íå ñîäåðæàò íèêàêîé èíôîðìàöèè î òîì, êàê îíè
- áóäóò ïðåäñòàâëåíû. Èõ ïåðåäàþò â Smarty èç ïðèëîæåíèÿ, à âåðñòàëüùèê
- øàáëîíà ðåäàêòèðóåò øàáëîíû è èñïîëüçóåò êîìáèíàöèþ òýãîâ HTML è
- òýãîâ øàáëîíà, ÷òîáû îòôîðìàòèðîâàòü ïðåäñòàâëåíèå ýòèõ ýëåìåíòîâ
- (òàáëèöû HTML, ôîíîâûå öâåòà, ðàçìåðû øðèôòà, ñòèëÿ è ò.ä.). Îäíàæäû
- ïðîãðàììèñò çàõî÷åò èçìåíèòü ñïîñîá õðàíåíèÿ ñòàòüè (ñäåëàòü èçìåíåíèÿ
- â ëîãèêå ïðèëîæåíèÿ.) Ýòî èçìåíåíèå íå âûçîâåò èçìåíåíèé â øàáëîíàõ.
- Ñîäåðæàíèå áóäåò âñå åùå ïåðåäàâàòüñÿ â øàáëîí òàêèì æå ñàìûì ñïîñîáîì.
- Àíàëîãè÷íî, åñëè âåðñòàëüùèê çàõî÷åò ïîëíîñòüþ ïåðåïðîåêòèðîâàòü
- øàáëîíû, ýòî íå ïîòðåáóåò íèêàêèõ èçìåíåíèé ê ïðèêëàäíîé ëîãèêå.
- </para>
- <para>
- Òåïåðü êîðîòêî î òîì, ÷åãî íå ìîæåò Smarty. Îí íå ïûòàåòñÿ ïîëíîñòüþ
- ðàçäåëèòü ëîãèêó îò øàáëîíîâ. Íåò íèêàêîé ïðîáëåìû ñ ëîãèêîé â âàøèõ
- øàáëîíàõ ïðè óñëîâèè, ÷òî ýòî ñòðîãî ëîãèêà ïðåäñòàâëåíèÿ. Ñîâåò:
- äåðæèòå ïðèêëàäíóþ ëîãèêó âíå øàáëîíîâ, à ëîãèêó ïðåäñòàâëåíèÿ âíå
- ïðèëîæåíèÿ. Òàê ïðîùå âñåãî ñîõðàíèòü ïðîåêò óïðàâëÿåìûì è ðàñøèðÿåìûì
- â òå÷åíèå äëèòåëüíîãî âðåìåíè.
- </para>
- <para>
- Îäíà èç óíèêàëüíûõ âîçìîæíîñòåé Smarty - êîìïèëèðîâàíèå øàáëîíîâ. Ýòî
- îçíà÷àåò, ÷òî Smarty ÷èòàåò ôàéëû øàáëîíîâ è ñîçäàåò PHP-êîä íà èõ îñíîâå.
- Êîä ñîçäà¸òñÿ îäèí ðàç è ïîòîì òîëüêî âûïîëíÿåòñÿ. Ïîýòîìó íåò
- íåîáõîäèìîñòè îáðàáàòûâàòü ôàéë øàáëîíà äëÿ êàæäîãî çàïðîñà è êàæäûé
- øàáëîí ìîæåò ïîëüçîâàòüñÿ âñåìè ïðåèìóùåñòâàìè òàêèõ êýøèðóþøèõ ðåøåíèé,
- êàê Zend Accelerator
- (<ulink url="&url.zend;">&url.zend;</ulink>) èëè PHP Accelerator
- (<ulink url="&url.php-accelerator;">&url.php-accelerator;</ulink>).
- </para>
- <para>
- Íåêîòîðûå îñîáåííîñòè Smarty:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Îí î÷åíü áûñòð
- </para>
- </listitem>
- <listitem>
- <para>
- Îí ýôôåêòèâåí, òàê êàê PHP îáðàáîò÷èê äåëàåò çà íåãî ãðÿçíóþ ðàáîòó
- </para>
- </listitem>
- <listitem>
- <para>
- Íèêàêîé ëèøíåé îáðàáîòêè øàáëîíîâ, îíè êîìïèëèðóþòñÿ òîëüêî îäèí ðàç
- </para>
- </listitem>
- <listitem>
- <para>
- Ïåðåêîìïèëèðóþòñÿ òîëüêî òå øàáëîíû, êîòîðûå èìåíèëèñü
- </para>
- </listitem>
- <listitem>
- <para>
- Âû ìîæåòå ñîçäàâàòü ïîëüçîâàòåëüñêèå
- <link linkend="language.custom.functions">ôóíêöèè</link> è
- <link linkend="language.modifiers">ìîäèôèêàòîðû</link>, ÷òî äåëàåò ÿçûê
- øàáëîíîâ ÷ðåçâû÷àéíî ðàñøèðÿåìûì
- </para>
- </listitem>
- <listitem>
- <para>
- Íàñòðàèâàåìûå ðàçäåëèòåëè òýãîâ øàáëîíà, òî åñòü âû ìîæåòå
- èñïîëüçîâàòü {}, {{}}, <!--{}-->, è ò.ä..
- </para>
- </listitem>
- <listitem>
- <para>
- If/elseif/else/endif êîíñòðóêöèè ïåðåäàþòñÿ PHP îáðàáîò÷èêó,
- òàê ÷òî ñèíòàêñèñ {if ...} âûðàæåíèÿ ìîæåò áûòü íàñòîëüêî ïðîñòûì èëè
- êîìïëåêñíûì, êàê âàì íðàâèòñÿ
- </para>
- </listitem>
- <listitem>
- <para>
- Äîïóñòèìî íåîãðàíè÷åííîå âëîæåíèå ñåêöèé, óñëîâèé è ò.ä.
- </para>
- </listitem>
- <listitem>
- <para>
- Ñóùåñòâóåò âîçìîæíîñòü âêëþ÷åíèÿ PHP-êîäà ïðÿìî â âàø øàáëîí, îäíàêî ýòî
- íå ðåêîìåíäóåòñÿ
- </para>
- </listitem>
- <listitem>
- <para>
- Âñòðîåíîå êýøèðîâàíèå
- </para>
- </listitem>
- <listitem>
- <para>
- Ïðîèçâîëüíûå èñòî÷íèêè øàáëîíà
- </para>
- </listitem>
- <listitem>
- <para>
- Ïðîèçâîëüíûå ôóíêöèè îáðàáîòêè êýøèðîâàíèÿ
- </para>
- </listitem>
- <listitem>
- <para>
- Ïîääåðæêà ïëàãèíîâ
- </para>
- </listitem>
- </itemizedlist>
- </chapter>
-
- <chapter id="installation">
- <title>Óñòàíîâêà</title>
-
- <sect1 id="installation.requirements">
- <title>Òðåáîâàíèÿ</title>
- <para>
- Äëÿ óñòàíîâêè è ðàáîòû Smarty íåîáõîäèì âåá-ñåðâåð ñ óñòàíîâëåííûì PHP âåðñèè 4.0.6 èëè âûøå.
- </para>
- </sect1>
- <sect1 id="installing.smarty.basic">
- <title>Áàçîâàÿ èíñòàëÿöèÿ</title>
- <para>
- Ñêîïèðóéòå ôàéëû Smarty, êîòîðûå íàõîäÿòñÿ â äèðåêòîðèè /libs/ äèñòðèáóòèâà.
- ÍÅ ÌÅÍßÉÒÅ ýòè ôàéëû. Èñïîëüçóéòå âîçìîæíîñòè âíåøíåé íàñòðîéêè âìåñòî
- ýòîãî.
- </para>
- <example>
- <title>Ôàéëû Smarty</title>
- <screen>
-<![CDATA[
-Smarty.class.php
-Smarty_Compiler.class.php
-Config_File.class.php
-debug.tpl
-/plugins/*.php (âñå ôàéëû!)
-/core/*.php (âñå ôàéëû!)
-]]>
- </screen>
- </example>
- <para>
- Smarty èñïîëüçóåò PHP êîíñòàíòó <link
- linkend="constant.smarty.dir">SMARTY_DIR</link>, êîòîðàÿ óêàçûâàåò ïóòü ê
- ôàéëàì Smarty. Îáû÷íî, åñëè ïðèëîæåíèå ìîæåò íàéòè ôàéë
- <emphasis>Smarty.class.php</emphasis>, òî íåò íåîáõîäèìîñòè óñòàíàâëèâàòü
- SMARTY_DIR. Îäíàêî, åñëè <emphasis>Smarty.class.php</emphasis> íå ìîæåò
- áûòü íàéäåí â âàøåì include_path èëè âû íå óêàçûâàëè àáñîëþòíûé ïóòü ê íåìó â
- ïðèëîæåíèè, òî âû äîëæíû îïðåäåëèòü SMARTY_DIR âðó÷íóþ.
- SMARTY_DIR <emphasis>äîëæåí</emphasis> âêëþ÷àòü çàâåðøàþùèé ñëýø.
- </para>
- <para>
- Êàê ñëåäóåò èíñòàíöèèðîâàòü îáúåêò Smarty â âàøèõ PHP-ñêðèïòàõ:
- </para>
- <example>
- <title>Ñîçäàíèå îáåêòà Smarty</title>
- <screen>
-<![CDATA[
-require('Smarty.class.php');
-$smarty = new Smarty;
-]]>
- </screen>
- </example>
- <para>
- Ïîïðîáóéòå âûïîëíèòü âûøåóêàçàííûé êîä. Åñëè Âû ïîëó÷àåòå îøèáêó î òîì,
- ÷òî <emphasis>Smarty.class.php</emphasis> íå íàéäåí, ïîïðîáóéòå ñëåäóþùèå
- âàðèàíòû:
- </para>
-
- <example>
- <title>Óêàæèòå àáñîëþòíûé ïóòü ê äèðåêòîðèè Smarty</title>
- <screen>
-<![CDATA[
-require('/usr/local/lib/php/Smarty/Smarty.class.php');
-$smarty = new Smarty;
-]]>
- </screen>
- </example>
-
- <example>
- <title>Äîáàâüòå äèðåêòîðèþ Smarty ê include_path</title>
- <screen>
-<![CDATA[
-// Îòðåäàêòèðóéòå âàø php.ini ôàéë, äîáàâüòå ïóòü ê Smarty
-// ê include_path è ïåðåçàïóñòèòå âåá ñåðâåð.
-// Ñëåäóþùèé êîä äîëæåí ðàáîòàòü áåç îøèáîê:
-require('Smarty.class.php');
-$smarty = new Smarty;
-]]>
- </screen>
- </example>
-
- <example>
- <title>Óñòàíîâèòå çíà÷åíèå êîíñòàíòû SMARTY_DIR</title>
- <screen>
-<![CDATA[
-define('SMARTY_DIR','/usr/local/lib/php/Smarty/');
-require(SMARTY_DIR.'Smarty.class.php');
-$smarty = new Smarty;
-]]>
- </screen>
- </example>
-
- <para>
- Òåïåðü, êîãäà âñå ôàéëû íàõîäÿòñÿ íà ñâîèõ ìåñòàõ, ïðèøëî âðåìÿ
- óñòàíîâêè äèðåêòîðèé Smarty â âàøåì ïðèëîæåíèè. Smarty òðåáóåò
- ÷åòûðå äèðåêòîðèè, êîòîðûå ïî óìîë÷àíèþ íàçûâàþòñÿ
- <emphasis>templates</emphasis>, <emphasis>templates_c</emphasis>,
- <emphasis>configs</emphasis> è <emphasis>cache</emphasis>. Êàæäàÿ èç
- íèõ îïðåäåëÿåòñÿ ñâîéñòâàìè êëàññà Smarty: <emphasis>$template_dir</emphasis>,
- <emphasis>$compile_dir</emphasis>, <emphasis>$config_dir</emphasis>, è
- <emphasis>$cache_dir</emphasis> ñîîòâåòñòâåííî. Íàñòîé÷èâî ðåêîìåíäóåòñÿ
- èñïîëüçîâàòü ðàçíûå íàáîðû ýòèõ äèðåêòîðèé äëÿ êàæäîãî ïðèëîæåíèÿ,
- èñïîëüçóþùåãî Smarty.
- </para>
- <para>
- Óáåäèòåñü, ÷òî âû çíàåòå çíà÷åíèå DOCUMENT_ROOT âàøåãî âåá-ñåðâåðà.
- Â íàøåì ïðèìåðå ýòî "/web/www.mydomain.com/docs/".
- Òàê êàê ê ôàéëàì Smarty áóäóò îáðàùàòüñÿ òîëüêî ñêðèïòû, òî âàì
- ðåêîìåíäóåòñÿ âûíåñòè äèðåêòîðèè Smarty <emphasis>çà ïðåäåëû</emphasis>
- DOCUMENT_ROOT, ÷òîáû èçáåæàòü ëèøíåãî áåñïîêîéñòâà.
- </para>
- <para>
- Â íàøåì ïðèìåðå ìû áóäåì óñòàíàâëèâàòü Smarty äëÿ íåêîòîðîé ãîñòåâîé
- êíèãè. Ïðèëîæåíèå áûëî âûáðàíî òîëüêî äëÿ òîãî, ÷òîáû èñïîëüçîâàòü åãî
- èìÿ â èìåíàõ äèðåêòîðèé. Âû ìîæåòå èñïîëüçîâàòü òå æå íàñòðîéêè ñ ëþáûì
- äðóãèì ïðèëîæåíèåì, ïðîñòî ìåíÿÿ "guestbook" íà èìÿ âàøåãî ïðèëîæåíèÿ.
- Ìû æå âûáðàëè ïóòü ê äèðåêòîðèÿì Smarty òàêîé:
- "/web/www.mydomain.com/smarty/guestbook/".
- </para>
-
- <!-- TO BE TRANSLATED ASAP! -->
-
- <para>
- 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.)
- </para>
- <para>
- Lets take a look at the file structure so far:
- </para>
- <example>
- <title>Example file structure</title>
- <screen>
-<![CDATA[
-/usr/local/lib/php/Smarty/Smarty.class.php
-/usr/local/lib/php/Smarty/Smarty_Compiler.class.php
-/usr/local/lib/php/Smarty/Config_File.class.php
-/usr/local/lib/php/Smarty/debug.tpl
-/usr/local/lib/php/Smarty/plugins/*.php
-
-/web/www.mydomain.com/smarty/guestbook/templates/
-/web/www.mydomain.com/smarty/guestbook/templates_c/
-/web/www.mydomain.com/smarty/guestbook/configs/
-/web/www.mydomain.com/smarty/guestbook/cache/
-
-/web/www.mydomain.com/docs/guestbook/index.php
-]]>
- </screen>
- </example>
- <para>
- Smarty will need write access to the <emphasis>$compile_dir</emphasis> and
- <emphasis>$cache_dir</emphasis>, 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.
- </para>
- <example>
- <title>Setting file permissions</title>
- <screen>
-<![CDATA[
-chown nobody:nobody /web/www.mydomain.com/smarty/guestbook/templates_c/
-chmod 770 /web/www.mydomain.com/smarty/guestbook/templates_c/
-
-chown nobody:nobody /web/www.mydomain.com/smarty/guestbook/cache/
-chmod 770 /web/www.mydomain.com/smarty/guestbook/cache/
-]]>
- </screen>
- </example>
- <note>
- <title>Technical Note</title>
- <para>
- 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.
- </para>
- </note>
- <para>
- We need to create the index.tpl file that Smarty will load. This will be
- located in your $template_dir.
- </para>
- <example>
- <title>Editing /web/www.mydomain.com/smarty/guestbook/templates/index.tpl</title>
- <screen>
-<![CDATA[
-{* Smarty *}
-
-Hello, {$name}!
-]]>
- </screen>
- </example>
- <note>
- <title>Technical Note</title>
- <para>
- {* 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.
- </para>
- </note>
- <para>
- 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.
- </para>
- <example>
- <title>Editing /web/www.mydomain.com/docs/guestbook/index.php</title>
- <screen>
-<![CDATA[
-// load Smarty library
-require('Smarty.class.php');
-
-$smarty = new Smarty;
-
-$smarty->template_dir = '/web/www.mydomain.com/smarty/guestbook/templates/';
-$smarty->compile_dir = '/web/www.mydomain.com/smarty/guestbook/templates_c/';
-$smarty->config_dir = '/web/www.mydomain.com/smarty/guestbook/configs/';
-$smarty->cache_dir = '/web/www.mydomain.com/smarty/guestbook/cache/';
-
-$smarty->assign('name','Ned');
-
-$smarty->display('index.tpl');
-]]>
- </screen>
- </example>
- <note>
- <title>Technical Note</title>
- <para>
- 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.
- </para>
- </note>
- <para>
- Now load the index.php file from your web browser. You should see "Hello,
- Ned!"
- </para>
- <para>
- You have completed the basic setup for Smarty!
- </para>
- </sect1>
- <sect1 id="installing.smarty.extended">
- <title>Extended Setup</title>
-
- <para>
- This is a continuation of the <link
- linkend="installing.smarty.basic">basic installation</link>, please read
- that first!
- </para>
- <para>
- 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.
- </para>
-
- <example>
- <title>Editing /php/includes/guestbook/setup.php</title>
- <screen>
-<![CDATA[
-// load Smarty library
-require('Smarty.class.php');
-
-// The setup.php file is a good place to load
-// required application library files, and you
-// can do that right here. An example:
-// require('guestbook/guestbook.lib.php');
-
-class Smarty_GuestBook extends Smarty {
-
- function Smarty_GuestBook() {
-
- // Class Constructor. These automatically get set with each new instance.
-
- $this->Smarty();
-
- $this->template_dir = '/web/www.mydomain.com/smarty/guestbook/templates/';
- $this->compile_dir = '/web/www.mydomain.com/smarty/guestbook/templates_c/';
- $this->config_dir = '/web/www.mydomain.com/smarty/guestbook/configs/';
- $this->cache_dir = '/web/www.mydomain.com/smarty/guestbook/cache/';
-
- $this->caching = true;
- $this->assign('app_name','Guest Book');
- }
-
-}
-]]>
- </screen>
- </example>
- <para>
- Now lets alter the index.php file to use setup.php:
- </para>
- <example>
- <title>Editing /web/www.mydomain.com/docs/guestbook/index.php</title>
- <screen>
-<![CDATA[
-require('guestbook/setup.php');
-
-$smarty = new Smarty_GuestBook;
-
-$smarty->assign('name','Ned');
-
-$smarty->display('index.tpl');
-]]>
- </screen>
- </example>
- <para>
- 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.
- </para>
- </sect1>
- </chapter>
-</part>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-indent-tabs-mode:nil
-sgml-parent-document:nil
-sgml-default-dtd-file:"../../../../manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vim600: syn=xml fen fdm=syntax fdl=2 si
-vim: et tw=78 syn=sgml
-vi: ts=1 sw=1
--->
+<?xml version="1.0" encoding="windows-1251"?>
+<!-- $Revision: 1.7 $ -->
+<!-- EN-Revision: 1.5 Maintainer: freespace Status: ready -->
+<part id="getting.started">
+ <title>Ïðèñòóïàÿ ê ðàáîòå</title>
+
+ <chapter id="what.is.smarty">
+ <title>×òî òàêîå Smarty?</title>
+ <para>
+ Smarty - ýòî êîìïèëèðóþùèé îáðàáîò÷èê øàáëîíîâ äëÿ PHP è íà PHP.
+ Ãîâîðÿ áîëåå ÷åòêî, îí ïðåäîñòàâëÿåò îäèí èç èíñòðóìåíòîâ, êîòîðûå
+ ïîçâîëÿåò äîáèòüñÿ îòäåëåíèÿ ïðèêëàäíîé ëîãèêè è äàííûõ îò
+ ïðåäñòàâëåíèÿ. Ýòî î÷åíü óäîáíî â ñèòóàöèÿõ, êîãäà ïðîãðàììèñò è
+ âåðñòàëüùèê øàáëîíà - ðàçëè÷íûå ëþäè. Íàïðèìåð, ñêàæåì, âû ñîçäàåòå
+ ñòðàíèöó, êîòîðàÿ ïîêàçûâàåò ãàçåòíóþ ñòàòüþ. Íàçâàíèå ñòàòüè, àâòîð
+ è ñàìà ñòàòüÿ - ýëåìåíòû, êîòîðûå íå ñîäåðæàò íèêàêîé èíôîðìàöèè î òîì, êàê îíè
+ áóäóò ïðåäñòàâëåíû. Èõ ïåðåäàþò â Smarty èç ïðèëîæåíèÿ, à âåðñòàëüùèê
+ øàáëîíà ðåäàêòèðóåò øàáëîíû è èñïîëüçóåò êîìáèíàöèþ òýãîâ HTML è
+ òýãîâ øàáëîíà, ÷òîáû îòôîðìàòèðîâàòü ïðåäñòàâëåíèå ýòèõ ýëåìåíòîâ
+ (òàáëèöû HTML, ôîíîâûå öâåòà, ðàçìåðû øðèôòà, ñòèëÿ è ò.ä.). Îäíàæäû
+ ïðîãðàììèñò çàõî÷åò èçìåíèòü ñïîñîá õðàíåíèÿ ñòàòüè (ñäåëàòü èçìåíåíèÿ
+ â ëîãèêå ïðèëîæåíèÿ). Ýòî èçìåíåíèå íå âûçîâåò èçìåíåíèé â øàáëîíàõ.
+ Ñîäåðæàíèå áóäåò âñå åùå ïåðåäàâàòüñÿ â øàáëîí òàêèì æå ñàìûì ñïîñîáîì.
+ Àíàëîãè÷íî, åñëè âåðñòàëüùèê çàõî÷åò ïîëíîñòüþ ïåðåïðîåêòèðîâàòü
+ øàáëîíû, ýòî íå ïîòðåáóåò íèêàêèõ èçìåíåíèé â ïðèêëàäíîé ëîãèêå.
+ </para>
+ <para>
+ Îäíî èç ïðåäíàçíà÷åíèé Smarty - ýòî îòäåëåíèå ëîãèêè ïðèëîæåíèÿ îò
+ ïðåäñòàâëåíèÿ. Êîíå÷íî æå, øàáëîíû ìîãóò ñîäåðæàòü â ñåáå ëîãèêó, íî
+ ëèøü ïðè óñëîâèè, ÷òî ýòà ëîãèêà íåîáõîäèìà äëÿ ïðàâèëüíîãî ïðåäñòàâëåíèÿ
+ äàííûõ. Òàêèå çàäà÷è, êàê ïîäêëþ÷åíèå äðóãèõ øàáëîíîâ, ÷åðåäóþùàÿñÿ îêðàñêà
+ ñòðî÷åê â òàáëèöå, ïðèâåäåíèå áóêâ ê âåðõíåìó ðåãèñòðó, öèêëè÷åñêèé ïðîõîä
+ ïî ìàññèâó äëÿ åãî îòîáðàæåíèÿ è ò.ä. - âñ¸ ýòî ÿâëÿåòñÿ ïðèìåðîì ëîãèêè
+ ïðåäñòàâëåíèÿ. Íå ñëåäóåò äóìàòü, ÷òî Smarty çàñòàâëÿåò âàñ ðàçäåëÿòü ëîãèêó
+ ïðèëîæåíèÿ è ïðåäñòàâëåíèå. Smarty íå âèäèò ðàçíèöû ìåæäó ýòèìè âåùàìè,
+ òàê ÷òî ïîìåùàòü èëè íå ïîìåùàòü ëîãèêó ïðèëîæåíèÿ â øàáëîíû - ðåøàòü âàì.
+ Åñëè æå âû ñ÷èòàåòå, ÷òî â øàáëîíå ÂÎÎÁÙÅ íå äîëæíî áûòü ëîãèêè, âû ìîæåòå
+ îãðàíè÷èòüñÿ èñïîëüçîâàíèåì ÷èñòîãî òåêñòà è ïåðåìåííûõ.
+ </para>
+ <para>
+ Îäíà èç óíèêàëüíûõ âîçìîæíîñòåé Smarty - êîìïèëèðîâàíèå øàáëîíîâ. Ýòî
+ îçíà÷àåò, ÷òî Smarty ÷èòàåò ôàéëû øàáëîíîâ è ñîçäàåò PHP-êîä íà èõ îñíîâå.
+ Êîä ñîçäà¸òñÿ îäèí ðàç è ïîòîì òîëüêî âûïîëíÿåòñÿ. Ïîýòîìó íåò
+ íåîáõîäèìîñòè îáðàáàòûâàòü ôàéë øàáëîíà äëÿ êàæäîãî çàïðîñà è êàæäûé
+ øàáëîí ìîæåò ïîëüçîâàòüñÿ âñåìè ïðåèìóùåñòâàìè òàêèõ êýøèðóþøèõ ðåøåíèé,
+ êàê Zend Accelerator
+ (<ulink url="&url.zend;">&url.zend;</ulink>) èëè PHP Accelerator
+ (<ulink url="&url.php-accelerator;">&url.php-accelerator;</ulink>).
+ </para>
+ <para>
+ Íåêîòîðûå îñîáåííîñòè Smarty:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Îí î÷åíü áûñòð.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Îí ýôôåêòèâåí, òàê êàê PHP îáðàáîò÷èê äåëàåò çà íåãî ãðÿçíóþ ðàáîòó.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Íèêàêîé ëèøíåé îáðàáîòêè øàáëîíîâ, îíè êîìïèëèðóþòñÿ òîëüêî îäèí ðàç.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Ïåðåêîìïèëèðóþòñÿ òîëüêî òå øàáëîíû, êîòîðûå èçìåíèëèñü.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Âû ìîæåòå ñîçäàâàòü ïîëüçîâàòåëüñêèå
+ <link linkend="language.custom.functions">ôóíêöèè</link> è
+ <link linkend="language.modifiers">ìîäèôèêàòîðû</link>, ÷òî äåëàåò ÿçûê
+ øàáëîíîâ ÷ðåçâû÷àéíî ðàñøèðÿåìûì.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Íàñòðàèâàåìûå ðàçäåëèòåëè òýãîâ øàáëîíà, òî åñòü âû ìîæåòå
+ èñïîëüçîâàòü {}, {{}}, <!--{}-->, è ò.ä.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Êîíñòðóêöèè if/elseif/else/endif êîíñòðóêöèè ïåðåäàþòñÿ îáðàáîò÷èêó PHP,
+ òàê ÷òî ñèíòàêñèñ {if ...} âûðàæåíèÿ ìîæåò áûòü íàñòîëüêî ïðîñòûì èëè
+ ñëîæíûì, íàñêîëüêî âàì óãîäíî.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Äîïóñòèìî íåîãðàíè÷åííîå âëîæåíèå ñåêöèé, óñëîâèé è ò.ä.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Ñóùåñòâóåò âîçìîæíîñòü âêëþ÷åíèÿ PHP-êîäà ïðÿìî â âàø øàáëîí, îäíàêî
+ îáû÷íî â ýòîì íåò íåîáõîäèìîñòè (è ýòî íå ðåêîììåíäóåòñÿ), òàê êàê
+ äâèæîê âåñüìà ãèáîê â íàñòðîéêå.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Âñòðîåííîå êýøèðîâàíèå.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Ïðîèçâîëüíûå èñòî÷íèêè øàáëîíà.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Ïîëüçîâàòåëüñêèå ôóíêöèè êýøèðîâàíèÿ.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Êîìïîíåíòíàÿ àðõèòåêòóðà.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </chapter>
+
+ <chapter id="installation">
+ <title>Óñòàíîâêà</title>
+
+ <sect1 id="installation.requirements">
+ <title>Òðåáîâàíèÿ</title>
+ <para>
+ Äëÿ óñòàíîâêè è ðàáîòû Smarty íåîáõîäèì âåá-ñåðâåð ñ óñòàíîâëåííûì PHP âåðñèè 4.0.6 èëè âûøå.
+ </para>
+ </sect1>
+ <sect1 id="installing.smarty.basic">
+ <title>Áàçîâàÿ óñòàíîâêà</title>
+ <para>
+ Ñêîïèðóéòå ôàéëû Smarty, êîòîðûå íàõîäÿòñÿ â äèðåêòîðèè /libs/ äèñòðèáóòèâà.
+ Ìåíÿòü ýòè ôàéëû ÍÅ ÑËÅÄÓÅÒ. Îíè äîëæíû èñïîëüçîâàòüñÿ âñåìè ïðèëîæåíèÿìè è èçìåíÿòüñÿ
+ òîëüêî ïðè îáíîâëåíèè Smarty äî íîâîé âåðñèè.
+ </para>
+ <example>
+ <title>Ôàéëû áèáëèîòåêè Smarty</title>
+ <screen>
+<![CDATA[
+Smarty.class.php
+Smarty_Compiler.class.php
+Config_File.class.php
+debug.tpl
+/plugins/*.php (âñå ôàéëû)
+/core/*.php (âñå ôàéëû)
+]]>
+ </screen>
+ </example>
+ <para>
+ Smarty èñïîëüçóåò PHP êîíñòàíòó <link
+ linkend="constant.smarty.dir">SMARTY_DIR</link>, êîòîðàÿ óêàçûâàåò ïóòü ê
+ äèðåêòîðèè áèáëèîòåêè Smarty. Îáû÷íî, åñëè ïðèëîæåíèå ìîæåò íàéòè ôàéë
+ <emphasis>Smarty.class.php</emphasis>, òî íåò íåîáõîäèìîñòè óñòàíàâëèâàòü
+ SMARTY_DIR. Îäíàêî, åñëè <emphasis>Smarty.class.php</emphasis> íå ìîæåò
+ áûòü íàéäåí â âàøåì include_path èëè âû íå óêàçûâàëè àáñîëþòíûé ïóòü ê íåìó â
+ ïðèëîæåíèè, òî âû äîëæíû îïðåäåëèòü SMARTY_DIR âðó÷íóþ.
+ SMARTY_DIR <emphasis>äîëæåí</emphasis> âêëþ÷àòü çàâåðøàþùèé ñëýø.
+ </para>
+ <para>
+ Êàê ñëåäóåò èíñòàíöèèðîâàòü îáúåêò Smarty â âàøèõ PHP-ñêðèïòàõ:
+ </para>
+ <example>
+ <title>Ñîçäàíèå îáåêòà Smarty</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+require('Smarty.class.php');
+$smarty = new Smarty;
+?>
+]]>
+ </programlisting>
+ </example>
+
+ <para>
+ Ïîïðîáóéòå âûïîëíèòü âûøåóêàçàííûé êîä. Åñëè Âû ïîëó÷àåòå îøèáêó î òîì,
+ ÷òî <emphasis>Smarty.class.php</emphasis> íå íàéäåí, ïîïðîáóéòå ñëåäóþùèå
+ âàðèàíòû:
+ </para>
+
+ <example>
+ <title>Óêàæèòå àáñîëþòíûé ïóòü ê äèðåêòîðèè Smarty</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+require('/usr/local/lib/php/Smarty/Smarty.class.php');
+$smarty = new Smarty;
+?>
+]]>
+ </programlisting>
+ </example>
+
+ <example>
+ <title>Äîáàâüòå äèðåêòîðèþ Smarty ê include_path</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+// Îòðåäàêòèðóéòå âàø php.ini ôàéë, äîáàâüòå ïóòü ê Smarty
+// ê include_path è ïåðåçàïóñòèòå âåá ñåðâåð.
+// Ñëåäóþùèé êîä äîëæåí ðàáîòàòü áåç îøèáîê:
+require('Smarty.class.php');
+$smarty = new Smarty;
+?>
+]]>
+ </programlisting>
+ </example>
+
+ <example>
+ <title>Óñòàíîâèòå çíà÷åíèå êîíñòàíòû SMARTY_DIR âðó÷íóþ</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+define('SMARTY_DIR','/usr/local/lib/php/Smarty/');
+require(SMARTY_DIR.'Smarty.class.php');
+$smarty = new Smarty;
+?>
+]]>
+ </programlisting>
+ </example>
+
+ <para>
+ Òåïåðü, êîãäà âñå ôàéëû íàõîäÿòñÿ íà ñâîèõ ìåñòàõ, ïðèøëî âðåìÿ
+ óñòàíîâêè äèðåêòîðèé Smarty â âàøåì ïðèëîæåíèè. Smarty òðåáóåò
+ ÷åòûðå äèðåêòîðèè, êîòîðûå (ïî óìîë÷àíèþ) íàçûâàþòñÿ
+ <emphasis>templates</emphasis>, <emphasis>templates_c</emphasis>,
+ <emphasis>configs</emphasis> è <emphasis>cache</emphasis>. Êàæäàÿ èç
+ íèõ îïðåäåëÿåòñÿ ñâîéñòâàìè êëàññà Smarty: <emphasis>$template_dir</emphasis>,
+ <emphasis>$compile_dir</emphasis>, <emphasis>$config_dir</emphasis>, è
+ <emphasis>$cache_dir</emphasis> ñîîòâåòñòâåííî. Íàñòîé÷èâî ðåêîìåíäóåòñÿ
+ èñïîëüçîâàòü ðàçíûå íàáîðû ýòèõ äèðåêòîðèé äëÿ êàæäîãî ïðèëîæåíèÿ,
+ èñïîëüçóþùåãî Smarty.
+ </para>
+ <para>
+ Óáåäèòåñü, ÷òî âû çíàåòå çíà÷åíèå DOCUMENT_ROOT âàøåãî âåá-ñåðâåðà.
+ Â íàøåì ïðèìåðå ýòî "/web/www.mydomain.com/docs/".
+ Òàê êàê ê ôàéëàì Smarty áóäóò îáðàùàòüñÿ òîëüêî ñêðèïòû, òî âàì
+ ðåêîìåíäóåòñÿ âûíåñòè äèðåêòîðèè Smarty <emphasis>çà ïðåäåëû</emphasis>
+ DOCUMENT_ROOT, ÷òîáû èçáåæàòü ëèøíåãî áåñïîêîéñòâà îòíîñèòåëüíî áåçîïàñíîñòè.
+ </para>
+ <para>
+ Â íàøåì ïðèìåðå ìû áóäåì óñòàíàâëèâàòü Smarty äëÿ íåêîòîðîé ãîñòåâîé
+ êíèãè. Ïðèëîæåíèå áûëî âûáðàíî òîëüêî äëÿ òîãî, ÷òîáû èñïîëüçîâàòü åãî
+ èìÿ â èìåíàõ äèðåêòîðèé. Âû ìîæåòå èñïîëüçîâàòü òå æå íàñòðîéêè ñ ëþáûì
+ äðóãèì ïðèëîæåíèåì, ïðîñòî ìåíÿÿ "guestbook" íà èìÿ âàøåãî ïðèëîæåíèÿ.
+ Ìû æå ðàçìåñòèì íàøè äèðåêòîðèè Smarty òóò:
+ "/web/www.mydomain.com/smarty/guestbook/".
+ </para>
+ <para>
+ Âàì ïîíàäîáèòñÿ êàê ìèíèìóì îäèí ôàéë â êîðíå âåá-äèðåêòîðèè - ýòî ñêðèïò,
+ ê êîòîðîìó îáðàùàåòñÿ âåá-áðàóçåð. Ìû íàçîâ¸ì íàø ñêðèïò "index.php"
+ è ïîìåñòèì åãî â ïîääèðåêòîðèþ "/guestbook" êîðíåâîé âåá-äèðåêòîðèè.
+ </para>
+
+
+ <note>
+ <title>Òåõíè÷åñêîå çàìå÷àíèå</title>
+ <para>
+ Áûâàåò óäîáíî íàñòðîèòü âåá-ñåðâåð òàê, ÷òîáû "index.php" ðàñöåíèâàëñÿ
+ êàê èíäåêñíûé ôàéë äèðåêîòðèè ïî óìîë÷àíèþ, ÷òîáû ïðè çàïðîñå ñòðàíèöû
+ "http://www.mydomain.com/guestbook/", âûçûâàëñÿ ñêðèïò index.php áåç
+ "index.php" â êîíöå URL'à. Â âåá-ñåðâåðå Apache âû ìîæåòå íàñòðîèòü ýòî äîáàâèâ
+ "index.php" â êîíåö äèðåêòèâû DirectoryIndex (çàïèñè ðàçäåëÿþòñÿ ïðîáåëàìè).
+ </para>
+ </note>
+
+ <para>
+ Äàâàéòå âçãëÿíèì íà òåêóùóþ ôàéëîâóþ ñòðóêòóðó:
+ </para>
+
+ <example>
+ <title>Ôàéëîâàÿ ñòðóêòóðà ïðèìåðà</title>
+ <screen>
+<![CDATA[
+/usr/local/lib/php/Smarty/Smarty.class.php
+/usr/local/lib/php/Smarty/Smarty_Compiler.class.php
+/usr/local/lib/php/Smarty/Config_File.class.php
+/usr/local/lib/php/Smarty/debug.tpl
+/usr/local/lib/php/Smarty/core/*.php
+/usr/local/lib/php/Smarty/plugins/*.php
+
+/web/www.mydomain.com/smarty/guestbook/templates/
+/web/www.mydomain.com/smarty/guestbook/templates_c/
+/web/www.mydomain.com/smarty/guestbook/configs/
+/web/www.mydomain.com/smarty/guestbook/cache/
+
+/web/www.mydomain.com/docs/guestbook/index.php
+]]>
+ </screen>
+ </example>
+
+ <para>
+ Smarty ïîíàäîáÿòñÿ ïðàâà íà çàïèñü â <emphasis>$compile_dir</emphasis> è
+ <emphasis>$cache_dir</emphasis>, òàê ÷òî óáåäèòåñü, ÷òî ó âåá-ñåðâåðà åñòü ýòè ïðàâà.
+ Îáû÷íî îí çàïóùåí ïîä èìåíåì ïîëüçîâàòåëÿ "nobody" ãðóïïû "nobody". Äëÿ ïîëüçîâàòåëåé OS X
+ ïîëüçîâàòåëåì ïî óìîë÷àíèþ ÿâëÿåòñÿ "www" ãðóïïû "www". Åñëè âû èñïîëüçóåòå Apache, âû ìîæåòå
+ çàãëÿíóòü â âàø ôàéë httpd.conf (êîòîðûé îáû÷íî ðàñïîëîæåí â "/usr/local/apache/conf/") ÷òîáû
+ óçíàòü, êàêèå èñïîëüçóþòñÿ èìÿ ïîëüçîâàòåëÿ è ãðóïïà.
+ </para>
+
+ <example>
+ <title>Óñòàíîâêà ïðàâ äîñòóïà ê ôàéëàì</title>
+ <programlisting role="shell">
+<![CDATA[
+chown nobody:nobody /web/www.mydomain.com/smarty/guestbook/templates_c/
+chmod 770 /web/www.mydomain.com/smarty/guestbook/templates_c/
+
+chown nobody:nobody /web/www.mydomain.com/smarty/guestbook/cache/
+chmod 770 /web/www.mydomain.com/smarty/guestbook/cache/
+]]>
+ </programlisting>
+ </example>
+
+ <note>
+ <title>Òåõíè÷åñêîå çàìå÷àíèå</title>
+ <para>
+ chmod 770 äà¸ò äîñòàòî÷íî æåñòêóþ çàùèòó - òîëüêî ïîëüçîâàòåëü "nobody" è ãðóïïà
+ "nobody" èìåþò äîñòóï íà çàïèñü è ÷òåíèå ê äèðåêòîðèÿì. Åñëè âû õîòèòå îòêðûòü äîñòóï íà ÷òåíèå
+ äëÿ âñåõ (îáû÷íî äëÿ ñîáñòâåííîãî óäîáñòâà ïðè ïðîñìîòðå ýòèõ ôàéëîâ),
+ âû ìîæåòå èñïîëüçîâàòü ìàñêó 775.
+ </para>
+ </note>
+
+ <para>
+ Íàì íåîáõîäèìî ñîçäàòü ôàéë index.tpl, êîòîðû áóäåò çàãðóæàòüñÿ Smarty.
+ Îí áóäåò ðàñïîëîæåí â âàøåé $template_dir.
+ </para>
+
+ <example>
+ <title>Ðåäàêòèðîâàíèå /web/www.mydomain.com/smarty/guestbook/templates/index.tpl</title>
+ <screen>
+<![CDATA[
+
+{* Smarty *}
+
+Hello, {$name}!
+]]>
+ </screen>
+ </example>
+
+ <note>
+ <title>Òåõíè÷åñêîå çàìå÷àíèå</title>
+ <para>
+ {* Smarty *} - ýòî êîììåíòàðèé øàáëîíà. Îí íå ÿâëÿåòñÿ îáÿçàòåëüíûì, íî
+ åãî ðàçìåùåíèå â íà÷àëå êàæäîãî øàáëîíà ÿâëÿåòñÿ õîðîøèì òîíîì.
+ Ýòî ïîçâîëÿåò ïðîùå ðàçëè÷àòü ôàéëû íåçàâèñèìî îò èõ ðàñøèðåíèÿ.
+ Ê ïðèìåðó, òåêñòîâûå ðåäàêòîðû ìîãóò óçíàâàòü ôàéë è âêëþ÷àòü îñîáåííóþ
+ ïîäñâåòêó ñèíòàêñèñà.
+ </para>
+ </note>
+
+ <para>
+ Òåïåðü äàâàéòå îòðåäàêòèðóåì index.php. Ìû ñîçäàäèì ýêçåìïëÿð Smarty, ïðèñâîèì
+ çíà÷åíèå ïåðåìåííîé øàáëîíà è îòîáðàçèì ôàéë index.tpl.  îêðóæåíèè íàøåãî ïðèìåðà
+ ìû ïîìåñòèëè "/usr/local/lib/php/Smarty" â include_path. Óáåäèòåñü, ÷òî âû ñäåëàëè
+ òî æå ñàìîå èëè èñïîëüçóåòå àáñîëþòíûå ïóòè.
+ </para>
+
+ <example>
+ <title>Ðåäàêòèðîåíèå /web/www.mydomain.com/docs/guestbook/index.php</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+// çàãðóæàåì áèáëèîòåêó Smarty
+require('Smarty.class.php');
+
+$smarty = new Smarty;
+
+$smarty->template_dir = '/web/www.mydomain.com/smarty/guestbook/templates/';
+$smarty->compile_dir = '/web/www.mydomain.com/smarty/guestbook/templates_c/';
+$smarty->config_dir = '/web/www.mydomain.com/smarty/guestbook/configs/';
+$smarty->cache_dir = '/web/www.mydomain.com/smarty/guestbook/cache/';
+
+$smarty->assign('name','Ned');
+
+$smarty->display('index.tpl');
+?>
+]]>
+ </programlisting>
+ </example>
+
+ <note>
+ <title>Òåõíè÷åñêîå çàìå÷àíèå</title>
+ <para>
+ Â íàøåì ïðèìåðå, ìû óñòàíàâëèâàåì àáñîëþòíûå ïóòè êî âñåì äèðåêòîðèÿì
+ Smarty. Åñëè '/web/www.mydomain.com/smarty/guestbook/' íàõîäèòñÿ â
+ include_path âàøåãî PHP, òî ýòè íàñòðîéêè íå îáÿçàòåëüíû. Òåì íå ìåíåå,
+ áîëåå ýôôåêòèâíûì è (èç îïûòà) ìåíåå ãëþêîîïàñíûì ÿâëÿåòñÿ èñïîëüçîâàíèå
+ àáñîëþòíûõ ïóòåé. Ýòî äàñò âàì óâåðåííîñòü â òîì, ÷òî Smarty ïîëó÷àåò ôàéëû
+ èç òåõ äèðåêòîðèé, èç êîòîðûõ âû õîòèòå.
+ </para>
+ </note>
+
+ <para>
+ Òåïåðü çàãðóçèòå ôàéë index.php èç âàøåãî âåá-áðàóçåðà.
+ Âû äîëæíû óâèäåòü íàäïèñü "Hello, Ned!"
+ </para>
+ <para>
+ Âû çàêîí÷èëè áàçîâóþ óñòàíîâêó Smarty!
+ </para>
+ </sect1>
+ <sect1 id="installing.smarty.extended">
+ <title>Ðàñøèðåííàÿ óñòàíîâêà</title>
+
+ <para>
+ Ýòà ãëàâà ÿâëÿåòñÿ ïðîäîëæåíèåì <link
+ linkend="installing.smarty.basic">áàçîâîé óñòàíîâêè</link>; ïîæàëóéñòà,
+ ñïåðâà ïðî÷èòàéòå å¸.
+ </para>
+ <para>
+ Íåìíîãî áîëåå ãèáêèì ñïîñîáîì óñòàíîâêè Smarty ÿâëÿåòñÿ íàñëåäîâàíèå êëàññà è
+ èíèöèàëèçàöèÿ âàøåãî ñîáñòâåííîãî îêðóæåíèÿ Smarty. Òàêèì îáðàçîì, âìåñòî òîãî, ÷òîáû
+ ïîñòîÿííî óñòàíàâëèâàòü ïóòè äèðåêòîðèé, ïðèñâàèâàòü îäíè è òå æå ïåðåìåííûå è ò.ä.
+ ìû ìîæåì âñ¸ ýòî ñäåëàòü â îäíîì ìåñòå.
+ Äàâàéòå ñîçäàäèì íîâóþ äèðåêòîðèþ "/php/includes/guestbook/", à â íåé - íîâûé ôàéë,
+ êîòîðûé íàçîâåì "setup.php". Â îêðóæåíèè èç íàøåãî ïðèìåðà "/php/includes" íàõîäèòñÿ
+ â include_path. Ïðîâåðüòå, ÷òî áû òî æå ñàìîå áûëî è ó âàñ, èëè èñïîëüçóåòé àáñîëþòíûå ïóòè.
+ </para>
+
+ <example>
+ <title>Ðåäàêòèðîâàíèå /php/includes/guestbook/setup.php</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+// çàãðóæàåì áèáëèîòåêó Smarty
+require('Smarty.class.php');
+
+// Ôàéë setup.php - ýòî õîðîøåå ìåñòî äëÿ
+// ïîäêëþ÷åíèÿ áèáëèîòå÷íûõ ôàéëîâ âàøåãî ïðèëîæåíèÿ, âû ìîæåòå
+// ñäåëàòü ýòî ïðÿìî çäåñü. Ïðèìåð:
+// require('guestbook/guestbook.lib.php');
+
+class Smarty_GuestBook extends Smarty {
+
+ function Smarty_GuestBook()
+ {
+
+ // Êîíñòðóêòîð êëàññà. Îí àâòîìàòè÷åñêè âûçûâàåòñÿ ïðè ñîçäàíèè íîâîãî ýêçåìïëÿðà.
+
+ $this->Smarty();
+
+ $this->template_dir = '/web/www.mydomain.com/smarty/guestbook/templates/';
+ $this->compile_dir = '/web/www.mydomain.com/smarty/guestbook/templates_c/';
+ $this->config_dir = '/web/www.mydomain.com/smarty/guestbook/configs/';
+ $this->cache_dir = '/web/www.mydomain.com/smarty/guestbook/cache/';
+
+ $this->caching = true;
+ $this->assign('app_name','Guest Book');
+ }
+
+}
+?>
+]]>
+ </programlisting>
+ </example>
+
+ <para>
+ Òåïåðü äàâàéòå èçìåíèì index.php äëÿ èñïîëüçîâàíèÿ setup.php:
+ </para>
+
+ <example>
+ <title>Ðåäàêòèðîâàíèå /web/www.mydomain.com/docs/guestbook/index.php</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+require('guestbook/setup.php');
+
+$smarty = new Smarty_GuestBook;
+
+$smarty->assign('name','Ned');
+
+$smarty->display('index.tpl');
+?>
+]]>
+ </programlisting>
+ </example>
+
+ <para>
+ Òåïåðü âû âèäèòå, ÷òî ñîçäàòü ýêçåìïëÿð Smarty äîâîëüíî ïðîñòî - íóæíî ëèøü
+ èñïîëüçîâàòü Smarty_GuestBook, êîòîðûé àâòîìàòè÷åñêè èíèöèàëèçèðóåò âñå íàñòðîéêè
+ äëÿ íàøåãî ïðèëîæåíèÿ.
+ </para>
+
+ </sect1>
+
+ </chapter>
+</part>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+indent-tabs-mode:nil
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
+-->