bundles/DevelopmentBundle/EventListener/BrandImageListener.php line 17

Open in your IDE?
  1. <?php
  2. namespace DevelopmentBundle\EventListener;
  3. use Pimcore\Event\Model\DataObjectEvent;
  4. use Pimcore\Event\Model\ElementEventInterface;
  5. use Pimcore\Model\Asset;
  6. use Pimcore\Model\DataObject;
  7. use Pimcore\Model\DataObject\Brand;
  8. class BrandImageListener
  9. {
  10.     const IMAGE_DIRECTORY PIMCORE_PROJECT_ROOT '/public/var/assets/Brand/';
  11.     const THUMBNAIL_DIRECTORY PIMCORE_PROJECT_ROOT '/public/var/tmp/thumbnails/';
  12.     public function onPreUpdate(ElementEventInterface $e): void {
  13.         if($e instanceof DataObjectEvent){
  14.             $object $e->getObject();
  15.             if ($object instanceof DataObject\Brand) {
  16.                 $filename "brand-" $object->getBrandID();
  17.                 if ($object->getBrandimg()) {
  18.                     $imgPath $object->getBrandimg()->getFullPath();
  19.                 }
  20.                 $asset Asset::getByPath($imgPath);
  21.                 if ($asset) {
  22.                     $newimaage $asset->getThumbnail("homepage"false)->getPath();
  23.                     $pdpimg $asset->getThumbnail("pdp"false)->getPath();
  24.                     $plpimg $asset->getThumbnail('plp'false)->getPath();
  25.                 }
  26.                 if ($newimaage) {
  27.                     $saveImage Asset::getByPath("/Brand/homepage/" $filename '.png');
  28.                     if ($saveImage) {
  29.                         $saveImage->delete();
  30.                     }
  31.                     $saveImage = new \Pimcore\Model\Asset();
  32.                     $saveImage->setFilename($filename '.png');
  33.                     $saveImage->setData(file_get_contents(self::THUMBNAIL_DIRECTORY $newimaage));
  34.                     $saveImage->setParent(\Pimcore\Model\Asset::getByPath("/Brand/homepage"));
  35.                     $saveImage->save();
  36.                 }
  37.                 if ($pdpimg) {
  38.                     $pdpSave Asset::getByPath("/Brand/pdp/" $filename '.png');
  39.                     if ($pdpSave) {
  40.                         $pdpSave->delete();
  41.                     }
  42.                     $pdpSave = new \Pimcore\Model\Asset();
  43.                     $pdpSave->setFilename($filename '.png');
  44.                     $pdpSave->setData(file_get_contents(self::THUMBNAIL_DIRECTORY $pdpimg));
  45.                     $pdpSave->setParent(\Pimcore\Model\Asset::getByPath("/Brand/pdp"));
  46.                     $pdpSave->save();
  47.                 }
  48.                 if ($plpimg) {
  49.                     $plpSave Asset::getByPath("/Brand/plp/" $filename '.png');
  50.                     if ($plpSave) {
  51.                         $plpSave->delete();
  52.                     }
  53.                     $plpSave = new \Pimcore\Model\Asset();
  54.                     $plpSave->setFilename($filename '.png');
  55.                     $plpSave->setData(file_get_contents(self::THUMBNAIL_DIRECTORY $plpimg));
  56.                     $plpSave->setParent(\Pimcore\Model\Asset::getByPath("/Brand/plp"));
  57.                     $plpSave->save();
  58.                 }
  59.             }
  60.         }
  61.     }
  62. }