2013-04-05 18 views
1

我们正在为Joomla 2.5构建一个用户同步插件(获取Joomla用户并通过JSON API调用将它们发送到另一个平台)。这一切都很好,但是一旦复制,Joomla中的配置文件更新就不会反映到外部平台。如何通过编程检测Joomla中的用户配置文件更改(事件)?

我看到有一些事件,如onUserAfterSaveonUserBeforeSave,但据我了解,这些只适用于插件而不是组件(我们正在建设与前端和后端组件)。

所以我的问题是,我们如何检测编程用户已经改变了他的个人资料以某种方式(姓名,电子邮件或密码),并相应地执行我们的组件的东西。

+2

你将不得不创建一个插件触发这些事件,并从它调用你的组件方法 – 2013-04-05 15:20:03

回答

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) 
{} 

基本上任何你想要的,你可以做的方法里面,你的情况可能会更新组件中的某些表。