Index: branches/5.0.x/core/kernel/db/db_event_handler.php =================================================================== diff -u -N -r13528 -r13543 --- branches/5.0.x/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 13528) +++ branches/5.0.x/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 13543) @@ -1,6 +1,6 @@ Application->getUnitOption($event->Prefix, 'ConfigMapping'); $list_sortings = $this->Application->getUnitOption($event->Prefix, 'ListSortings'); $sorting_prefix = array_key_exists($event->Special, $list_sortings) ? $event->Special : ''; - + $tag_sort_by = $event->getEventParam('sort_by'); if ($tag_sort_by) { if ($tag_sort_by == 'random') { @@ -2371,9 +2371,17 @@ $fname = $id.'_'.$fname; } + $field_name = $this->Application->GetVar('field'); $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); - $upload_dir = $fields[ $this->Application->GetVar('field') ]['upload_dir']; + if (array_key_exists($field_name, $fields)) { + $upload_dir = $fields[$field_name]['upload_dir']; + } + else { + $virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); + $upload_dir = $virtual_fields[$field_name]['upload_dir']; + } + if (!is_writable($tmp_path) || !is_writable(FULL_PATH . $upload_dir)) { // 500 Internal Server Error // check both temp and live upload directory