/**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function executeIndex(sfRequest $request)
 {
     $params = array('filename' => $request->getParameter('filename', null), 'format' => $request->getParameter('format', null), 'width' => str_replace('w', '', $request->getParameter('width', null)), 'height' => str_replace('h', '', $request->getParameter('height', null)));
     $image = new sfImageHandler($params);
     $this->forward404Unless($image->isValidSource(), 'Invalid URL.');
     $binary = $image->createImage();
     header('Content-Type:' . $image->getContentType());
     echo $binary;
     exit;
 }
Exemple #2
0
function sf_image_path($filename, $options = array(), $absolute = false)
{
    if (isset($options['f'])) {
        $f = $options['f'];
    } elseif (isset($options['format'])) {
        $f = $options['format'];
    } elseif (is_callable(array($filename, 'getType'))) {
        $f = str_replace('image/', '', $filename->getType());
    } else {
        $parts = explode('_', $filename);
        $f = array_pop($parts);
    }
    if ($f !== 'jpg' && $f !== 'png' && $f !== 'gif') {
        $f = 'jpg';
    }
    $size = null;
    if (isset($options['size'])) {
        $size = $options['size'];
    }
    if (!isset($options['square']) && (0 === strpos($filename, 'm_') || 0 === strpos($filename, 'c_'))) {
        // member image / community image
        $options['square'] = true;
    }
    $square = isset($options['square']) ? (bool) $options['square'] : false;
    $class = sfImageHandler::getStorageClassName();
    return call_user_func(array($class, 'getUrlToImage'), $filename, $size, $f, $absolute, $square);
}
 public static function getAllowedSize()
 {
     if (self::$allowedSize) {
         return self::$allowedSize;
     }
     self::$allowedSize = array_merge(array('48x48', '76x76', '120x120', '180x180', '240x320', '600x600'), sfConfig::get('sf_image_handler_allowed_size', array()));
     return self::$allowedSize;
 }
Exemple #4
0
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function executeIndex(sfRequest $request)
 {
     $params = array('filename' => $request->getParameter('filename', null), 'format' => $request->getParameter('format', null), 'width' => str_replace('w', '', $request->getParameter('width', null)), 'height' => str_replace('h', '', $request->getParameter('height', null)));
     try {
         $image = new sfImageHandler($params);
     } catch (RuntimeException $e) {
         if (sfImageGenerator::ERROR_NOT_ALLOWED_SIZE !== $e->getCode()) {
             throw $e;
         }
         $this->forward404($e->getMessage());
     }
     $this->forward404Unless($image->isValidSource(), 'Invalid URL.');
     $binary = $image->createImage();
     header('Content-Type:' . $image->getContentType());
     echo $binary;
     exit;
 }
Exemple #5
0
 public function delete(Doctrine_Connection $conn = null)
 {
     if ($this->isImage()) {
         $class = sfImageHandler::getStorageClassName();
         $storage = call_user_func(array($class, 'create'), $this, $class);
         $storage->deleteBinary();
     }
     return parent::delete($conn);
 }
 protected function doClean($value)
 {
     $value = parent::doClean($value);
     if ($this->isEmpty($value)) {
         return $this->getEmptyValue();
     }
     if (!in_array($value, sfImageHandler::getAllowedSize())) {
         throw new sfValidatorError($this, 'Not allowed');
     }
     return $value;
 }
 public function initialize($options)
 {
     $this->allowedSize = sfImageHandler::getAllowedSize();
     $options = array_merge(array('width' => $this->width, 'height' => $this->height), $options);
     $this->setImageSize($options['width'], $options['height']);
     if (isset($options['quality'])) {
         $this->quality = $options['quality'];
     }
     if (isset($options['format'])) {
         $this->format = $options['format'];
     }
 }
Exemple #8
0
 public function delete(Doctrine_Connection $conn = null)
 {
     if (!$this->getFile()->isImage() || $this->getBin()) {
         return parent::delete($conn);
     }
     if (!$this->isFirstDelete) {
         $this->isFirstDelete = true;
         return parent::delete($conn);
     }
     $this->isFirstDelete = false;
     $class = sfImageHandler::getStorageClassName();
     $storage = call_user_func(array($class, 'create'), $this->getFile(), $class);
     return $storage->deleteBinary();
 }
Exemple #9
0
function sf_image_path($filename, $options = array(), $absolute = false)
{
    if (isset($options['f'])) {
        $f = $options['f'];
    } elseif (isset($options['format'])) {
        $f = $options['format'];
    } elseif (is_callable(array($filename, 'getType'))) {
        $f = str_replace('image/', '', $filename->getType());
    } else {
        $parts = explode('_', $filename);
        $f = array_pop($parts);
    }
    if ($f !== 'jpg' && $f !== 'png' && $f !== 'gif') {
        $f = 'jpg';
    }
    $size = null;
    if (isset($options['size'])) {
        $size = $options['size'];
    }
    $class = sfImageHandler::getStorageClassName();
    return call_user_func(array($class, 'getUrlToImage'), $filename, $size, $f, $absolute);
}
 public function deleteBinary()
 {
     sfImageHandler::clearFileCache($this->file->getName());
     return $this->file->getFileBin()->delete();
 }
 public static function generateWidget($field, $choices = array())
 {
     $field = self::arrayKeyCamelize($field);
     $params = self::generateWidgetParams($field, $choices);
     if (in_array($field['FormType'], self::$choicesType)) {
         if ('select' === $field['FormType']) {
             if (!$field['IsRequired']) {
                 $params['choices'] = array('' => sfContext::getInstance()->getI18N()->__('Please Select')) + $params['choices'];
             }
         } else {
             $params['expanded'] = true;
         }
     }
     switch ($field['FormType']) {
         case 'checkbox':
             $params['multiple'] = true;
             $obj = new sfWidgetFormChoice($params);
             break;
         case 'select':
             $obj = new sfWidgetFormChoice($params);
             break;
         case 'radio':
             $obj = new sfWidgetFormChoice($params);
             break;
         case 'textarea':
             $obj = new sfWidgetFormTextarea($params);
             break;
         case 'rich_textarea':
             $obj = new opWidgetFormRichTextarea($params);
             break;
         case 'password':
             $obj = new sfWidgetFormInputPassword($params);
             break;
         case 'date':
             unset($params['choices']);
             $params['culture'] = sfContext::getInstance()->getUser()->getCulture();
             $params['month_format'] = 'number';
             if (!$field['IsRequired']) {
                 $params['can_be_empty'] = true;
             }
             $obj = new opWidgetFormDate($params);
             break;
         case 'increased_input':
             $obj = new opWidgetFormInputIncreased($params);
             break;
         case 'language_select':
             $languages = sfConfig::get('op_supported_languages');
             $choices = opToolkit::getCultureChoices($languages);
             $obj = new sfWidgetFormChoice(array('choices' => $choices));
             break;
         case 'country_select':
             $info = sfCultureInfo::getInstance(sfContext::getInstance()->getUser()->getCulture());
             $obj = new sfWidgetFormChoice(array('choices' => $info->getCountries()));
             break;
         case 'region_select':
             $list = (include sfContext::getInstance()->getConfigCache()->checkConfig('config/regions.yml'));
             $type = $field['ValueType'];
             if ('string' !== $type && isset($list[$type])) {
                 $list = $list[$type];
                 $list = array_combine($list, $list);
             } else {
                 foreach ($list as $k => $v) {
                     if ($v) {
                         $list[$k] = array_combine($v, $v);
                     }
                 }
             }
             $list = opToolkit::arrayMapRecursive(array(sfContext::getInstance()->getI18N(), '__'), $list);
             $obj = new sfWidgetFormChoice(array('choices' => $list));
             break;
         case 'image_size':
             foreach (sfImageHandler::getAllowedSize() as $v) {
                 $params['choices'][$v] = sfContext::getInstance()->getI18N()->__($v);
             }
             $params['choices'] = $params['choices'] + array('' => sfContext::getInstance()->getI18N()->__('Full Size'));
             $obj = new sfWidgetFormChoice($params);
             break;
         default:
             $obj = new sfWidgetFormInput($params);
             break;
     }
     return $obj;
 }