bundles/IndabaSyncroAssetsBundle/EventListener/AssetEventListener.php line 22

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. /*
  4.  * To change this license header, choose License Headers in Project Properties.
  5.  * To change this template file, choose Tools | Templates
  6.  * and open the template in the editor.
  7.  */
  8. namespace IndabaSyncroAssetsBundle\EventListener;
  9. use Pimcore\Event\Model\ElementEventInterface;
  10. use Pimcore\Event\Model\AssetEvent;
  11. use Pimcore\Model\Asset;
  12. use IndabaSyncroAssetsBundle\Model\SyncroAsset;
  13. /**
  14.  * Description of AssetEventListener
  15.  *
  16.  * @author PcCom
  17.  */
  18. class AssetEventListener
  19. {
  20.     public function onPostAssetUpdate(ElementEventInterface $e)
  21.     {
  22.         if ($e instanceof AssetEvent) {
  23.             $asset $e->getAsset();
  24.             if ($asset) {
  25.                 $assetId $asset->getId();
  26.                 $syncroAssetList SyncroAsset::getByAssetId($assetId);
  27.                 if (\is_array($syncroAssetList) && \count($syncroAssetList)) {
  28.                     /** @var SyncroAsset $syncroAsset */
  29.                     foreach ($syncroAssetList as $syncroAsset) {
  30.                         if ($syncroAsset->isFileModified()) {
  31.                             $syncroAsset->setAction(SyncroAsset::ACTION_UPDATE);
  32.                             $syncroAsset->setMustUpdate(true);
  33.                             $syncroAsset->save();
  34.                         }
  35.                     }
  36.                 }
  37.             }
  38.         }
  39.     }
  40. }