我们正在为Joomla 2.5构建用户同步插件(获取Joomla用户并通过JSON API调用将它们发送到另一个平台)。这一切都运行正常,但一旦复制,Joomla中的配置文件更新不会反映到外部平台。
我看到有一些事件,例如onUserAfterSave
和onUserBeforeSave
,但据我所知,这些只适用于插件而不适用于组件(我们正在构建一个带有前端的组件,后端)。
所以我的问题是,我们如何以编程方式检测用户是否以某种方式更改了他的个人资料(姓名,电子邮件或密码)并相应地在我们的组件中执行了某些操作。
答案 0 :(得分:2)
您需要创建用户个人资料插件。在分发插件时,您可以将插件与组件一起打包。在Joomla中,扩展包含1-2个组件,模块和插件是很常见的。这就是Joomla在特定扩展中分离特定作业的方式。
关于如何做的好例子已经在这里:
/plugins/user/
以下是您的方法签名:
/**
* @param array $user Holds the new user data.
* @param boolean $isnew True if a new user is stored.
* @param boolean $success True if user was succesfully stored in the database.
* @param string $msg Message.
*/
public function onUserAfterSave($user, $isnew, $success, $msg)
{}
基本上在方法中你可以做任何你想做的事情,在你的情况下可能会从你的组件中更新一些表。