Index: branches/5.2.x/core/units/email_events/email_events_event_handler.php =================================================================== diff -u -N -r15465 -r15542 --- branches/5.2.x/core/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 15465) +++ branches/5.2.x/core/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 15542) @@ -1,6 +1,6 @@ Array ('self' => 'debug'), 'OnMassApprove' => Array ('self' => 'debug'), 'OnMassDecline' => Array ('self' => 'debug'), + 'OnSend' => Array ('self' => 'debug'), ); $this->permMapping = array_merge($this->permMapping, $permissions); @@ -193,10 +194,8 @@ $items_info = $this->Application->GetVar('u'); if ( $items_info ) { - $user_id = array_shift(array_keys($items_info)); + list ($user_id, ) = each($items_info); - $selected_ids = $this->getSelectedIDs($event, true); - $ids = $this->Application->RecallVar($event->getPrefixSpecial() . '_selected_ids'); $id_field = $this->Application->getUnitOption($event->Prefix, 'IDField'); $table_name = $this->Application->getUnitOption($event->Prefix, 'TableName'); @@ -726,4 +725,32 @@ $temp_handler->DeleteItems('system-event-subscription', '', $ids); } + + /** + * Sends selected e-mail event + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnSend(kEvent $event) + { + $object = $event->getObject(Array ('skip_autoload' => true)); + /* @var $object kDBItem */ + + $ids = $this->StoreSelectedIDs($event); + + foreach ($ids as $id) { + $object->Load($id); + + if ( $object->GetDBField('Type') == EmailEvent::EVENT_TYPE_ADMIN ) { + $this->Application->EmailEventAdmin($object->GetDBField('Event')); + } + else { + $this->Application->EmailEventUser($object->GetDBField('Event')); + } + } + + $this->clearSelectedIDs($event); + } } \ No newline at end of file