Smarty может подгружать плагины автоматически из файловой системы или регистрировать их во время выполнения (at runtime) посредством одной из register_* API функций. Их также можно дерегистрировать, используя unregister_* API функции.
Плагинам, которые регистрируются во время выполнения, могут присваиваться имена не соответствующие правилам соглашения об именах.
Если плагин зависит от некоторых функций другого плагина (как в некоторых случаях с плагинами, поставляемыми вместе со Smarty), то такой плагин можно загрузить следующим образом:
<?php require_once $smarty->_get_plugin_filepath('function', 'html_options'); ?>
Важно знать, что объект Smarty всегда передаётся в плагин последним параметром
(за двумя исключениями: модификатором объект Smarty вообще не передаётся, а
блоки получают &$repeat
следом за объектом Smarty
в целях обратной совместимости с ранними версиями Smarty).