Comur\ImageBundle\Form\Type\CroppableImageType::setDefaultOptions PHP Метод

setDefaultOptions() публичный Метод

{@inheritDoc}
public setDefaultOptions ( Symfony\Component\OptionsResolver\OptionsResolverInterface $resolver )
$resolver Symfony\Component\OptionsResolver\OptionsResolverInterface
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $uploadConfig = array('uploadRoute' => 'comur_api_upload', 'uploadUrl' => null, 'webDir' => null, 'fileExt' => '*.jpg;*.gif;*.png;*.jpeg', 'libraryDir' => null, 'libraryRoute' => 'comur_api_image_library', 'showLibrary' => true, 'saveOriginal' => false, 'generateFilename' => true);
        $cropConfig = array('minWidth' => 1, 'minHeight' => 1, 'aspectRatio' => true, 'cropRoute' => 'comur_api_crop', 'forceResize' => true, 'thumbs' => null);
        $resolver->setDefaults(array('uploadConfig' => $uploadConfig, 'cropConfig' => $cropConfig, 'inherit_data' => true));
        $isGallery = $this->isGallery;
        $galleryDir = $this->galleryDir;
        $resolver->setNormalizers(array('uploadConfig' => function (Options $options, $value) use($uploadConfig, $isGallery, $galleryDir) {
            $config = array_merge($uploadConfig, $value);
            if ($isGallery) {
                $config['uploadUrl'] = $config['uploadUrl'] . '/' . $galleryDir;
                $config['webDir'] = $config['webDir'] . '/' . $galleryDir;
                $config['saveOriginal'] = false;
            }
            if (!isset($config['libraryDir'])) {
                $config['libraryDir'] = $config['uploadUrl'];
            }
            // if($config['saveOriginal']){
            //     $options['compound']=true;
            // }
            return $config;
        }, 'cropConfig' => function (Options $options, $value) use($cropConfig) {
            return array_merge($cropConfig, $value);
        }));
    }

Usage Example

 /**
  * {@inheritDoc}
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     parent::setDefaultOptions($resolver);
     $galleryDir = $this->galleryDir;
     // $resolver->setNormalizers(array(
     // ));
     //     $uploadConfig = array(
     //         'uploadRoute' => 'comur_api_upload',
     //         'uploadUrl' => null,
     //         'webDir' => null,
     //         'fileExt' => '*.jpg;*.gif;*.png;*.jpeg',
     //         'libraryDir' => null,
     //         'libraryRoute' => 'comur_api_image_library',
     //         'showLibrary' => true
     //     );
     //     $cropConfig = array(
     //         'minWidth' => 1,
     //         'minHeight' => 1,
     //         'aspectRatio' => true,
     //         'cropRoute' => 'comur_api_crop',
     //         'forceResize' => false,
     //         'thumbs' => null
     //     );
     //     $resolver->setDefaults(array(
     //         'uploadConfig' => $uploadConfig,
     //         'cropConfig' => $cropConfig,
     //     ));
     //     $resolver->setNormalizers(array(
     //         'uploadConfig' => function(Options $options, $value) use ($uploadConfig){
     //             $config = array_merge($uploadConfig, $value);
     //             if(!isset($config['libraryDir'])){
     //                 $config['libraryDir'] = $config['uploadUrl'];
     //             }
     //             return $config;
     //         },
     //         'cropConfig' => function(Options $options, $value) use($cropConfig){
     //             return array_merge($cropConfig, $value);
     //         }
     //     ));
 }