?
avatar Denitz
Denitz
31 Jul 2020

Steps to reproduce the issue

Register own handler for onAfterRenderModules event and try to modify the $buffer passed as first argument.

Expected result

$buffer is passed by reference in event trigger and should be allowed to be modified by plugins.

Actual result

No modifications are applied because we can't access Joomla\Event\Event argument by reference.

Additional comments

Either Joomla\Event\Event should allow argument modifications by reference, or onAfterRenderModules event should use object argument with buffer property returned by ModulesRenderer::render() (but this breaks BC).

avatar Denitz Denitz - open - 31 Jul 2020
avatar joomla-cms-bot joomla-cms-bot - change - 31 Jul 2020
Labels Added: ?
avatar joomla-cms-bot joomla-cms-bot - labeled - 31 Jul 2020
avatar Denitz
Denitz - comment - 31 Jul 2020

Actually all events with non-object arguments passed by reference are affected.

avatar SharkyKZ
SharkyKZ - comment - 31 Jul 2020

I think you have to use event's setArgument() method to set the new value. Like here:

$event->setArgument('result', $result);

avatar Denitz Denitz - change - 31 Jul 2020
Status New Closed
Closed_Date 0000-00-00 00:00:00 2020-07-31 14:16:26
Closed_By Denitz
avatar Denitz
Denitz - comment - 31 Jul 2020

Yes, looks like working!

avatar Denitz Denitz - close - 31 Jul 2020

Add a Comment

Login with GitHub to post a comment