static function new_image($image) { global $_zp_exifvars; $entry_locale = getUserLocale(); $languages = generateLanguageList(); $languageTags = $element = array(); $candidates = self::getTaggingItems(); foreach ($candidates as $key) { if ($meta = $image->get($key)) { setupCurrentLocale('en_US'); $en_us = $element[] = exifTranslate($meta); foreach ($languages as $language) { setupCurrentLocale($language); $xlated = exifTranslate($meta); if ($xlated != $en_us) { // the string has a translation in this language $element[] = $xlated; $languageTags[$language] = $xlated; } } } } setupCurrentLocale($entry_locale); $element = array_unique(array_merge($image->getTags(), $element)); $image->setTags($element); $image->save(); foreach ($languageTags as $language => $tag) { $sql = 'UPDATE ' . prefix('tags') . ' SET `language`=' . db_quote($language) . ' WHERE `name`=' . db_quote($tag) . ' AND `language`=NULL OR `language` LIKE ""'; query($sql, false); } return $image; }
/** * Returns the Metadata infromation from the current image * * @param $image optional image object * @param string $displayonly set to true to return only the items selected for display * @return array */ function getImageMetaData($image = NULL, $displayonly = true) { global $_zp_current_image, $_zp_exifvars; require_once SERVERPATH . '/' . ZENFOLDER . '/exif/exifTranslations.php'; if (is_null($image)) { $image = $_zp_current_image; } if (is_null($image) || !$image->get('hasMetadata')) { return false; } $data = $image->getMetaData(); foreach ($data as $field => $value) { // remove the empty or not selected to display if ($_zp_exifvars[$field][6] == 'time' && ($value = '0000-00-00 00:00:00')) { $value = ''; // really it is empty } if ($displayonly && (!$value || !$_zp_exifvars[$field][3])) { unset($data[$field]); } else { $data[$field] = exifTranslate($value); } } if (count($data) > 0) { return $data; } return false; }
<tr> <td valign="top"><?php echo gettext("Metadata:"); ?> </td> <td> <?php $data = ''; $exif = $image->getMetaData(); if (false !== $exif) { foreach ($exif as $field => $value) { if (!(empty($value) || $_zp_exifvars[$field][6] == 'time' && ($value = '0000-00-00 00:00:00'))) { $display = $_zp_exifvars[$field][3]; if ($display) { $label = $_zp_exifvars[$field][2]; $data .= "<tr><td class=\"medtadata_tag " . html_encode($field) . "\">{$label}: </td> <td>" . html_encode(exifTranslate($value)) . "</td></tr>\n"; } } } } if (empty($data)) { echo gettext('None selected for display'); } else { ?> <div class="metadata_container"> <table class="metadata_table" > <?php echo $data; ?> </table> </div>