src/EventListener/AssetMetadataListener.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Pimcore\AssetMetadataClassDefinitionsBundle\Model\Collections;
  4. use Pimcore\Event\Model\AssetEvent;
  5. use Pimcore\Event\Model\ElementEventInterface;
  6. use Pimcore\Model\Asset;
  7. /**
  8.  * Class AssetMetadataListener
  9.  * @package App\EventListener
  10.  */
  11. class AssetMetadataListener
  12. {
  13.     /**
  14.      * @param ElementEventInterface $event
  15.      * @throws \Exception
  16.      */
  17.     public function onPostUpdate(ElementEventInterface $event)
  18.     {
  19.         if (!$event instanceof AssetEvent) {
  20.             return;
  21.         }
  22.         $asset $event->getAsset();
  23.         $this->addMetadataCollection($asset->getId());
  24.         $this->populateDataToCollection($asset);
  25.     }
  26.     /**
  27.      * @param $assetId
  28.      */
  29.     protected function addMetadataCollection($assetId)
  30.     {
  31.         $col = new Collections();
  32.         $col->setAssetId($assetId);
  33.         $col->setCollections(['CarImages''License']);
  34.         $col->applyToAsset();
  35.     }
  36.     /**
  37.      * @param Asset $asset
  38.      * @throws \Exception
  39.      */
  40.     protected function populateDataToCollection(Asset $asset)
  41.     {
  42.         $asset->addMetadata('License.name''input''OP v1.0.1');
  43.         $asset->addMetadata('License.type''select''Open Source');
  44.         $asset->update();
  45.     }
  46. }