コード例 #1
0
ファイル: MediaFile.php プロジェクト: rakeshraushan/dase
 function getDerivatives()
 {
     $m = new Dase_DBO_MediaFile($this->db);
     $m->p_collection_ascii_id = $this->p_collection_ascii_id;
     $m->p_serial_number = $this->p_serial_number;
     $m->orderBy('width');
     $m->addWhere('size', $this->size, '!=');
     return $m->find();
 }
コード例 #2
0
ファイル: Search.php プロジェクト: rakeshraushan/dase
 public function getSearchMd5($r)
 {
     $file = new Dase_DBO_MediaFile($this->db);
     $file->md5 = $r->get('q');
     $res = "files matching {$file->md5}\n";
     foreach ($file->find() as $mf) {
         $item = new Dase_DBO_Item($this->db);
         $item->load($mf->item_id);
         $res .= $item->getUrl($r->app_root) . "\n";
     }
     $r->renderResponse($res);
 }
コード例 #3
0
ファイル: File.php プロジェクト: rakeshraushan/dase
 /** will be invoked by subclass */
 function makeViewitem($item, $path_to_media)
 {
     $size = $this->size;
     $collection = $item->getCollection();
     $target = $path_to_media . '/' . $collection->ascii_id . '/viewitem/' . $size . '.jpg';
     if (!file_exists($target)) {
         copy($this->base_path . '/www/images/thumb_icons/' . $size . '.jpg', $target);
     }
     $media_file = new Dase_DBO_MediaFile($this->db);
     $media_file->item_id = $item->id;
     $media_file->filename = $size . '.jpg';
     $media_file->width = 80;
     $media_file->height = 80;
     $media_file->mime_type = 'image/jpeg';
     $media_file->size = 'viewitem';
     $media_file->file_size = filesize($target);
     $media_file->p_collection_ascii_id = $collection->ascii_id;
     $media_file->p_serial_number = $item->serial_number;
     $media_file->insert();
     Dase_Log::info(LOG_FILE, "created {$media_file->size} {$media_file->filename}");
 }
コード例 #4
0
ファイル: Image.php プロジェクト: pkeane/humptydumpty
 function makeSizes($item, $path_to_media, $rotate)
 {
     $collection = $item->getCollection();
     $image_properties = array('small' => array('geometry' => '640x480', 'max_height' => '480', 'size_tag' => '_640'), 'medium' => array('geometry' => '800x600', 'max_height' => '600', 'size_tag' => '_800'), 'large' => array('geometry' => '1024x768', 'max_height' => '768', 'size_tag' => '_1024'), 'full' => array('geometry' => '3600x2700', 'max_height' => '2700', 'size_tag' => '_3600'));
     $last_width = '';
     $last_height = '';
     $subdir = Dase_Util::getSubdir($item->serial_number);
     foreach ($image_properties as $size => $size_info) {
         $newimage = $path_to_media . '/' . $collection->ascii_id . '/' . $size . '/' . $subdir . '/' . $item->serial_number . $size_info['size_tag'] . '.jpg';
         $subdir_path = $path_to_media . '/' . $collection->ascii_id . '/' . $size . '/' . $subdir;
         if (!file_exists($subdir_path)) {
             mkdir($subdir_path);
         }
         $command = CONVERT . " \"{$this->filepath}\" -format jpeg -rotate {$rotate} -resize '{$size_info['geometry']} >' -colorspace RGB {$newimage}";
         $exec_output = array();
         $results = exec($command, $exec_output);
         if (!file_exists($newimage)) {
             Dase_Log::debug(LOG_FILE, "failed to write {$size} image");
             Dase_Log::debug(LOG_FILE, "UNSUCCESSFUL: {$command}");
         }
         $file_info = getimagesize($newimage);
         //create the media_file entry
         $media_file = new Dase_DBO_MediaFile($this->db);
         $media_file->item_id = $item->id;
         $media_file->filename = $item->serial_number . $size_info['size_tag'] . ".jpg";
         if ($file_info) {
             $media_file->width = $file_info[0];
             $media_file->height = $file_info[1];
         }
         if ($media_file->width <= $last_width && $media_file->height <= $last_height) {
             return;
         }
         $last_width = $media_file->width;
         $last_height = $media_file->height;
         $media_file->mime_type = 'image/jpeg';
         $media_file->size = $size;
         $media_file->md5 = md5_file($newimage);
         $media_file->updated = date(DATE_ATOM);
         $media_file->file_size = filesize($newimage);
         $media_file->p_collection_ascii_id = $collection->ascii_id;
         $media_file->p_serial_number = $item->serial_number;
         $media_file->insert();
         Dase_Log::info(LOG_FILE, "created {$media_file->size} {$media_file->filename}");
     }
     return;
 }
コード例 #5
0
ファイル: Item.php プロジェクト: rakeshraushan/dase
 function deleteMedia($path_to_media = '')
 {
     $mf = new Dase_DBO_MediaFile($this->db);
     $mf->item_id = $this->id;
     foreach ($mf->find() as $doomed) {
         if ($path_to_media) {
             $doomed->moveFileToDeleted($path_to_media);
         }
         $doomed->delete();
     }
 }
コード例 #6
0
ファイル: Collection.php プロジェクト: rakeshraushan/dase
 public function getItemsByMd5($r)
 {
     $file = new Dase_DBO_MediaFile($this->db);
     $file->md5 = $r->get('md5');
     $file->p_collection_ascii_id = $this->collection->ascii_id;
     if ($file->findOne()) {
         $r->renderResponse($file->p_serial_number . ' is a duplicate');
     } else {
         //$r->renderError(404,'no item with checksum '.$r->get('md5'));
         $r->renderError(404);
     }
 }