/** * Render the image browser widget * * @param string $name * @param mixed $value * @param array $attributes * @param array $errors * @return string Widget HTML */ public function render($name, $value = null, $attributes = array(), $errors = array()) { sfContext::getInstance()->getConfiguration()->loadHelpers(array('Partial')); $object = $this->getOption('object'); $per_page = sfConfig::get('app_sf_image_pool_chooser_per_page', 24); $tag = $object->getTagRestriction(); if ($tag) { $tag = implode(',', $tag); } // Because we use this for image upload $vars = array('pager' => sfImagePoolImageTable::getInstance()->getPager($per_page, 1, $object), 'name' => $name, 'object' => $object, 'per_page' => $per_page, 'images' => $object->getPoolImages(), 'multiple' => (bool) $object->allowSelectMultiple(), 'tag' => $tag); return get_partial('sfImagePoolAdmin/widget', $vars); }
/** * Method for setting images but from ids only. * * @param $object * @param array $image_ids */ public function setImageIds($image_ids = array(), Doctrine_Record $object = null) { $object = is_null($object) ? $this->getInvoker() : $object; if (empty($image_ids)) { return $object->getPoolImages()->clear(); } $images = sfImagePoolImageTable::getInstance()->getByIds($image_ids); $this->setImages($images, $object); }
/** * AJAX powered pagination * * @return void * @author Ben Lancaster * @author Jo Carter <*****@*****.**> **/ public function executeChooser(sfWebRequest $request) { sfConfig::set('sf_web_debug', false); // Is there a potential taggable object to restrict by? $class = $request->hasParameter('class') ? $request->getParameter('class') : null; $class_id = $request->hasParameter('class_id') ? $request->getParameter('class_id') : null; if ($class && $class_id) { $object = Doctrine_Core::getTable($class)->findOneById($class_id); } else { $object = null; } // Or a tag set? Added for MooEditable $tag = $request->hasParameter('tag') ? $request->getParameter('tag') : null; $per_page = sfConfig::get('app_sf_image_pool_chooser_per_page', 24); $pager = sfImagePoolImageTable::getInstance()->getPager($per_page, $request->getParameter('page', 1), $object, $tag); $vars = array('paginationId' => 'pagination', 'kind' => 'image-chooser', 'pager' => $pager, 'object' => $object, 'tag' => $tag, 'multiple' => $request->getParameter('multiple', false) === 'true'); return $this->renderPartial('sfImagePoolAdmin/chooser_pagination', $vars); }
$image->filename = 'test.png'; $image->mime_type = 'image/png'; $image->save(); $t->isa_ok($image, 'sfImagePoolImage', 'Image created'); $thumbnail_options = array('width' => 300, 'height' => 300, 'scale' => false); // Create cache $cache = sfImagePoolCache::getInstance($image, $adapter_options, $thumbnail_options); $t->isa_ok($cache, 'sfImagePoolRackspaceCloudFilesCache', 'Cache class created'); $container = $cache->getContainer(); $t->is($container->name, $adapter_options['options']['container'], 'Container created or already exists'); // copy test file in place copy($_test_dir . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'test.png', $cache->getDestination()); $url = $cache->commit(false); $imageCrop = sfImagePoolCropTable::getInstance()->findCrop($image, $thumbnail_options['width'], $thumbnail_options['height'], !$thumbnail_options['scale'], $cache::CROP_IDENTIFIER); $t->isa_ok($imageCrop, 'sfImagePoolCrop', 'Crop created'); $objectName = $cache->getCloudName(); $object = $container->get_object($objectName); $t->isa_ok($object, 'CF_Object', 'Image created on Rackspace cloud'); $image->delete(); $image = sfImagePoolImageTable::getInstance()->findOneByFilename('test.png'); $t->is($image, false, 'Image deleted from database'); try { $object2 = $container->get_object($objectName); $t->fail('Object not deleted from cloud'); } catch (NoSuchObjectException $e) { $t->pass('Object deleted from cloud'); } } else { $t->fail('Please ensure you have set up your Rackspace cache options - use the rackspace:initialise task to accomplish this or see the README'); $t->skip('Skipping tests', 6); }