Index: branches/5.2.x/core/units/email_events/email_events_event_handler.php =================================================================== diff -u -N -r13840 -r14095 --- branches/5.2.x/core/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 13840) +++ branches/5.2.x/core/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 14095) @@ -1,6 +1,6 @@ Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1)) { - $event->status = erFAIL; + $event->status = kEvent::erFAIL; return ; } @@ -146,7 +146,7 @@ } if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1)) { - $event->status = erFAIL; + $event->status = kEvent::erFAIL; return ; } @@ -232,11 +232,11 @@ $address_type = $object->GetDBField('SenderAddressType'); switch ($address_type) { - case ADDRESS_TYPE_EMAIL: + case EmailEvent::ADDRESS_TYPE_EMAIL: $email = $address; break; - case ADDRESS_TYPE_USER: + case EmailEvent::ADDRESS_TYPE_USER: $sql = 'SELECT FirstName, LastName, Email, PortalUserId FROM ' . TABLE_PREFIX . 'PortalUser WHERE Login = ' . $this->Conn->qstr($address); @@ -321,15 +321,15 @@ } } - if (!array_key_exists(RECIPIENT_TYPE_TO, $all_recipients)) { - $all_recipients[RECIPIENT_TYPE_TO] = Array (); + if (!array_key_exists(EmailEvent::RECIPIENT_TYPE_TO, $all_recipients)) { + $all_recipients[EmailEvent::RECIPIENT_TYPE_TO] = Array (); } // remove all "To" recipients, when not allowed $overwrite_to_email = array_key_exists('overwrite_to_email', $direct_params) ? $direct_params['overwrite_to_email'] : false; if (!$object->GetDBField('CustomRecipient') || $overwrite_to_email) { - $all_recipients[RECIPIENT_TYPE_TO] = Array (); + $all_recipients[EmailEvent::RECIPIENT_TYPE_TO] = Array (); } // update with custom data given during event execution (user_id) @@ -343,12 +343,12 @@ if ($user_info) { $add_recipient = Array ( - 'RecipientAddressType' => ADDRESS_TYPE_EMAIL, + 'RecipientAddressType' => EmailEvent::ADDRESS_TYPE_EMAIL, 'RecipientAddress' => $user_info['Email'], 'RecipientName' => trim($user_info['FirstName'] . ' ' . $user_info['LastName']), ); - array_unshift($all_recipients[RECIPIENT_TYPE_TO], $add_recipient); + array_unshift($all_recipients[EmailEvent::RECIPIENT_TYPE_TO], $add_recipient); $user =& $this->Application->recallObject('u.email-to', null, Array('skip_autoload' => true)); /* @var $user UsersItem */ @@ -358,15 +358,15 @@ } elseif (is_numeric($to_user_id)) { // recipient is system user with negative ID (root, guest, etc.) -> send to admin - array_unshift($all_recipients[RECIPIENT_TYPE_TO], $this->_getDefaultRepipient()); + array_unshift($all_recipients[EmailEvent::RECIPIENT_TYPE_TO], $this->_getDefaultRepipient()); } // update with custom data given during event execution (email + name) $add_recipient = Array (); if (array_key_exists('to_email', $direct_params)) { $add_recipient['RecipientName'] = ''; - $add_recipient['RecipientAddressType'] = ADDRESS_TYPE_EMAIL; + $add_recipient['RecipientAddressType'] = EmailEvent::ADDRESS_TYPE_EMAIL; $add_recipient['RecipientAddress'] = $direct_params['to_email']; } @@ -375,21 +375,21 @@ } if ($add_recipient) { - array_unshift($all_recipients[RECIPIENT_TYPE_TO], $add_recipient); + array_unshift($all_recipients[EmailEvent::RECIPIENT_TYPE_TO], $add_recipient); } - if (($object->GetDBField('Type') == EVENT_TYPE_ADMIN) && !$all_recipients[RECIPIENT_TYPE_TO]) { + if (($object->GetDBField('Type') == EmailEvent::EVENT_TYPE_ADMIN) && !$all_recipients[EmailEvent::RECIPIENT_TYPE_TO]) { // admin email event without direct recipient -> send to admin - array_unshift($all_recipients[RECIPIENT_TYPE_TO], $this->_getDefaultRepipient()); + array_unshift($all_recipients[EmailEvent::RECIPIENT_TYPE_TO], $this->_getDefaultRepipient()); } $esender =& $this->Application->recallObject('EmailSender'); /* @var $esender kEmailSendingHelper */ $header_mapping = Array ( - RECIPIENT_TYPE_TO => 'To', - RECIPIENT_TYPE_CC => 'Cc', - RECIPIENT_TYPE_BCC => 'Bcc', + EmailEvent::RECIPIENT_TYPE_TO => 'To', + EmailEvent::RECIPIENT_TYPE_CC => 'Cc', + EmailEvent::RECIPIENT_TYPE_BCC => 'Bcc', ); $default_email = $this->Application->ConfigValue('Smtp_AdminMailFrom'); @@ -404,11 +404,11 @@ $repipient_name = $recipient['RecipientName']; switch ($address_type) { - case ADDRESS_TYPE_EMAIL: + case EmailEvent::ADDRESS_TYPE_EMAIL: $pairs[] = Array ('email' => $address, 'name' => $repipient_name); break; - case ADDRESS_TYPE_USER: + case EmailEvent::ADDRESS_TYPE_USER: $sql = 'SELECT FirstName, LastName, Email FROM ' . TABLE_PREFIX . 'PortalUser WHERE Login = ' . $this->Conn->qstr($address); @@ -425,7 +425,7 @@ } break; - case ADDRESS_TYPE_GROUP: + case EmailEvent::ADDRESS_TYPE_GROUP: $sql = 'SELECT u.FirstName, u.LastName, u.Email FROM ' . TABLE_PREFIX . 'PortalGroup g JOIN ' . TABLE_PREFIX . 'UserGroup ug ON ug.GroupId = g.GroupId @@ -449,7 +449,7 @@ continue; } - if ($recipient_type == RECIPIENT_TYPE_TO) { + if ($recipient_type == EmailEvent::RECIPIENT_TYPE_TO) { $to_email = $pairs[0]['email'] ? $pairs[0]['email'] : $default_email; $to_name = $pairs[0]['name'] ? $pairs[0]['name'] : $to_email; } @@ -476,7 +476,7 @@ { return Array ( 'RecipientName' => $this->Application->ConfigValue('Smtp_AdminMailFrom'), - 'RecipientAddressType' => ADDRESS_TYPE_EMAIL, + 'RecipientAddressType' => EmailEvent::ADDRESS_TYPE_EMAIL, 'RecipientAddress' => $this->Application->ConfigValue('Smtp_AdminMailFrom'), ); } @@ -507,7 +507,7 @@ $replacement_tags = $object->GetDBField('ReplacementTags'); $replacement_tags = $replacement_tags ? unserialize($replacement_tags) : Array (); - $replacement_tags = array_merge_recursive2($default_replacement_tags, $replacement_tags); + $replacement_tags = array_merge($default_replacement_tags, $replacement_tags); foreach ($replacement_tags as $replace_from => $replace_to) { $message_body = str_replace($replace_from, $replace_to, $message_body); @@ -618,7 +618,7 @@ $this->Application->InitParser(); $parser_params = $this->Application->Parser->Params; // backup parser params - $this->Application->Parser->SetParams( array_merge_recursive2($parser_params, $direct_params) ); + $this->Application->Parser->SetParams( array_merge($parser_params, $direct_params) ); $message = implode('&|&', explode("\n\n", $message, 2)); // preserves double \n in case when tag is located in subject field $message = $this->Application->Parser->Parse($message, 'email_template', 0); @@ -657,7 +657,7 @@ { $email_event_name = $event->getEventParam('EmailEventName'); if (strpos($email_event_name, '_') !== false) { - trigger_error('Invalid email event name '.$email_event_name.'. Use only UPPERCASE characters and dots as email event names', E_USER_ERROR); + throw new Exception('Invalid email event name ' . $email_event_name . '. Use only UPPERCASE characters and dots as email event names'); } $object =& $this->_getEmailEvent($event); @@ -697,7 +697,7 @@ if ($this->Application->isDebugMode()) { // set special header with event name, so it will be easier to determite what's actually was received - $message_headers['X-Event-Name'] = $email_event_name . ' - ' . ($object->GetDBField('Type') == EVENT_TYPE_ADMIN ? 'ADMIN' : 'USER'); + $message_headers['X-Event-Name'] = $email_event_name . ' - ' . ($object->GetDBField('Type') == EmailEvent::EVENT_TYPE_ADMIN ? 'ADMIN' : 'USER'); } foreach ($message_headers as $header_name => $header_value) { @@ -706,9 +706,9 @@ $esender->CreateTextHtmlPart($message_body, $object->GetDBField('MessageType') == 'html'); - $event->status = $esender->Deliver() ? erSUCCESS : erFAIL; + $event->status = $esender->Deliver() ? kEvent::erSUCCESS : kEvent::erFAIL; - if ($event->status == erSUCCESS) { + if ($event->status == kEvent::erSUCCESS) { // all keys, that are not used in email sending are written to log record $send_keys = Array ('from_email', 'from_name', 'to_email', 'to_name', 'message'); foreach ($send_keys as $send_key) { @@ -819,7 +819,7 @@ } $this->Application->StoreVar('email_queue_progress', $emails_sent.':'.$total_emails); - $event->status = erSTOP; + $event->status = kEvent::erSTOP; echo ($emails_sent / $total_emails) * 100; } } @@ -880,10 +880,10 @@ if (!$this->Application->isDebugMode(false)) { if ($object->GetDBField('AllowChangingRecipient')) { - $object->SetDBField('RecipientType', RECIPIENT_TYPE_TO); + $object->SetDBField('RecipientType', EmailEvent::RECIPIENT_TYPE_TO); } else { - $object->SetDBField('RecipientType', RECIPIENT_TYPE_CC); + $object->SetDBField('RecipientType', EmailEvent::RECIPIENT_TYPE_CC); } } @@ -976,13 +976,13 @@ } switch ($address_type) { - case ADDRESS_TYPE_EMAIL: + case EmailEvent::ADDRESS_TYPE_EMAIL: if (!preg_match('/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i', $address)) { $object->SetError($field_prefix . 'Address', 'invalid_email'); } break; - case ADDRESS_TYPE_USER: + case EmailEvent::ADDRESS_TYPE_USER: $sql = 'SELECT PortalUserId FROM ' . TABLE_PREFIX . 'PortalUser WHERE Login = ' . $this->Conn->qstr($address); @@ -991,7 +991,7 @@ } break; - case ADDRESS_TYPE_GROUP: + case EmailEvent::ADDRESS_TYPE_GROUP: $sql = 'SELECT GroupId FROM ' . TABLE_PREFIX . 'PortalGroup WHERE Name = ' . $this->Conn->qstr($address); @@ -1033,7 +1033,7 @@ */ function OnSuggestAddress(&$event) { - $event->status = erSTOP; + $event->status = kEvent::erSTOP; $address_type = $this->Application->GetVar('type'); $address = $this->Application->GetVar('value'); @@ -1044,17 +1044,17 @@ } switch ($address_type) { - case ADDRESS_TYPE_EMAIL: + case EmailEvent::ADDRESS_TYPE_EMAIL: $field = 'Email'; $table_name = TABLE_PREFIX . 'PortalUser'; break; - case ADDRESS_TYPE_USER: + case EmailEvent::ADDRESS_TYPE_USER: $field = 'Login'; $table_name = TABLE_PREFIX . 'PortalUser'; break; - case ADDRESS_TYPE_GROUP: + case EmailEvent::ADDRESS_TYPE_GROUP: $field = 'Name'; $table_name = TABLE_PREFIX . 'PortalGroup'; break;