case 'resolution': case 'severity': case 'status': case 'view_state': $t_element_data = get_enum_element($t_element, $t_value); $writer->startElement($t_element); $writer->writeAttribute('id', $t_value); $writer->text($t_element_data); $writer->endElement(); break; default: $writer->writeElement($t_element, $t_value); } } # fetch and export custom fields $t_custom_fields = custom_field_get_all_linked_fields($t_row->id); if (is_array($t_custom_fields) && count($t_custom_fields) > 0) { $writer->startElement('custom_fields'); foreach ($t_custom_fields as $custom_field_name => $t_custom_field) { $writer->startElement('custom_field'); # id $writer->writeElement('id', custom_field_get_id_from_name($custom_field_name)); # title $writer->writeElement('name', $custom_field_name); # filename $writer->writeElement('type', $t_custom_field['type']); # filesize $writer->writeElement('value', $t_custom_field['value']); # file_type $writer->writeElement('access_level_r', $t_custom_field['access_level_r']); $writer->endElement();
/** * Gets the custom fields array for the given bug readable by specified level. * Array keys are custom field names. Array is sorted by custom field sequence number; * Array items are arrays with the next keys: * 'type', 'value', 'access_level_r' * @param integer $p_bug_id A bug identifier. * @param integer $p_user_access_level Access level. * @return array * @access public */ function custom_field_get_linked_fields($p_bug_id, $p_user_access_level) { $t_custom_fields = custom_field_get_all_linked_fields($p_bug_id); # removing restricted fields foreach ($t_custom_fields as $t_custom_field_name => $t_custom_field_data) { if ($p_user_access_level < $t_custom_field_data['access_level_r']) { unset($t_custom_fields[$t_custom_field_name]); } } return $t_custom_fields; }