Files
smarty/docs/ru/designers/language-builtin-functions/language-function-insert.xml
freespace e799943aba Converted all line endings from CRLF to LF.
Sorry for such a big commit, but this should be done only once.
And please, don't kill me if I did a stupid thing :)
2004-11-25 23:26:13 +00:00

149 lines
4.7 KiB
XML

<?xml version="1.0" encoding="windows-1251"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1.1 Maintainer: freespace Status: ready -->
<sect1 id="language.function.insert">
<title>insert</title>
<informaltable frame="all">
<tgroup cols="5">
<colspec colname="param" align="center" />
<colspec colname="type" align="center" />
<colspec colname="required" align="center" />
<colspec colname="default" align="center" />
<colspec colname="desc" />
<thead>
<row>
<entry>Èìÿ àòðèáóòà</entry>
<entry>Òèï</entry>
<entry>Îáÿçàòåëåí</entry>
<entry>Ïî óìîë÷àíèþ</entry>
<entry>Îïèñàíèå</entry>
</row>
</thead>
<tbody>
<row>
<entry>name</entry>
<entry>string</entry>
<entry>Äà</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Èìÿ ôóíêöèè âñòàâêè (insert_name)</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Íåò</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Èìÿ ïåðåìåííîé, êîòîðîé áóäåò
ïðèñâîåí âûâîä</entry>
</row>
<row>
<entry>script</entry>
<entry>string</entry>
<entry>Íåò</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Èìÿ php ôàéëà, êîòîðûé áóäåò ïîäêëþ÷åí
ïåðåä âûçîâîì ôóíêöèè âñòàâêè</entry>
</row>
<row>
<entry>[var ...]</entry>
<entry>[var type]</entry>
<entry>Íåò</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Ïåðåìåííûå, ïåðåäàâàåìûå â
ôóíêöèþ âñòàâêè</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>
Òýã insert î÷åíü ïîõîæ íà òýã include, êðîìå ñëó÷àÿ, êîãäà
<link linkend="caching">êýøèðîâàíèå</link> âêëþ÷åíî. Insert
òýã íå êåøèðóåòñÿ. Îí áóäåò âûïîëíåí êàæäûé ðàç, ïðè îáðàùåíèè
ê øàáëîíó.
</para>
<para>
Äîïóñòèì âû èìååòå øàáëîí ñ áàííåðîì ââåðõó ñòðàíèöû.
Áàííåð ìîæåò ñîäåðæàòü ëþáóþ ñìåñü HTML, èñçîáðàæåíé,
flash è ò.ä., òî åñòü íåëüçÿ èñïîëüçîâàòü ïðîñòî
ñòàòè÷åñêóþ ññûëêó, è ìû íå õîòèì, ÷òîáû êîä áàííåðà
êýøèðîâàëñÿ ñ îñòàëüíîé ñòðàíèöåé. Òîãäà èñïîëüçóåì
òýã insert: øàáëîí çíàåò çíà÷åíèÿ #banner_location_id# è
#site_id# (âçÿòû èç ôàéëà êîíôèãóðàöèè) è äîëæåí âûçâàòü
ôóíêöèþ, ÷òîáû ïîëó÷èòü êîä áàííåðà.
</para>
<example>
<title>ôóíêöèÿ insert</title>
<programlisting>
<![CDATA[
{* ïðèìåð óñòàíîâêè áàííåðà *}
{insert name="getBanner" lid=#banner_location_id# sid=#site_id#}
]]>
</programlisting>
</example>
<para>
 ýòîì ïðèìåðå ìû èñïîëüçóåì èìÿ "getBanner" è ïåðåäàåì ïàðàìåòðû
#banner_location_id# è #site_id#. Smarty ïîïðîáóåò âûçûâàòü
ôóíêöèþ insert_getBanner() â âàøåé PHP ïðîãðàììå, ïåðåäàâ
çíà÷åíèÿ #banner_location_id# è #site_id# ïåðâûì ïàðàìåòðîì â âèäå
àññîöèàòèâíîãî ìàññèâà. Âñå èìåíà ôóíêöèé âñòàâêè äîëæíû íà÷èíàòüñÿ
ñ "insert_" äëÿ ïðåäîòâðàùåíèÿ âîçìîæíûõ êîíôëèêòîâ èìåí. Ôóíêöèÿ
insert_getBanner() äîëæíà îáðàáîòàòü ïåðåäàííûå ïåðåìåííûå è
âåðíóòü ðåçóëüòàò. Îí áóäåò îòîáðàæåí â øàáëîíå âìåñòî òýãà insert.
 äàííîì ñëó÷àå Smarty âûçîâåò ôóíêöèþ insert_getBanner(array("lid"
=> "12345","sid" => "67890")); è âûâåäåò ðåçóëüòàò íà ìåñòå òýãà
insert.
</para>
<para>
Åñëè óêàçàí àòðèáóò "assign", òî âûâîä ôóíêöèè âñòàâêè áóäåò
ïðèñâîåí óêàçàííîé ïåðåìåííîé âìåñòî îòîáðàæåíèÿ. ÇÀÌÅ×ÀÍÈÅ:
ïðèñâîåíèå âûâîäà òýãà insert ïåðåìåííîé øàáëîíà íå î÷åíü
ïîëåçíî, êîãäà êåøèðîâàíèå âêëþ÷åíî.
</para>
<para>
Åñëè óêàçàí àòðèáóò "script", òî óêàçàííûé php ôàéë áóäåò
ïîäêëþ÷åí (òîëüêî îäíàæäû) ïåðåä âûçîâîì ôóíêöèè âñòàâêè.
Ýòî óäîáíî, êîãäà ôóíêöèÿ ìîæåò íå ñóùåòñâîâàòü, è äîëæåí áûòü
ïîäêëþ÷åí php ôàéë, ÷òîáû îïðåäåëèòü ôóíêöèþ. Ïóòü ê ôàéëó
äîëæåí áûòü ëèáî àáñîëòíûì, ëèáî îòíîñèòåëüíûì îòíîñèòåëüíî
$trusted_dir. Êîãäà security àêòèâèðîâàíà, òî php ôàéë äîëæåí
áûòü â ïàïêå $trusted_dir.
</para>
<para>
Îáüåêò Smarty ïåðåäàåòñÿ â ôóíêöèþ êàê âòîðîé ïàðàìåòð.
Òàê âû ìîæåòå èñïîëüçîâàòü è ìîäèôèöèðîâàòü èíôîðìàöèþ
èç îáúåêòà Smarty â ôóíêöèÿõ âñòàâêè.
</para>
<note>
<title>Òåõíè÷åñêîå Çàìå÷àíèå</title>
<para>
Íåêîòîðûå ÷àñòè øàáëîíà ìîæíî íå êýøèðîâàòü.
Åñëè àêòèâèðîâàíî <link linkend="caching">êýøèðîâàíèå</link>,
òî òýã insert âñå ðàâíî íå áóäåò êýøèðîâàí. Îí áóäåò âûçâàí
êàæäûé ðàç ïðè ãåíåðàöèè ñòðàíèöû, äàæå èç êåøèðîâàííûõ
ñòðàíèö. Ýòî ïîëåçíî äëÿ òàêèõ âåùåé, êàê áàííåðû, îïðîñû,
ïðîãíîçû ïîãîäû, ðåçóëüòàòû ïîèñêà, îáëàñòè îáðàòíîé ñâÿçè
è ò.ä.
</para>
</note>
</sect1>
<!-- 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
-->