Php 如何发送cmsmadesimple事件?
需要有关cmsmadesimple事件的帮助。我正在尝试处理模块FrontEndUsers事件OnLogin。此模块在method.install.php:Php 如何发送cmsmadesimple事件?,php,events,cmsmadesimple,Php,Events,Cmsmadesimple,需要有关cmsmadesimple事件的帮助。我正在尝试处理模块FrontEndUsers事件OnLogin。此模块在method.install.php:中启动此事件 $this->CreateEvent( 'OnLogin' ); 在我的Civicrm模块method.instal.php中,我注册了OnLogin处理程序: $this->AddEventHandler( 'FrontEndUsers', 'OnLogin' ); 那么,让我们开始吧。FrontEndUser
中启动此事件
$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中找不到更多代码,请帮助我查找。我自己解决了这个问题。FrontEndUsers从模块/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));
}