Actions

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

From Joomla! Documentation

(Update 1.5 to 2.5/3.x)
(10 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[Category:Development]]
+
{{version|2.5,3.x}}
[[Category:Plugins]]
+
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 content prepare trigger you can simply call:
  
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.
+
<source lang="php">
 +
$text = JHtml::_('content.prepare', $text);
 +
</source>
 +
 
 +
For any other content triggers you must call:
  
To activate the plugins for your addon, you just have to use the following  code:
 
 
<source lang="php">
 
<source lang="php">
$dispatcher =& JDispatcher::getInstance();
+
$dispatcher = JDispatcher::getInstance();
  JPluginHelper::importPlugin('content');
+
$item->text = your_text_area_item;  
$config =& JComponentHelper::getParams( 'com_ploni' );
+
$item->params = clone($params);
$results = $dispatcher->trigger('onAfterDisplayTitle', array ($article, &$config, $limitstart));
+
JPluginHelper::importPlugin('content');  
 +
$dispatcher->trigger('onPrepareContent', array (& $item, & $item->params, 0));  
 
</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.
+
You might want to look at core components (for example com_content) for an example. See the [[Plugin/Events|triggers page]] for the possible content plugin triggers.
 +
 
 +
Also for PHP5.3 compliance please look at the discussion page.
 +
<noinclude>[[Category:Extension development]][[Category:Plugins]]
 +
[[Category:Plugin Development]]
 +
</noinclude>

Revision as of 16:18, 1 June 2013

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 content prepare trigger you can simply call:

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

For any other content triggers you must call:

$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. See the triggers page for the possible content plugin triggers.

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