Index: branches/5.2.x/core/units/helpers/ajax_form_helper.php =================================================================== diff -u -N -r15703 -r15751 --- branches/5.2.x/core/units/helpers/ajax_form_helper.php (.../ajax_form_helper.php) (revision 15703) +++ branches/5.2.x/core/units/helpers/ajax_form_helper.php (.../ajax_form_helper.php) (revision 15751) @@ -46,6 +46,42 @@ } /** + * Returns information about all uploader fields. + * + * @param kDBItem $object Object to process + * @param array|null $fields Fields filter. + * + * @return array + * @access public + */ + public function getUploaderInfo(kDBItem $object, $fields = null) + { + $ret = array(); + + if ( !isset($fields) ) { + $fields = array_keys($object->getFields()); + } + + foreach ($fields as $field) { + $formatter = $object->GetFieldOption($field, 'formatter'); + + if ( !$formatter ) { + continue; + } + + if ( $formatter == 'kUploadFormatter' || in_array('kUploadFormatter', class_parents($formatter)) ) { + $ret[$field] = array( + 'urls' => $object->GetField($field, 'file_urls'), + 'names' => $object->GetField($field, 'file_names'), + 'sizes' => $object->GetField($field, 'file_sizes'), + ); + } + } + + return $ret; + } + + /** * Sends JSON-encoded response as event result to the browser * * @param kEvent $event @@ -80,6 +116,15 @@ $params['status'] = 'OK'; $event->CallSubEvent($call_event); + $form_data = $event->getEventParam('form_data'); + + if ( $form_data !== false ) { + $object = $event->getObject(); + /* @var $object kDBItem */ + + $params['uploader_info'] = $this->getUploaderInfo($object, array_keys($form_data)); + } + if ( is_callable($callback) ) { call_user_func($callback, $event); }