Пример #1
0
 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;
 }
Пример #2
0
/**
 * 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;
}
Пример #3
0
														<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>