J3.x

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

From Joomla! Documentation

(Remove duplicate text)
(Marked this version for translation)
 
(15 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{version|2.5,3.x}}
+
<noinclude><languages /></noinclude>
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:
+
<noinclude>{{Joomla version|version=3.x}}</noinclude>
 +
<translate><!--T:1-->
 +
A common example of [[S:MyLanguage/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:</translate>
  
 
<source lang="php">
 
<source lang="php">
Line 6: Line 8:
 
</source>
 
</source>
  
For any other content triggers you must call:
+
<translate><!--T:2-->
 +
For any other content triggers you must call:</translate>
  
 
<source lang="php">
 
<source lang="php">
// Note JDispatcher is deprecated in favour of JEventDispatcher in Joomla 3.x however still works.
+
$article = new stdClass;
$dispatcher = JDispatcher::getInstance();
+
$article->text = $text;
$item->text = your_text_area_item;
+
 
$item->params = clone($params);
+
// <translate><!--T:7--> add more to parameters if needed</translate>
JPluginHelper::importPlugin('content');  
+
$params = new JObject;
$dispatcher->trigger('onPrepareContent', array (& $item, & $item->params, 0));  
+
 
 +
// <translate><!--T:8--> Note JEventDispatcher succeeded the older JDispatcher from Joomla 1.5/2.5 however it does still work if you need to keep compatibility.</translate>
 +
JPluginHelper::importPlugin('content');
 +
$dispatcher = JEventDispatcher::getInstance();
 +
$dispatcher->trigger('onContentPrepare', array('some.context', &$article, &$params, 0));
 
</source>
 
</source>
  
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.
+
<translate><!--T:3-->
 +
You might want to look at core components (for example com_content) for an example. See the [[S:MyLanguage/Plugin/Events|triggers page]] for the possible content plugin triggers.</translate>
  
Also for PHP5.3 compliance please look at the discussion page.
+
<noinclude>
<noinclude>[[Category:Extension development]][[Category:Plugins]]
+
[[Category:Extension development{{#translation:}}]]
[[Category:Plugin Development]]
+
[[Category:Plugins{{#translation:}}]]
 +
[[Category:Plugin Development{{#translation:}}]]
 +
[[Category:Development Recommended Reading{{#translation:}}]]
 
</noinclude>
 
</noinclude>

Latest revision as of 12:24, 7 April 2020

Other languages:
Deutsch • ‎English • ‎Nederlands • ‎español • ‎français • ‎中文(台灣)‎
Joomla! 
3.x

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 JEventDispatcher succeeded the older JDispatcher from Joomla 1.5/2.5 however it does still work if you need to keep compatibility.
JPluginHelper::importPlugin('content');
$dispatcher = JEventDispatcher::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.