コード例 #1
0
ファイル: FisheyeImage.php プロジェクト: bitweaver/fisheye
 function verifyImageData(&$pParamHash)
 {
     $pParamHash['content_type_guid'] = $this->getContentType();
     if (empty($pParamHash['purge_from_galleries'])) {
         $pParamHash['purge_from_galleries'] = FALSE;
     }
     if (!empty($pParamHash['resize'])) {
         $pParamHash['_files_override'][0]['max_height'] = $pParamHash['_files_override'][0]['max_width'] = $pParamHash['resize'];
     }
     // Make sure we know what to update
     if ($this->isValid()) {
         // these 2 entries will inform LibertyContent and LibertyMime that this is an update
         $pParamHash['content_id'] = $this->mContentId;
         if (!empty($this->mInfo['attachment_id'])) {
             $pParamHash['_files_override'][0]['attachment_id'] = $this->mInfo['attachment_id'];
         }
     }
     if (function_exists('mime_image_get_exif_data') && !empty($pParamHash['_files_override'][0]['tmp_name'])) {
         $exifFile['source_file'] = $pParamHash['_files_override'][0]['tmp_name'];
         $exifFile['type'] = $pParamHash['_files_override'][0]['type'];
         $exifHash = mime_image_get_exif_data($exifFile);
         // Set some default values based on the Exif data
         if (!empty($exifHash['IFD0']['ImageDescription'])) {
             if (empty($pParamHash['title'])) {
                 $exifTitle = trim($exifHash['IFD0']['ImageDescription']);
                 if (!empty($exifTitle)) {
                     $pParamHash['title'] = $exifTitle;
                 }
             } elseif (empty($pParamHash['edit']) && !$this->getField('data') && $pParamHash['title'] != $exifHash['IFD0']['ImageDescription']) {
                 $pParamHash['edit'] = $exifHash['IFD0']['ImageDescription'];
             }
         }
         // These come from Photoshop
         if (!empty($exifHash['headline'])) {
             if (empty($pParamHash['title'])) {
                 $pParamHash['title'] = $exifHash['headline'];
             } elseif (empty($pParamHash['edit']) && !$this->getField('data') && $pParamHash['title'] != $exifHash['headline']) {
                 $pParamHash['edit'] = $exifHash['headline'];
             }
         }
         if (!empty($exifFile['caption'])) {
             if (empty($pParamHash['title'])) {
                 $pParamHash['title'] = $exifFile['caption'];
             } elseif (empty($pParamHash['edit']) && !$this->getField('data') && $pParamHash['title'] != $exifFile['caption']) {
                 $pParamHash['edit'] = $exifFile['caption'];
             }
         }
         if (empty($pParamHash['event_time']) && !$this->getField('event_time') && !empty($exifHash['EXIF']['DateTimeOriginal'])) {
             $pParamHash['event_time'] = strtotime($exifHash['EXIF']['DateTimeOriginal']);
         }
     }
     // let's add a default title if we still don't have one or the user has chosen to use filename over exif data
     if ((empty($pParamHash['title']) || !empty($_REQUEST['use_filenames'])) && !empty($pParamHash['_files_override'][0]['name'])) {
         if (preg_match('/^[A-Z]:\\\\/', $pParamHash['_files_override'][0]['name'])) {
             // MSIE shit file names if passthrough via gigaupload, etc.
             // basename will not work - see http://us3.php.net/manual/en/function.basename.php
             $tmp = preg_split("[\\\\]", $pParamHash['_files_override'][0]['name']);
             $defaultName = $tmp[count($tmp) - 1];
             $pParamHash['_files_override'][0]['name'] = $defaultName;
         } else {
             $defaultName = $pParamHash['_files_override'][0]['name'];
         }
         if (strpos($pParamHash['_files_override'][0]['name'], '.')) {
             list($defaultName, $ext) = explode('.', $pParamHash['_files_override'][0]['name']);
         }
         $pParamHash['title'] = str_replace('_', ' ', $defaultName);
     }
     if (count($this->mErrors) > 0) {
         parent::verify($pParamHash);
     }
     return count($this->mErrors) == 0;
 }