J3.x

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

From Joomla! Documentation

(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
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:
+
{{version|2.5,3.x}}
 +
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:
  
 
<source lang="php">
 
<source lang="php">
$text = JHTML::_('content.prepare', $text);
+
$text = JHtml::_('content.prepare', $text);
 
</source>
 
</source>
  
For early versions of Joomla! 1.5, you need to "spell it out":
+
For any other content triggers you must call:
  
 
<source lang="php">
 
<source lang="php">
$dispatcher =& JDispatcher::getInstance();
+
// Note JDispatcher is deprecated in favour of JEventDispatcher in Joomla 3.x however still works.
$item->text = & your_text_area_item;   
+
$dispatcher = JDispatcher::getInstance();
 +
$item->text = your_text_area_item;   
 
$item->params = clone($params);
 
$item->params = clone($params);
 
JPluginHelper::importPlugin('content');  
 
JPluginHelper::importPlugin('content');  
Line 15: Line 17:
 
</source>
 
</source>
  
You might want to look at core components (for example com_content) for an example.
+
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.
 
Also for PHP5.3 compliance please look at the discussion page.
 
<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.