我正在尝试在保存 Joomla 插件配置时运行一些代码,并且我已经浏览了文档并尝试了我可以die();
在其中找到的所有内容事件,但没有一个被触发。
public function onContentAfterSave($context, $article, $isNew)
{
die();
}
谁能指出我如何做到这一点?
onContentBeforeSave 顾名思义:在保存内容而不是插件配置之前触发。为了捕捉保存的插件配置,您没有可用的 Joomla 事件。
因此,您可以在管理员的每次页面加载时检查插件配置是否已更改:顺序为:
您的插件 onContentBeforeDisplay(或您的业务逻辑不需要的一些其他事件)仅在管理员中运行(这不是默认行为,如果它是前端,您需要检查并退出以避免减慢您的网站速度)并在该事件处理程序中检查自定义配置字段:为此,您只需在插件配置中插入一个自定义(隐藏)值。当您的事件触发时,您加载插件配置并检查它是否为默认值,将其从配置对象中删除并再次保存到数据库;所以下次用户加载它时它会再次改变,设置默认值。不好,但它会工作。