需要有关cmsmadesimple事件的帮助。我正在尝试处理模块和事件OnLogin。此模块在method.install.php中启动此事件:
$this->CreateEvent( 'OnLogin' );在我的Civicrm模块method.instal.php中,我注册了OnLogin处理程序:
$this->AddEventHandler( 'FrontEndUsers', 'OnLogin' );那么,让我们开始吧。FrontEndUser在action.do_login.php中发送此事件时使用:
$parms = array();
$parms['id'] = $this->LoggedInId();
$parms['username'] = $params['feu_input_username'];
$parms['ip'] = cge_utils::get_real_ip();
$this->SendEvent( 'OnLogin', $parms );
$this->_SendNotificationEmail('OnLogin',$parms);我在CiviCRM模块中这样做:
public function DoEvent($originator, $eventname, &$params)
{
if ($originator == 'FrontEndUsers' && $eventname == 'OnLogin')
var_dump($params);
die("feulogin");
}
}当你进行前台登录时,脚本会像预期的那样终止,但当你尝试调试$params时,却搞不懂事件是如何发送的,因为甚至注释掉了:
//$this->SendEvent( 'OnLogin', $parms ); DoEvent()也处理事件(带消息退出脚本)。
在发送OnLogin事件的FrontEndUsers中找不到更多的代码,所以请帮我找出来。
发布于 2014-02-20 20:24:06
我自己解决的。FrontEndUsers从modules/FrontEndUsers/lib/class.FrontEndUsersManipulator.php:发送事件
function Login( $username, $password, $groups = '', $md5pw = false, $force_logout =false)
{
$module->SendEvent('OnLogin',array('id'=>$uid,'username'=>$username,'ip'=>$ip));
}https://stackoverflow.com/questions/21878456
复制相似问题