Skip to content

Commit

Permalink
* Readme images
Browse files Browse the repository at this point in the history
* Added a callback parameter for javascript init call
(ComurContentAdminBundle compatibility)
* Fixed gallery SF4 bug
* Readme updated
  • Loading branch information
comur committed May 29, 2019
1 parent 55e8fa9 commit a77434d
Show file tree
Hide file tree
Showing 13 changed files with 190 additions and 188 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/Tests/*
!Tests/.gitkeep
.DS_Store
.idea
._.DS_Store
.unison*
.idea
84 changes: 5 additions & 79 deletions Form/Type/CroppableGalleryType.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,6 @@ class CroppableGalleryType extends CroppableImageType
protected $isGallery = true;
protected $galleryThumbSize = null;

// public function getParent()
// {
// return 'collection';
// }

public function getBlockPrefix()
{
return 'comur_gallery';
Expand All @@ -36,27 +31,15 @@ public function getBlockPrefix()
public function buildForm(FormBuilderInterface $builder, array $options)
{

// if($options['uploadConfig']['saveOriginal']){
// $form->getParent()->add($options['uploadConfig']['saveOriginal'], 'hidden');
// }
// var_dump($builder->getDataMapper());exit;
// if($options['uploadConfig']['saveOriginal']){
// $builder->add($options['uploadConfig']['saveOriginal'], 'text', array(
// // 'inherit_data' => true,
// // 'property_path' => $options['uploadConfig']['saveOriginal'],
// 'attr' => array('style' => 'opacity: 0;width: 0; max-width: 0; height: 0; max-height: 0;')));
// }

$builder->add($builder->getName(), CollectionType::class, array(
// 'property_path' => $builder->getName(),
// 'inherit_data' => true,
'allow_add' => function(Options $options, $value){ return true; },
'allow_delete' => function(Options $options, $value){ return true; },
'allow_add' => true,
'allow_delete' => true,
'entry_options' => array(
'attr' => array('style' => 'opacity: 0;width: 0; max-width: 0; height: 0; max-height: 0;padding: 0; position: absolute;'
)
)
));
'attr' => array('style' => 'opacity: 0;width: 0; max-width: 0; height: 0; max-height: 0;padding: 0; position: absolute;')
)
));
}

public function __construct($galleryDir, $thumbsDir, $galleryThumbSize)
Expand All @@ -66,70 +49,13 @@ public function __construct($galleryDir, $thumbsDir, $galleryThumbSize)
$this->galleryThumbSize = $galleryThumbSize;
}

/**
* {@inheritDoc}
*/
public function configureOptions(OptionsResolver $resolver)
{


parent::configureOptions($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);
// }
// ));

}

/**
* {@inheritdoc}
*/
public function buildView(FormView $view, FormInterface $form, array $options)
{
$uploadConfig = $options['uploadConfig'];
$cropConfig = $options['cropConfig'];
// $options['type'] = 'text';

// var_dump($options);exit;

$uploadConfig['isGallery'] = true;

Expand Down
114 changes: 67 additions & 47 deletions Form/Type/CroppableImageType.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,28 @@ class CroppableImageType extends AbstractType
protected $galleryDir = null;
protected $thumbsDir = null;

static $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, //save original file name
'generateFilename' => true //generate an uniq filename
);

static $cropConfig = array(
// 'disableCrop' => false,
'minWidth' => 1,
'minHeight' => 1,
'aspectRatio' => true,
'cropRoute' => 'comur_api_crop',
'forceResize' => false,
'thumbs' => null
);

// public function getParent()
// {
// return 'text';
Expand All @@ -40,7 +62,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
// $form->getParent()->add($options['uploadConfig']['saveOriginal'], 'hidden');
// }
// var_dump($builder->getDataMapper());exit;
if($options['uploadConfig']['saveOriginal']){
if ($options['uploadConfig']['saveOriginal']) {
$builder->add($options['uploadConfig']['saveOriginal'], TextType::class, array(
// 'inherit_data' => true,
// 'property_path' => $options['uploadConfig']['saveOriginal'],
Expand All @@ -52,33 +74,51 @@ public function buildForm(FormBuilderInterface $builder, array $options)
'attr' => array('style' => 'opacity: 0;width: 0; max-width: 0; height: 0; max-height: 0;')));
}

/**
* Returns upload config normalizer. It can be used by compatible bundles to normalize parameters
* @param $uploadConfig
* @param $isGallery
* @param $galleryDir
* @return \Closure
*/
public static function getUploadConfigNormalizer($uploadConfig, $isGallery = false, $galleryDir = null) {
return 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;
};
}

/**
* Returns crop config normalizer. It can be used by compatible bundles to normalize parameters
* @param $cropConfig
* @return \Closure
*/
public static function getCropConfigNormalizer($cropConfig) {
return function (Options $options, $value) use ($cropConfig) {
return array_merge($cropConfig, $value);
};
}

/**
* {@inheritDoc}
*/
public function configureOptions(OptionsResolver $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, //save original file name
'generateFilename' => true //generate an uniq filename
);

$cropConfig = array(
// 'disableCrop' => false,
'minWidth' => 1,
'minHeight' => 1,
'aspectRatio' => true,
'cropRoute' => 'comur_api_crop',
'forceResize' => true,
'thumbs' => null
);
$uploadConfig = self::$uploadConfig;
$cropConfig = self::$cropConfig;

$resolver->setDefaults(array(
'uploadConfig' => $uploadConfig,
Expand All @@ -95,28 +135,10 @@ public function configureOptions(OptionsResolver $resolver)
$galleryDir = $this->galleryDir;

$resolver->setNormalizer(
'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;
}
'uploadConfig', self::getUploadConfigNormalizer($uploadConfig, $isGallery, $galleryDir)
);
$resolver->setNormalizer(
'cropConfig', function(Options $options, $value) use($cropConfig){
return array_merge($cropConfig, $value);
}
'cropConfig', self::getCropConfigNormalizer($cropConfig)
);

}
Expand All @@ -140,11 +162,9 @@ public function buildView(FormView $view, FormInterface $form, array $options)
$cropConfig = $options['cropConfig'];

$fieldImage = null;
if(isset($cropConfig['thumbs']) && count($thumbs = $cropConfig['thumbs']) > 0)
{
if (isset($cropConfig['thumbs']) && count($thumbs = $cropConfig['thumbs']) > 0) {
foreach ($thumbs as $thumb) {
if(isset($thumb['useAsFieldImage']) && $thumb['useAsFieldImage'])
{
if (isset($thumb['useAsFieldImage']) && $thumb['useAsFieldImage']) {
$fieldImage = $thumb;
}
}
Expand Down
Loading

0 comments on commit a77434d

Please sign in to comment.