Joomla 插件 onAfterRender
Joomla Plugin onAfterRender
如何让 onAfterRender
最后调用?
问题是我不想在一切都完成后对 JResponse:getBody()
进行更改。
但遗憾的是,我创建的自定义插件最后没有被调用,所以在我对内容进行更改后,会有另一个插件进行更改,这对我来说并不好。
是否有任何其他方法或设置可以让我的 onAfterRender
最后接听电话?
[更新]
从 Joomla 论坛找到并回答,但仍然无法将插件的顺序更改为最后一个,这可能有效,但由于其他原因,其他插件仍未遵循该顺序。
到目前为止,我认为构建插件的顺序没问题,但事件有点奇怪。
我的理论是 Custom Plugin
调用 onAfterRender
的过程可能比 Other Plugin
少,而不是在 Other Plugin __construct ()Custom Plugin __construct ()Other Plugin onAfterRender ()Custom Plugin onAfterRender ()
的序列中
我设法通过将其分离并附加到 JEventDispatcher::getInstance();
来解决问题
/**
* [onAfterInitialise description]
* @return [type] [description]
*/
public function onAfterInitialise()
{
$dispatcher = JEventDispatcher::getInstance();
$dispatcher->detach($this);
$dispatcher->attach($this);
}
/**
* [onBeforeRender description]
* @return [type] [description]
*/
public function onBeforeRender()
{
$dispatcher = JEventDispatcher::getInstance();
$dispatcher->detach($this);
$dispatcher->attach($this);
}
还是有疑问,希望有人能给我解释一下:)
如何让 onAfterRender
最后调用?
问题是我不想在一切都完成后对 JResponse:getBody()
进行更改。
但遗憾的是,我创建的自定义插件最后没有被调用,所以在我对内容进行更改后,会有另一个插件进行更改,这对我来说并不好。
是否有任何其他方法或设置可以让我的 onAfterRender
最后接听电话?
[更新] 从 Joomla 论坛找到并回答,但仍然无法将插件的顺序更改为最后一个,这可能有效,但由于其他原因,其他插件仍未遵循该顺序。
到目前为止,我认为构建插件的顺序没问题,但事件有点奇怪。
Custom Plugin
调用 onAfterRender
的过程可能比 Other Plugin
少,而不是在 Other Plugin __construct ()Custom Plugin __construct ()Other Plugin onAfterRender ()Custom Plugin onAfterRender ()
我设法通过将其分离并附加到 JEventDispatcher::getInstance();
/**
* [onAfterInitialise description]
* @return [type] [description]
*/
public function onAfterInitialise()
{
$dispatcher = JEventDispatcher::getInstance();
$dispatcher->detach($this);
$dispatcher->attach($this);
}
/**
* [onBeforeRender description]
* @return [type] [description]
*/
public function onBeforeRender()
{
$dispatcher = JEventDispatcher::getInstance();
$dispatcher->detach($this);
$dispatcher->attach($this);
}
还是有疑问,希望有人能给我解释一下:)