Parameters

string $object_type:

object $node:

array $exif_fields:

array $image_fields:

1 call to _exif_get_image_fields_metadata()
_exif_node_insert_update in ./exif.module
Main entrypoint of the module.

File

./exif.module, line 158

Code

function _exif_get_image_fields_metadata($object_type, $node, array &$exif_fields, array $image_fields) {
    $result = array();
    if (empty($exif_fields)) {
        return TRUE;
    }
    if (empty($image_fields)) {
        return FALSE;
    }
    $exif = _exif_get_class();
    foreach ($exif_fields as $drupal_field => $metadata_settings) {
        $field_image_name = $metadata_settings['image_field'];
        if (empty($image_fields[$field_image_name])) {
            $result[$field_image_name] = array();
        }
        else {
            $images_descriptor = _exif_get_file_uri_and_language($node, $field_image_name, $object_type);
            $fullmetadata = array();
            if (!empty($images_descriptor)) {
                foreach ($images_descriptor as $index => $image_descriptor) {
                    $fullmetadata[$index] = _exif_get_data_from_file_uri($exif, $image_descriptor['uri']);
                }
            }
            $result[$field_image_name] = $fullmetadata;
            // @todo This was failing because the image_descriptor variable didn't
            // exist. Track down where this came from and work out why it's was
            // written this way; it might have just been an oversight.
            if (isset($image_descriptor['language'])) {
                $exif_fields[$drupal_field]['language'] = $image_descriptor['language'];
            }
            else {
                $exif_fields[$drupal_field]['language'] = LANGUAGE_NONE;
            }
        }
    }
    return $result;
}