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

159 lines
4.6 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.assign">
<title>{assign}</title>
<para>
{assign} используется для установки значения переменной
<emphasis role="bold">в процессе выполнения шаблона</emphasis>.
</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>string</entry>
<entry>Да</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Имя переменной, значение которой будет
устанавливаться</entry>
</row>
<row>
<entry>value</entry>
<entry>string</entry>
<entry>Да</entry>
<entry><emphasis>n/a</emphasis></entry>
<entry>Устанавливаемое значение</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<example>
<title>{assign}</title>
<programlisting>
<![CDATA[
{assign var="name" value="Bob"}
Значение $name - {$name}.
]]>
</programlisting>
<para>
Результат выполнения данного примера:
</para>
<screen>
<![CDATA[
Значение $name - Bob.
]]>
</screen>
</example>
<example>
<title>{assign} и арифметика</title>
<para>В этом сложном примере переменные должны заключаться в обратные кавычки</para>
<programlisting>
<![CDATA[
{assign var=running_total value=`$running_total+$some_array[loop].some_value`}
]]>
</programlisting>
</example>
<example>
<title>Доступ к переменным {assign} из PHP-скрипта.</title>
<para>
Чтобы получить доступ к переменным {assign} из PHP-скрипта, используйте функцию
<link linkend="api.get.template.vars">get_template_vars()</link>.
Обратите внимание, что переменные доступны только во время и после
выполнения шаблона, как видно из следующего примера:
</para>
<programlisting>
<![CDATA[
{* index.tpl *}
{assign var="foo" value="Smarty"}
]]>
</programlisting>
<programlisting role="php">
<![CDATA[
<?php
// это не выведет ничего, ведь шаблон ещё не был выполнен
echo $smarty->get_template_vars('foo');
// получаем шаблон в переменную-пустышку
$dead = $smarty->fetch('index.tpl');
// это выведет 'smarty', так как шаблон уже выполнен
echo $smarty->get_template_vars('foo');
$smarty->assign('foo','Even smarter');
// это выведет 'Even smarter'
echo $smarty->get_template_vars('foo');
?>
]]>
</programlisting>
</example>
<para>
Следующие функции также могут <emphasis>опционально</emphasis>
назначать переменные шаблона.
</para>
<para>
<link linkend="language.function.capture">{capture}</link>,
<link linkend="language.function.include">{include}</link>,
<link linkend="language.function.include.php">{include_php}</link>,
<link linkend="language.function.insert">{insert}</link>,
<link linkend="language.function.counter">{counter}</link>,
<link linkend="language.function.cycle">{cycle}</link>,
<link linkend="language.function.eval">{eval}</link>,
<link linkend="language.function.fetch">{fetch}</link>,
<link linkend="language.function.math">{math}</link>,
<link linkend="language.function.textformat">{textformat}</link>
</para>
<para>
См. также
<link linkend="api.assign">assign()</link>
и
<link linkend="api.get.template.vars">get_template_vars()</link>.
</para>
</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
-->