J3.x

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

From Joomla! Documentation

(Add notice JDispatcher is deprecated in Joomla 3.x)
(One intermediate revision by the same 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();
+
$dispatcher = JDispatcher::getInstance();
$item->text = & your_text_area_item;   
+
$item->text = your_text_area_item;   
 
$item->params = clone($params);
 
$item->params = clone($params);
 
JPluginHelper::importPlugin('content');  
 
JPluginHelper::importPlugin('content');  
Line 15: Line 16:
 
</source>
 
</source>
  
You might want to look at core components (for example com_content) for an example.
+
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.
  
 
Also for PHP5.3 compliance please look at the discussion page.
 
Also for PHP5.3 compliance please look at the discussion page.

Revision as of 05:01, 8 August 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));

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

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