Files
smarty/docs/ru/programmers/plugins/plugins-compiler-functions.xml
tony2001 5c60a94322 add new translations by nw [at] webdevel [dot] ru
(with minor corrections by me)
2004-06-11 06:26:26 +00:00

94 lines
2.7 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="windows-1251"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1.1 -->
<sect1 id="plugins.compiler.functions">
<title>Функции компилятора</title>
<para>
Функции компилятора, как вы наверное догадались, вызываются
только в процессе компиляции шаблона. Они могут быть полезными
для вставки кода PHP или чувствительного ко времени статического
контента в шаблон. Если одновременно зарегестрированы две
одноименные функции - пользовательская и компилятора, то приоритет
будет у функции компилятора.
</para>
<funcsynopsis>
<funcprototype>
<funcdef>mixed <function>smarty_compiler_<replaceable>name</replaceable></function></funcdef>
<paramdef>string <parameter>$tag_arg</parameter></paramdef>
<paramdef>object <parameter>&amp;$smarty</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<para>
Функция компилятора имеет два параметра: строку аргументов тэга -
чаще всего это все, что следует от наименования функции до правого
ограничителя, и объект Smarty. Функция должна возвращать PHP-код
для вствки в скомпилированный шаблон.
</para>
<para>
Смотрите также
<link linkend="api.register.compiler.function">register_compiler_function()</link>,
<link linkend="api.unregister.compiler.function">unregister_compiler_function()</link>.
</para>
<example>
<title>Простой пример функции компилятора</title>
<programlisting>
<![CDATA[
<?php
/*
* Smarty plugin
* -------------------------------------------------------------
* Файл: compiler.tplheader.php
* Тип: compiler
* Имя: tplheader
* Назначение: вывести заголовок, содержащий имя исходного файла и
* время, когда он был скомпилирован.
* -------------------------------------------------------------
*/
function smarty_compiler_tplheader($tag_arg, &$smarty)
{
return "\necho '" . $smarty->_current_file . " compiled at " . date('Y-m-d H:M'). "';";
}
?>
]]></programlisting>
<para>
Эта функция может быть вызвана из шаблона следующим образом:
</para>
<programlisting>
<![CDATA[
{* Функция выполняется только при компиляции шаблона *}
{tplheader}
]]>
</programlisting>
<para>
Результирующий код PHP в скомпилированном шаблоне будет выглядеть примерно так:
</para>
<programlisting>
<![CDATA[
<?php
echo 'index.tpl compiled at 2002-02-20 20:02';
?>
]]>
</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
-->