src/AppBundle/EventListener/ObjectUpdateListener.php line 63

Open in your IDE?
  1. <?php
  2. namespace AppBundle\EventListener;
  3. use Acl\Koe\ImportBundle\Service\AssetService;
  4. use Carbon\Carbon;
  5. use Pimcore\Event\Model\ElementEventInterface;
  6. use Pimcore\Event\Model\DataObjectEvent;
  7. use Pimcore\Event\Model\AssetEvent;
  8. use Pimcore\Event\Model\DocumentEvent;
  9. use Pimcore\Model\DataObject\Artikelonline;
  10. use Pimcore\Model\Asset;
  11. class ObjectUpdateListener {
  12.     private $originalFileName;
  13.     /**
  14.      * @param ElementEventInterface $e
  15.      * @return void
  16.      * @throws \Exception
  17.      */
  18.     public function onPreAssetAdd (ElementEventInterface $e) {
  19.         if (empty($_REQUEST)) {
  20.             // Do not update on CLI request
  21.             return;
  22.         }
  23.         if($e instanceof AssetEvent) {
  24.             $image $e->getElement();
  25.             $currentFilename $image->getFilename();
  26.             $parentId $image->getParentId();
  27.             $bucketFolder Asset::getByPath(AssetService::PIMCORE_DEFAULT_ASSET_DIR);
  28.             $bucketId $bucketFolder->getId();
  29.             //upload dir is default_bucket move to /shop/ so the oxid shop can reach it
  30.             if ($bucketId == $parentId) {
  31.                 $newFilename $this->originalFileName ?: $currentFilename;
  32.                 $oldAsset Asset::getByPath(AssetService::UPLOAD_DIR $newFilename);
  33.                 if ($oldAsset) {
  34.                     $oldAsset->delete();
  35.                 }
  36.                 AssetService::renameAsset($image$newFilenameAssetService::UPLOAD_DIRAssetService::UPLOAD_DIR $newFilenametrue);
  37.             } else {
  38.                 if($this->originalFileName !== $currentFilename) {
  39.                     $newFilename $this->originalFileName ?: $currentFilename;
  40.                     $oldAsset Asset::getByPath(AssetService::UPLOAD_DIR $newFilename);
  41.                     if ($oldAsset) {
  42.                         $oldAsset->delete();
  43.                     }
  44.                     $image->setFilename($newFilename);
  45.                 }
  46.             }
  47.         }
  48.         $this->originalFileName null;
  49.     }
  50.     /**
  51.      * @param $element
  52.      * @return void
  53.      */
  54.     public function onResolveAsset ($element) {
  55.         if (empty($_REQUEST)) {
  56.             // Do not update on CLI request
  57.             return;
  58.         }
  59.         $this->originalFileName $element->getFilename();
  60.     }
  61.     /**
  62.      * @param ElementEventInterface $e
  63.      * @return void
  64.      */
  65.     public function onPreUpdate (ElementEventInterface $e) {
  66.         ///// 44466 is id of "inaktiv" folder /////
  67.        if (empty($_REQUEST)) {
  68.            // Do not update on CLI request
  69.            return;
  70.        }
  71.         if($e instanceof AssetEvent) {
  72.             // do something with the asset
  73.         } else if ($e instanceof DocumentEvent) {
  74.             // do something with the document
  75.         } else if ($e instanceof DataObjectEvent) {
  76.             $object $e->getObject();
  77.             /* if ($object->getParentId() == 44466) {
  78.                 $object->setAktiv(false);
  79.             }*/
  80.             if ($object instanceof Artikelonline) {
  81.                 if(!$object->getAttribute()->getAllgemein()) {
  82.                     $systemBrick = new \Pimcore\Model\DataObject\Objectbrick\Data\Allgemein($object);
  83.                 } else {
  84.                     $systemBrick $object->getAttribute()->getAllgemein();
  85.                 }
  86.                 if ($object->getProdukttext() == "" || $object->getProdukttext() == null){
  87.                     $systemBrick->setEmptyProdukttext(true);
  88.                 } else {
  89.                     $systemBrick->setEmptyProdukttext(false);
  90.                 }
  91.                 $systemBrick $this->setFotoNokSeitToBrick($object$systemBrick);
  92.                 $systemBrick $this->setArticleOkSeitToBrick$object$systemBrick );
  93.                 $systemBrick $this->setModelarticleToBrick$object$systemBrick );
  94.                 $systemBrick $this->setImage1or11setToBrick$object$systemBrick );
  95.                 $systemBrick $this->setActiveDateToBrick$object$systemBrick );
  96.                 $object->getAttribute()->setAllgemein($systemBrick);
  97.             }
  98.         }
  99.     }
  100.     /**
  101.      * @param ElementEventInterface $e
  102.      * @return void
  103.      */
  104.     public function onPreAdd(ElementEventInterface $e){
  105.         if ($e instanceof AssetEvent) {
  106.             // do something with the asset
  107.         } else if ($e instanceof DocumentEvent) {
  108.             // do something with the document
  109.         } else if ($e instanceof DataObjectEvent) {
  110.             $object $e->getObject();
  111.             if ($object instanceof Artikelonline) {
  112.                 if (!$object->getAttribute()->getAllgemein()) {
  113.                     $allgemeinBrick = new \Pimcore\Model\DataObject\Objectbrick\Data\Allgemein($object);
  114.                 } else {
  115.                     $allgemeinBrick $object->getAttribute()->getAllgemein();
  116.                 }
  117.                 $allgemeinBrick->setFotograf(false);
  118.                 $object->getAttribute()->setAllgemein($allgemeinBrick);
  119.             }
  120.         }
  121.     }
  122.     /**
  123.      * @param $article
  124.      * @param $allgemeinBrick
  125.      * @return mixed
  126.      */
  127.     public function setArticleOkSeitToBrick($article$allgemeinBrick)
  128.     {
  129.         if ($article->getArtikelok()) {
  130.             if (!$allgemeinBrick->getArtikelOkSeit()) {
  131.                 $allgemeinBrick->setArtikelOkSeit(Carbon::now());
  132.             }
  133.         } else {
  134.             $allgemeinBrick->setArtikelOkSeit(null);
  135.         }
  136.         return $allgemeinBrick;
  137.     }
  138.     /**
  139.      * @param $article
  140.      * @param $allgemeinBrick
  141.      * @return mixed
  142.      */
  143.     public function setFotoNokSeitToBrick($article$allgemeinBrick)
  144.     {
  145.         if ($article->getFotoNOK()) {
  146.             if (!$allgemeinBrick->getFotoNokSeit()) {
  147.                 $allgemeinBrick->setFotoNokSeit(Carbon::now());
  148.             }
  149.         } else {
  150.             $allgemeinBrick->setFotoNokSeit(null);
  151.         }
  152.         return $allgemeinBrick;
  153.     }
  154.     /**
  155.      * @param $article
  156.      * @param $allgemeinBrick
  157.      * @return mixed
  158.      */
  159.     public function setModelarticleToBrick($article$allgemeinBrick)
  160.     {
  161.         if ($article->getBild2() || $article->getBild12()) {
  162.             $allgemeinBrick->setModelarticle(true);
  163.         } else {
  164.             $allgemeinBrick->setModelarticle(false);
  165.         }
  166.         return $allgemeinBrick;
  167.     }
  168.     /**
  169.      * @param $article
  170.      * @param $allgemeinBrick
  171.      * @return mixed
  172.      */
  173.     public function setImage1or11setToBrick($article$allgemeinBrick)
  174.     {
  175.         if ($article->getBild1() || $article->getBild11()) {
  176.             $allgemeinBrick->setImage1or11set(true);
  177.         } else {
  178.             $allgemeinBrick->setImage1or11set(false);
  179.         }
  180.         return $allgemeinBrick;
  181.     }
  182.     /**
  183.      * @param $article
  184.      * @param $allgemeinBrick
  185.      * @return mixed
  186.      */
  187.     public function setActiveDateToBrick($article$allgemeinBrick)
  188.     {
  189.         if ($article->getAktiv()) {
  190.             if (!$allgemeinBrick->getAktivDate()) {
  191.                 $allgemeinBrick->setAktivDate(Carbon::now());
  192.             }
  193.         } else {
  194.             $allgemeinBrick->setAktivDate(null);
  195.         }
  196.         return $allgemeinBrick;
  197.     }
  198. }