Files
smarty/docs/ru/programmers/plugins/plugins-compiler-functions.xml
2004-09-03 18:34:20 +00:00

94 lines
2.8 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.2 Maintainer: tony2001 Status: ready -->
<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 role="php">
<![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 role="php">
<![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
-->