J3.x

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

From Joomla! Documentation

(Add notice JDispatcher is deprecated in Joomla 3.x)
(2 intermediate revisions by one other user not shown)
Line 9: Line 9:
  
 
<source lang="php">
 
<source lang="php">
 +
// Note JDispatcher is deprecated in favour of JEventDispatcher in Joomla 3.x however still works.
 
$dispatcher = JDispatcher::getInstance();
 
$dispatcher = JDispatcher::getInstance();
 
$item->text = your_text_area_item;   
 
$item->text = your_text_area_item;   
Line 15: Line 16:
 
$dispatcher->trigger('onPrepareContent', array (& $item, & $item->params, 0));  
 
$dispatcher->trigger('onPrepareContent', array (& $item, & $item->params, 0));  
 
</source>
 
</source>
 
Note in Joomla 3.x JDispatcher is deprecated in favour of JEventDispatcher. However as JEventDispatcher doesn't exist in Joomla 2.5 - this code is needed for your extension to support both versions of Joomla.
 
  
 
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.
 
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.
Line 23: Line 22:
 
<noinclude>[[Category:Extension development]][[Category:Plugins]]
 
<noinclude>[[Category:Extension development]][[Category:Plugins]]
 
[[Category:Plugin Development]]
 
[[Category:Plugin Development]]
 +
[[Category:Development Recommended Reading]]
 
</noinclude>
 
</noinclude>

Revision as of 15:56, 8 October 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:

// Note JDispatcher is deprecated in favour of JEventDispatcher in Joomla 3.x however still works.
$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.