function perch_gallery_images($opts = array(), $return = false) { $default_opts = array('template' => 'e_list_image.html', 'skip-template' => false); $opts = array_merge($default_opts, $opts); if ($opts['skip-template']) { $return = true; } $API = new PerchAPI(1.0, 'perch_gallery'); $Images = new PerchGallery_Images($API); $Versions = new PerchGallery_ImageVersions(); $Versions->preload_all(); $list = $Images->get_custom(false, $opts, $Versions); if (is_array($list)) { if ($opts['skip-template']) { return $list; } $Template = $API->get('Template'); $Template->set('gallery/' . $opts['template'], 'gallery'); $r = $Template->render_group($list, true); if ($return) { return $r; } echo $r; } return false; }
/** * Take the original uploaded file and make all the different versions, based on the given template. * * @param string $filename * @param string $Template * @return void * @author Drew McLellan */ public function process_versions($filename, $Template, $bucket) { $this->delete_versions(); $result = false; $image_file = PerchUtil::file_path($bucket['file_path'] . '/' . $filename); PerchUtil::debug('123: ' . $image_file); if (!file_exists($image_file)) { return false; } $API = new PerchAPI(1.0, 'perch_gallery'); $Image = $API->get('Image'); $Versions = new PerchGallery_ImageVersions(); $tags = $Template->find_all_tags(); $Perch = Perch::fetch(); if (!is_array($tags)) { $tags = array(); } // add defaults we need for admin $tags[] = new PerchXMLTag('<perch:gallery id="image" type="image" />'); // default full size $tags[] = new PerchXMLTag('<perch:gallery id="image" type="image" width="80" height="80" crop="true" key="admin_thumb" />'); // admin thumb $tags[] = new PerchXMLTag('<perch:gallery id="image" type="image" width="180" key="admin_preview" />'); // admin preview if (PerchUtil::count($tags)) { foreach ($tags as $Tag) { if ($Tag->id() == 'image' && $Tag->type() == 'image') { //$bucket = $Perch->get_resource_bucket($Tag->bucket()); $Image->reset_defaults(); if ($Tag->quality()) { $Image->set_quality($Tag->quality()); } if ($Tag->sharpen()) { $Image->set_sharpening($Tag->sharpen()); } if ($Tag->density()) { $Image->set_density($Tag->density()); } if ($Tag->width() || $Tag->height()) { $details = $Image->resize_image($image_file, $Tag->width(), $Tag->height(), $Tag->crop()); } else { $details = array(); $details['file_name'] = $filename; PerchUtil::debug('152: ' . $filename); $info = getimagesize($image_file); if (is_array($info)) { $details['w'] = $info[0]; $details['h'] = $info[1]; } } if ($details) { $data = array(); $data['imageID'] = $this->id(); if (strpos($details['file_name'], DIRECTORY_SEPARATOR) !== false) { $parts = explode(DIRECTORY_SEPARATOR, $details['file_name']); $details['file_name'] = array_pop($parts); } $data['versionPath'] = $details['file_name']; //PerchUtil::debug('167: '. $details['file_name']); if ($Tag->key()) { $data['versionKey'] = $Tag->key(); } else { $data['versionKey'] = $this->_generate_version_key($Tag->width(), $Tag->height()); } if ($Tag->crop()) { $data['versionWidth'] = $Tag->width(); $data['versionHeight'] = $Tag->height(); } else { $data['versionWidth'] = $details['w']; $data['versionHeight'] = $details['h']; } $Version = $Versions->create($data); if (is_object($Version)) { $result = true; } } } } } return $result; }
public function get_recent_for_dashboard($count = 4) { $sql = 'SELECT * FROM ' . $this->table . ' ORDER BY imageID DESC LIMIT ' . $count; $rows = $this->db->get_rows($sql); if (PerchUtil::count($rows)) { $PerchGallery_ImageVersions = new PerchGallery_ImageVersions(); for ($i = 0; $i < count($rows); $i++) { /* loop though versions array */ $Version = $PerchGallery_ImageVersions->get_by_key($rows[$i]['imageID'], 'admin_preview'); $rows[$i]['image_admin_preview'] = $Version; } } return $this->return_instances($rows); }