Actions

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

From Joomla! Documentation

(Update 1.5 to 2.5/3.x)
 
(5 intermediate revisions by 3 users not shown)
Line 9: Line 9:
  
 
<source lang="php">
 
<source lang="php">
 +
$article = new stdClass;
 +
$article->text = $text;
 +
 +
// add more to parameters if needed
 +
$params = new JObject;
 +
 +
// Note JDispatcher is deprecated in favour of JEventDispatcher in Joomla 3.x however still works.
 +
JPluginHelper::importPlugin('content');
 
$dispatcher = JDispatcher::getInstance();
 
$dispatcher = JDispatcher::getInstance();
$item->text = your_text_area_item; 
+
$dispatcher->trigger('onContentPrepare', array('some.context', &$article, &$params, 0));
$item->params = clone($params);
+
JPluginHelper::importPlugin('content');
+
$dispatcher->trigger('onPrepareContent', array (& $item, & $item->params, 0));  
+
 
</source>
 
</source>
  
Line 21: Line 26:
 
<noinclude>[[Category:Extension development]][[Category:Plugins]]
 
<noinclude>[[Category:Extension development]][[Category:Plugins]]
 
[[Category:Plugin Development]]
 
[[Category:Plugin Development]]
 +
[[Category:Development Recommended Reading]]
 
</noinclude>
 
</noinclude>

Latest revision as of 12:13, 27 March 2015

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:

$article = new stdClass;
$article->text = $text;
 
// add more to parameters if needed
$params = new JObject;
 
// Note JDispatcher is deprecated in favour of JEventDispatcher in Joomla 3.x however still works.
JPluginHelper::importPlugin('content');
$dispatcher = JDispatcher::getInstance();
$dispatcher->trigger('onContentPrepare', array('some.context', &$article, &$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.