Files
smarty/docs/ru/designers/language-custom-functions/language-function-eval.xml
2008-05-25 15:06:11 +00:00

151 lines
4.4 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 0 Maintainer: freespace Status: ready -->
<sect1 id="language.function.eval">
<title>{eval}</title>
<para>
{eval} используется для обработки переменной, как шаблона.
Можно использовать для таких вещей, как хранение шаблонных
тэгов/переменных в переменной или в файлах конфигруации.
</para>
<para>
Если указан специальный атрибут "assign", то вывод тэга eval
присваивается переменной, вместо отображения.
</para>
<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>var</entry>
<entry>mixed</entry>
<entry>Да</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Переменная (или строка) для обработки</entry>
</row>
<row>
<entry>assign</entry>
<entry>string</entry>
<entry>Нет</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Имя переменной, которой будет присвоен вывод</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<note>
<title>Техническое Замечание</title>
<para>
Переменные шаблоны обрабатываются так же, как и обычные шаблоны.
Они подвластны тем же правилам и ограничениям безопасности.
</para>
</note>
<note>
<title>Техническое Замечание</title>
<para>
Переменные шаблоны компилируются при каждом вызове, скомпилированные версии
не сохраняются!
Однако, если <link linkend="caching">кэширование</link> включено,
вывод будет кэширован вместе с остальной частью шаблона.
</para>
</note>
<example>
<title>{eval}</title>
<programlisting>
<![CDATA[
#setup.conf
#----------
emphstart = <strong>
emphend = </strong>
title = Welcome to {$company}'s home page!
ErrorCity = You must supply a {#emphstart#}city{#emphend#}.
ErrorState = You must supply a {#emphstart#}state{#emphend#}.
]]>
</programlisting>
<para>
Шаблон:
</para>
<programlisting>
<![CDATA[
{config_load file='setup.conf'}
{eval var=$foo}
{eval var=#title#}
{eval var=#ErrorCity#}
{eval var=#ErrorState# assign='state_error'}
{$state_error}
]]>
</programlisting>
<para>
Результат выполнения данного примера:
</para>
<screen>
<![CDATA[
This is the contents of foo.
Welcome to Foobar Pub & Grill's home page!
You must supply a <strong>city</strong>.
You must supply a <strong>state</strong>.
]]>
</screen>
</example>
<example>
<title>Другой пример использования {eval}</title>
<para>
Отображает имя сервера (заглавными буквами) и IP-адрес.
Переменная $str так же может быть результатом запроса к БД.
</para>
<programlisting role="php">
<![CDATA[
// php script
$str = 'The server name is {$smarty.server.SERVER_NAME|upper} '
.'at {$smarty.server.SERVER_ADDR}';
$smarty->assign('foo',$str);
]]>
</programlisting>
<para>
Шаблон:
</para>
<programlisting>
<![CDATA[
{eval var=$foo}
]]>
</programlisting>
</example>
</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
-->