Triggering content plugins in your extension: Difference between revisions
From Joomla! Documentation
m moved Talk:Using plugins in your own extension to Talk:Triggering content plugins in your extension: Merged into Supporting plugins in your component - redistributed content |
No edit summary |
||
| Line 38: | Line 38: | ||
Not sure why this did not make the 1.5.15 ... 1.5.18 releases. | Not sure why this did not make the 1.5.15 ... 1.5.18 releases. | ||
== Problem with pagebreak plugin: == | |||
At least one of the content plugins called 'pagebreak' does fully work in articles, only. | |||
In a custom component the '<hr class="system-pagebreak' elements are just removed from the output; this means, any pagebreaks in a custom component's output are ignored. | |||
This happens in pagebreak.php:96: | |||
<source lang="php"> | |||
if ($params->get('intro_only') || $params->get('popup') || $full || $view != 'article') | |||
{ | |||
$row->text = preg_replace($regex, '', $row->text); | |||
return; | |||
} | |||
</source> | |||
Please be aware of that, using this example! | |||
Revision as of 09:46, 18 August 2016
Problem with PHP 5.3 when using this example:
PHP Warning: Parameter 2 to plgContent<MostPlugins>::onPrepareContent() expected to be a reference, value given in <whichever plugin cause that> on line <xx>
As of PHP 5.3.0, you will get a warning saying that "call-time pass-by-reference" is deprecated when you use & in foo(&$a); See http://php.net/manual/en/language.references.pass.php
The Example.php in content shows (now wrongly and deprecated in PHP 5.3):
$dispatcher->trigger('onPrepareContent', array (& $item, & $item->params, 0));
or could be: function onPrepareContent( &$article, '''&'''$params, $limitstart );
SHOULD now be:
$dispatcher->trigger('onPrepareContent', array (& $item, $item->params, 0));
or could be: function onPrepareContent( &$article, $params, $limitstart );
FIX:
-> Going into JOOMLA root and do a global replace through all PHP files will fix this issue.
Furthermore (somewhat related) if you getting the following error:
Warning: Missing argument 3 for plgContent<PluginName>::onPrepareContent() in JOOMLA\plugins\content\<PluginName.php> on line xx
you may also want to change in file JOOMLA\modules\mod_customcontent\helper.php:
line 36, change the array to: array (& $item, & $params, $limitstart ))
Ref: joomlacode.org/gf/project/ianstools/tracker/?action=TrackerItemEdit&tracker_item_id=10578
Not sure why this did not make the 1.5.15 ... 1.5.18 releases.
Problem with pagebreak plugin:
At least one of the content plugins called 'pagebreak' does fully work in articles, only. In a custom component the '<hr class="system-pagebreak' elements are just removed from the output; this means, any pagebreaks in a custom component's output are ignored.
This happens in pagebreak.php:96:
if ($params->get('intro_only') || $params->get('popup') || $full || $view != 'article')
{
$row->text = preg_replace($regex, '', $row->text);
return;
}
Please be aware of that, using this example!