mirror of
https://github.com/smarty-php/smarty.git
synced 2025-10-26 09:51:36 +01:00
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 :)
83 lines
3.2 KiB
XML
83 lines
3.2 KiB
XML
<?xml version="1.0" encoding="windows-1251"?>
|
||
<!-- $Revision$ -->
|
||
<!-- EN-Revision: 1.5 Maintainer: tony2001 Status: ready -->
|
||
<chapter id="plugins">
|
||
<title>Плагины - расширение функционала Smarty</title>
|
||
|
||
<para>
|
||
Архитектура версии 2.0 позволяет внедрять плагины, которыми являются
|
||
практически все настраиваемые элементы функционала Smarty. Сюда входят:
|
||
<itemizedlist spacing="compact">
|
||
<listitem><simpara>функции</simpara></listitem>
|
||
<listitem><simpara>модификаторы</simpara></listitem>
|
||
<listitem><simpara>блоковые функции</simpara></listitem>
|
||
<listitem><simpara>функции компилятора</simpara></listitem>
|
||
<listitem><simpara>префильтры</simpara></listitem>
|
||
<listitem><simpara>постфильтры</simpara></listitem>
|
||
<listitem><simpara>фильтры вывода</simpara></listitem>
|
||
<listitem><simpara>ресурсы</simpara></listitem>
|
||
<listitem><simpara>вставки</simpara></listitem>
|
||
</itemizedlist>
|
||
За исключением ресурсов, в целях обратной совместимости с предыдущими версиями, сохранена
|
||
возможность регистрации функций посредством register_* API.
|
||
Если вы не используете API, а вместо этого модифицируете
|
||
<literal>$custom_funcs</literal>, <literal>$custom_mods</literal> и некоторые другие
|
||
переменные напрямую, тогда вам придется подогнать ваши скрипты под использование
|
||
API или преобразовать добавленную вами функциональность в плагины.
|
||
</para>
|
||
|
||
<sect1>
|
||
<title>Как работают плагины</title>
|
||
<para>
|
||
Плагины загружаются только при необходимости. Загруженными окажутся
|
||
только только те модификаторы, функции,ресурсы и т.п., которые
|
||
определены в скрипте шаблона. Более того, каждый плагин загружается
|
||
лишь один раз, даже если у вас имеется несколько различных экземпляров
|
||
объекта Smarty, выполняемых внутри одного запроса.
|
||
</para>
|
||
<para>
|
||
Пре/постфильтры и фильтры вывода - это отдельный случай. Так как
|
||
они не упоминаются в шаблонах, их необходимо зарегистрировать
|
||
или явно загрузить с помощью API-функций перед обработкой шаблона.
|
||
Порядок исполнения множественных фильтров зависит от порядка, в котором
|
||
они были зарегистрированы или загружены.
|
||
</para>
|
||
<para>
|
||
В целях оптимизации производительности, под плагины отведена одна
|
||
специальная директория. Чтобы установить плагин, просто поместите его
|
||
в эту директорию и Smarty будет использовать его в автоматическом режиме.
|
||
</para>
|
||
</sect1>
|
||
&programmers.plugins.plugins-howto;
|
||
&programmers.plugins.plugins-naming-conventions;
|
||
&programmers.plugins.plugins-writing;
|
||
&programmers.plugins.plugins-functions;
|
||
&programmers.plugins.plugins-modifiers;
|
||
&programmers.plugins.plugins-block-functions;
|
||
&programmers.plugins.plugins-compiler-functions;
|
||
&programmers.plugins.plugins-prefilters-postfilters;
|
||
&programmers.plugins.plugins-outputfilters;
|
||
&programmers.plugins.plugins-resources;
|
||
&programmers.plugins.plugins-inserts;
|
||
</chapter>
|
||
<!-- 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
|
||
-->
|