/**
  * @param ObjectEvent $event
  */
 public function onPostSerialize(ObjectEvent $event)
 {
     // getSubscribedEvents doesn't seem to support parent classes
     if (!$event->getObject() instanceof MediaInterface) {
         return;
     }
     $provider = $this->pool->getProvider($event->getObject()->getProvider());
     if ($provider->getName() == 'image') {
         $reference = $provider->getThumb($event->getObject());
         $groups = $event->getContext()->attributes->get('groups');
         if (!$groups instanceof None && in_array('detail', $groups->get())) {
             $filters = array_keys($this->filterConfig->all());
         } else {
             $filters = ['medialibrary'];
         }
         $variants = [];
         foreach ($filters as $filter) {
             if ($event->getObject()->getContentType() == 'image/svg+xml') {
                 $variants[$filter] = $provider->getUrl($event->getObject());
             } else {
                 $variants[$filter] = $this->cacheManager->getBrowserPath($reference, $filter);
             }
         }
         $event->getVisitor()->addData('images', $variants);
     }
     $event->getVisitor()->addData('original', $provider->getUrl($event->getObject()));
 }
Example #2
0
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilderInterface $builder, array $options = array())
 {
     $filters = array();
     foreach (array_keys($this->filterConfiguration->all()) as $filter) {
         $filters[$filter] = sprintf('sylius.form.imagine_block.filter.%s', $filter);
     }
     $builder->add('publishable', null, array('label' => 'sylius.form.imagine_block.publishable'))->add('publishStartDate', 'datetime', array('label' => 'sylius.form.imagine_block.publish_start_date', 'empty_value' => array('year' => '-', 'month' => '-', 'day' => '-'), 'time_widget' => 'text'))->add('publishEndDate', 'datetime', array('label' => 'sylius.form.imagine_block.publish_end_date', 'empty_value' => array('year' => '-', 'month' => '-', 'day' => '-'), 'time_widget' => 'text'))->add('parentDocument', null, array('label' => 'sylius.form.imagine_block.parent'))->add('name', 'text', array('label' => 'sylius.form.imagine_block.internal_name'))->add('label', 'text', array('label' => 'sylius.form.imagine_block.label', 'required' => false))->add('linkUrl', 'text', array('label' => 'sylius.form.imagine_block.link_url', 'required' => false))->add('filter', 'choice', array('choices' => $filters, 'label' => 'sylius.form.imagine_block.filter', 'required' => false))->add('image', 'cmf_media_image', array('label' => 'sylius.form.imagine_block.image', 'attr' => array('class' => 'imagine-thumbnail'), 'required' => false));
 }
Example #3
0
    /**
     * @param string|string[]|null $paths
     * @param string|string[]|null $filters
     *
     * @return void
     */
    public function remove($paths = null, $filters = null)
    {
        if (null === $filters) {
            $filters = array_keys($this->filterConfig->all());
        }
        if (!is_array($filters)) {
            $filters = array($filters);
        }
        if (!is_array($paths)) {
            $paths = array($paths);
        }

        $paths = array_filter($paths);
        $filters = array_filter($filters);

        $mapping = new \SplObjectStorage();
        foreach ($filters as $filter) {
            $resolver = $this->getResolver($filter);

            $list = isset($mapping[$resolver]) ? $mapping[$resolver] : array();

            $list[] = $filter;

            $mapping[$resolver] = $list;
        }

        foreach ($mapping as $resolver) {
            $resolver->remove($paths, $mapping[$resolver]);
        }
    }
 /**
  * @param string[] $paths The paths where the original files are expected to be.
  * @param string[] $filters The imagine filters in effect.
  *
  * @return void
  */
 public function remove(array $paths, array $filters)
 {
     // TODO: $paths may be empty, meaning that all generated images corresponding to $filters need to be removed.
     if (empty($filters)) {
         $filters = array_keys($this->filterConfiguration->all());
     }
     foreach ($paths as $path) {
         foreach ($filters as $filter) {
             $filteredImagePath = $this->getFilePath($path, $filter);
             if (!$this->ioService->exists($filteredImagePath)) {
                 continue;
             }
             $binaryFile = $this->ioService->loadBinaryFile($filteredImagePath);
             $this->ioService->deleteBinaryFile($binaryFile);
         }
     }
 }
 public function testReturnAllFilters()
 {
     $filterConfiguration = new FilterConfiguration();
     $filterConfiguration->set('foo', array('fooConfig'));
     $filterConfiguration->set('bar', array('barConfig'));
     $filters = $filterConfiguration->all();
     $this->assertInternalType('array', $filters);
     $this->assertArrayHasKey('foo', $filters);
     $this->assertEquals(array('fooConfig'), $filters['foo']);
     $this->assertArrayHasKey('bar', $filters);
     $this->assertEquals(array('barConfig'), $filters['bar']);
 }
 /**
  * @param string[] $paths The paths where the original files are expected to be.
  * @param string[] $filters The imagine filters in effect.
  */
 public function remove(array $paths, array $filters)
 {
     if (empty($filters)) {
         $filters = array_keys($this->filterConfiguration->all());
     }
     if (empty($paths)) {
         $this->variationPurger->purge($filters);
     }
     foreach ($paths as $path) {
         foreach ($filters as $filter) {
             $filteredImagePath = $this->getFilePath($path, $filter);
             if (!$this->ioService->exists($filteredImagePath)) {
                 continue;
             }
             $binaryFile = $this->ioService->loadBinaryFile($filteredImagePath);
             $this->ioService->deleteBinaryFile($binaryFile);
         }
     }
 }
 public function all()
 {
     return $this->configResolver->getParameter('image_variations') + parent::all();
 }