Вместе с Joomla устанавливается компонент для материалов - com_content. Если посмотреть его код, то там находятся такие события:
- onContentPrepare
- onContentAfterTitle
- onContentBeforeDisplay
- onContentAfterDisplay
Для этих событий пишутся обработчики событий - плагины, которые можно использовать не только в com_content но и других компонентах и модулях.
Выполнение плагина:
$results = $dispatcher->trigger('onContentBeforeDisplay', array('com_content.article', &$item, &$this->params, $offset));
Если вы делаете свой компонент или модуль к Joomla, то вы можете использовать плагины для компонента com_content:
$obj = new stdClass;
$obj->text = $text;
JPluginHelper::importPlugin('content');
$dispatcher =& JDispatcher::getInstance();
$results = $dispatcher->trigger( 'onContentPrepare', array( 'com_filer.filer', &$obj, &$params, 0 ) );
echo $obj->text;
Либо так, как например, в модуле mod_custom с использованием загрузчика:
JPluginHelper::importPlugin('content');
$module->content = JHtml::_('content.prepare', $module->content, '', 'mod_custom.content');
вызывается функция:
public static function prepare($text, $params = null, $context = 'text')
{
if ($params === null)
{
$params = new JObject;
}
$article = new stdClass;
$article->text = $text;
JPluginHelper::importPlugin('content');
$dispatcher = JDispatcher::getInstance();
$dispatcher->trigger('onContentPrepare', array($context, &$article, &$params, 0));
return $article->text;
}