Опубликую тут, вообще полезные функции получились.
Не мудрствуя лукаво берем экстеншен Twomile_login_redirect_ext (ext.twomile_login_redirect_ext.php) который: Gives control over user destination after login or logout.
добавляем в этот класс выколупываение кастом филдов и отправку имейла на адрес указанный в уведомлениях о вновь зарегистрированных юзерах:
function _mfields()
{
global $DB;
if ( count( $this->mfields ) > 0 ) return $this->mfields;
$query = $DB->query("SELECT m_field_id, m_field_name, m_field_label, m_field_type, m_field_list_items, m_field_required, m_field_public, m_field_fmt FROM exp_member_fields");
foreach ($query->result as $row)
{
$this->mfields[$row['m_field_name']] = array(
'id' => $row['m_field_id'],
'name' => $row['m_field_name'],
'label' => $row['m_field_label'],
'type' => $row['m_field_type'],
'list' => $row['m_field_list_items'],
'required' => $row['m_field_required'],
'public' => $row['m_field_public'],
'format' => $row['m_field_fmt']
);
}
return $this->mfields;
}
function _memberData()
{
global $REGX;
//foreach ( $this->_custmfields($this->member_id) as $key => $val )
foreach ( $this->custmfields as $key => $val )
{
$r .= "\n " . $REGX->form_prep($key) .": ". $REGX->form_prep($val);
}
return $r;
}
function _custmfields($member_id)
{
global $DB;
$custom = $DB->query( "SELECT * FROM exp_member_data WHERE member_id = '".$member_id."'" );
foreach ( $this->_mfields() as $key => $val )
{
$this->custmfields[$val['label']] = (isset($custom->row['m_field_id_'.$val['id']])) ? $custom->row['m_field_id_'.$val['id']] : '';
}
return $this->custmfields;
}
function _sendEmail($msg,$subj)
{
global $PREFS, $REGX, $SESS;
$notify_address = ( $notify != '' ) ? $notify: $PREFS->ini('mbr_notification_emails');
$notify_address = $REGX->remove_extra_commas( $notify_address );
$this->_custmfields($SESS->userdata['member_id']);
$to = $notify_address;
$msg .= ":\n\n Last visited ".date("F j, Y, g:i a",$SESS->userdata['last_visit']);
$msg .= ":\n\n Last activity ".date("F j, Y, g:i a",$SESS->userdata['last_activity']);
$msg .= "\n\n".$this->_memberData();
if ( ! class_exists('EEmail') )
{
require PATH_CORE.'core.email'.EXT;
}
$email = new EEmail;
$email->initialize();
$email->wordwrap = true;
$email->from($PREFS->ini('webmaster_email'), $PREFS->ini('webmaster_name'));
$email->to($to);
$email->subject($subj);
$email->message($msg);
$email->Send();
}
вызываем отправку уведомления непосредственно перед редиректом:
$this->_sendEmail('Info of logged user','User Logged');