Index: branches/5.2.x/core/kernel/db/db_event_handler.php =================================================================== diff -u -N -r14758 -r14762 --- branches/5.2.x/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 14758) +++ branches/5.2.x/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 14762) @@ -1,6 +1,6 @@ SetFieldsFromHash($field_values); $object->setID($id); - $response = Array ('status' => 'OK',); + $response = Array ('status' => 'OK'); $event->CallSubEvent($object->isLoaded() ? 'OnBeforeItemUpdate' : 'OnBeforeItemCreate'); @@ -3069,6 +3069,11 @@ $response['status'] = $object->GetErrorMsg($error_field); } + $ajax_form_helper =& $this->Application->recallObject('AjaxFormHelper'); + /* @var $ajax_form_helper AjaxFormHelper */ + + $response['other_errors'] = $ajax_form_helper->getErrorMessages($object); + $event->status = kEvent::erSTOP; // since event's OnBefore... events can change this event status echo json_encode($response); } Index: branches/5.2.x/core/units/helpers/ajax_form_helper.php =================================================================== diff -u -N -r14758 -r14762 --- branches/5.2.x/core/units/helpers/ajax_form_helper.php (.../ajax_form_helper.php) (revision 14758) +++ branches/5.2.x/core/units/helpers/ajax_form_helper.php (.../ajax_form_helper.php) (revision 14762) @@ -9,13 +9,24 @@ * @param kEvent $event * @param Array $response */ - function prepareJSONErrors(&$event, &$response) + public function prepareJSONErrors(&$event, &$response) { $object =& $event->getObject(); /* @var $object kDBItem */ - $error_msgs = Array (); + $response['status'] = 'FAILED'; + $response['field_errors'] = $this->getErrorMessages($object); + } + /** + * Returns object errors + * + * @param kDBItem $object + * @return Array + */ + public function getErrorMessages(&$object) + { + $error_msgs = Array (); $field_errors = array_keys( $object->GetFieldErrors() ); foreach ($field_errors as $field) { @@ -31,8 +42,7 @@ $error_msgs[$field] = $object->GetErrorMsg($error_field); } - $response['status'] = 'FAILED'; - $response['field_errors'] = $error_msgs; + return $error_msgs; } /** @@ -41,7 +51,7 @@ * @param kEvent $event * @param Array $response */ - function sendResponse(&$event, $response) + public function sendResponse(&$event, $response) { $json_helper =& $this->Application->recallObject('JSONHelper'); /* @var $json_helper JSONHelper */ @@ -58,7 +68,7 @@ * @param string $call_event * @param Array $params */ - function transitEvent(&$event, $call_event, $params = Array ()) + public function transitEvent(&$event, $call_event, $params = Array ()) { $params['status'] = 'OK'; $event->CallSubEvent($call_event);