/**
  * {@inheritDoc}
  */
 public function getConfigTreeBuilder()
 {
     $treeBuilder = new TreeBuilder();
     $rootNode = $treeBuilder->root('silvestra_media');
     $rootNode->children()->scalarNode('db_driver')->cannotBeOverwritten()->isRequired()->end()->scalarNode('image_manager')->defaultValue('silvestra_media.manager.image.default')->cannotBeEmpty()->end()->arrayNode('class')->isRequired()->children()->arrayNode('model')->isRequired()->children()->scalarNode('image')->isRequired()->end()->end()->end()->end()->end()->arrayNode('filesystem')->addDefaultsIfNotSet()->children()->scalarNode('root_dir')->defaultValue('')->end()->end()->end()->arrayNode('image')->addDefaultsIfNotSet()->children()->variableNode('available_mime_types')->defaultValue(Media::getImageMimeTypes())->end()->booleanNode('default_cropper_enabled')->defaultTrue()->end()->scalarNode('default_resize_strategy')->defaultValue('max')->end()->integerNode('max_file_size')->defaultValue(5)->end()->integerNode('max_height')->defaultValue(768)->end()->integerNode('max_width')->defaultValue(1024)->end()->integerNode('min_height')->defaultValue(0)->end()->integerNode('min_width')->defaultValue(0)->end()->scalarNode('no_image')->defaultValue('/bundles/silvestramedia/image/noimage.png')->end()->scalarNode('cropper')->defaultValue('silvestra_media.image.cropper.gd')->end()->scalarNode('resizer')->defaultValue('silvestra_media.image.resizer.gd')->end()->scalarNode('resizer_background_color')->defaultValue('#FFFFFF')->cannotBeEmpty()->end()->integerNode('resizer_background_color_alpha')->defaultValue(100)->end()->end()->end()->arrayNode('token')->addDefaultsIfNotSet()->children()->scalarNode('key')->defaultValue(Media::NAME)->end()->end()->end()->end();
     return $treeBuilder;
 }
 /**
  * {@inheritdoc}
  */
 public function validate($value, ImageDefaultConfig $defaultConfig)
 {
     return in_array($value, Media::getResizeStrategies());
 }
Exemple #3
0
 /**
  * {@inheritdoc}
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     $resolver->setDefaults(array('data_class' => $this->imageClass, 'label' => false, 'mime_types' => $this->defaultConfig->getAvailableMimeTypes(), 'max_file_size' => $this->defaultConfig->getMaxFileSize(), 'max_height' => $this->defaultConfig->getMaxHeight(), 'max_width' => $this->defaultConfig->getMaxWidth(), 'min_height' => $this->defaultConfig->getMinHeight(), 'min_width' => $this->defaultConfig->getMinWidth(), 'resize_strategy' => $this->defaultConfig->getDefaultResizeStrategy(), 'cropper_enabled' => $this->defaultConfig->isDefaultCropperEnabled(), 'cropper_coordinates' => function (Options $options) {
         return array('x1' => 0, 'y1' => 0, 'x2' => $options['max_width'], 'y2' => $options['max_height']);
     }, 'error_bubbling' => false));
     $defaultConfig = $this->defaultConfig;
     $resolver->setAllowedValues(array('mime_types' => function ($mimeTypes) use($defaultConfig) {
         foreach ($mimeTypes as $type) {
             if (!in_array($type, $defaultConfig->getAvailableMimeTypes())) {
                 return false;
             }
         }
         return true;
     }, 'max_file_size' => function ($maxFileSize) use($defaultConfig) {
         return $defaultConfig->getMaxFileSize() >= $maxFileSize;
     }, 'max_height' => function ($maxHeight) use($defaultConfig) {
         return $defaultConfig->getMaxHeight() >= $maxHeight;
     }, 'max_width' => function ($maxWidth) use($defaultConfig) {
         return $defaultConfig->getMaxWidth() >= $maxWidth;
     }, 'min_height' => function ($minHeight) use($defaultConfig) {
         return $defaultConfig->getMinHeight() <= $minHeight;
     }, 'min_width' => function ($minWidth) use($defaultConfig) {
         return $defaultConfig->getMinWidth() <= $minWidth;
     }, 'resize_strategy' => function ($resizeStrategy) {
         return in_array($resizeStrategy, Media::getResizeStrategies());
     }));
 }
 public function testValidateWithNotValidData()
 {
     $defaultConfig = $this->getMockImageDefaultConfig();
     $defaultConfig->expects($this->any())->method('getAvailableMimeTypes')->willReturn(Media::getImageMimeTypes());
     $this->assertFalse($this->validator->validate(array('text/html'), $defaultConfig));
 }