diff --git a/functions/func.fields.php b/functions/func.fields.php index 5a30237..863b51a 100644 --- a/functions/func.fields.php +++ b/functions/func.fields.php @@ -384,30 +384,40 @@ } - /** +/** * Возвращаем истинное значение поля для документа * * @param int $document_id id документа * @param string $field id поля или его алиас * - * @return string + * @return string|false */ function get_document_field ($document_id, $field) { - if (Registry::stored($document_id, $field)) + if (Registry::stored($document_id, $field)) { $document_fields = Registry::get($document_id, $field); - else + } else { $document_fields = get_document_fields($document_id); + } - if (! is_array($document_fields[$field])) - $field = intval($document_fields[$field]); - - if (empty($document_fields[$field])) + if (!isset($document_fields[$field])) { return false; + } - $field_value = $document_fields[$field]['field_value']; + if (!is_array($document_fields[$field])) { + $field_id = (int)$document_fields[$field]; + + if (!isset($document_fields[$field_id])) { + return false; + } + $field = $field_id; + } - return $field_value; + if (empty($document_fields[$field]['field_value'])) { + return false; + } + + return $document_fields[$field]['field_value']; }