J3.x

Difference between revisions of "Triggering content plugins in your extension"

From Joomla! Documentation

(Importing text file)
 
(12 intermediate revisions by 7 users not shown)
Line 1: Line 1:
====5.5 Using plugins in your own addon====
+
A common example of [[Supporting plugins in your component|using plugins]] is to run the '''content plugins''' on some text. This is useful if you want to support plugins that usually work on Content from a custom extension. For the latest release of Joomla! 1.5 {{JVer|1.5}} and newer versions, you can simply use:
Using the plugin system in your addon is fairly simple. The most important part is good planning because, to some degree, you're defining an interface for other people to use.
 
  
To activate the plugins for your addon, you just have to use the following line of code:
+
<source lang="php">
<source>
+
$text = JHTML::_('content.prepare', $text);
$result = $mainframe->triggerEvent( 'onSomething', $param );
 
 
</source>
 
</source>
This function calls every plugin that has registered itself for the event 'onSomething' and hands over the array $param as parameter.
 
  
As a return value you get an array of results from these plugins. All this is of course optional, you could also use the system without parameters and/or a result.
+
For early versions of Joomla! 1.5, you need to "spell it out":
 +
 
 +
<source lang="php">
 +
$dispatcher =& JDispatcher::getInstance();
 +
$item->text = & your_text_area_item; 
 +
$item->params = clone($params);
 +
JPluginHelper::importPlugin('content');
 +
$dispatcher->trigger('onPrepareContent', array (& $item, & $item->params, 0));
 +
</source>
 +
 
 +
You might want to look at core components (for example com_content) for an example.
 +
 
 +
Also for PHP5.3 compliance please look at the discussion page.
 +
<noinclude>[[Category:Extension development]][[Category:Plugins]]</noinclude>

Revision as of 13:43, 5 July 2012

A common example of using plugins is to run the content plugins on some text. This is useful if you want to support plugins that usually work on Content from a custom extension. For the latest release of Joomla! 1.5 Joomla 1.5 and newer versions, you can simply use:

$text = JHTML::_('content.prepare', $text);

For early versions of Joomla! 1.5, you need to "spell it out":

$dispatcher =& JDispatcher::getInstance();
$item->text = & your_text_area_item;  
$item->params = clone($params);
JPluginHelper::importPlugin('content'); 
$dispatcher->trigger('onPrepareContent', array (& $item, & $item->params, 0));

You might want to look at core components (for example com_content) for an example.

Also for PHP5.3 compliance please look at the discussion page.