vendor/blackbit/data-director/EventListener/AssetHashListener.php line 25

Open in your IDE?
  1. <?php
  2. namespace Blackbit\DataDirectorBundle\EventListener;
  3. use Blackbit\DataDirectorBundle\lib\Pim\Helper;
  4. use Blackbit\DataDirectorBundle\lib\Pim\AssetNormalizer\NormalizeAction;
  5. use Blackbit\DataDirectorBundle\lib\Pim\AssetNormalizer\NormalizeActionHistogram;
  6. use Blackbit\DataDirectorBundle\lib\Pim\AssetNormalizer\NormalizeActionSquaredSize;
  7. use Blackbit\DataDirectorBundle\lib\Pim\AssetNormalizer\Normalizer;
  8. use Blackbit\DataDirectorBundle\lib\Pim\Item\Importer;
  9. use Blackbit\DataDirectorBundle\model\Dataport;
  10. use Blackbit\DataDirectorBundle\model\Fieldmapping;
  11. use Blackbit\DataDirectorBundle\model\PimcoreDbRepository;
  12. use Blackbit\DataDirectorBundle\Tools\Installer;
  13. use InvalidArgumentException;
  14. use Pimcore\Cache;
  15. use Pimcore\Event\Model\AssetEvent;
  16. use Pimcore\Event\Model\ElementEventInterface;
  17. use Pimcore\Model\Asset\Folder;
  18. use Pimcore\Model\Asset\Image;
  19. use Pimcore\Model\Property;
  20. class AssetHashListener
  21. {
  22.     public function updateHash(AssetEvent $e)
  23.     {
  24.         if (\method_exists($e'getArgument')) {
  25.             try {
  26.                 $saveVersionOnly $e->getArgument('saveVersionOnly');
  27.                 if ($saveVersionOnly) {
  28.                     return;
  29.                 }
  30.             } catch (\InvalidArgumentException $exception) {
  31.             }
  32.         }
  33.         $asset $e->getAsset();
  34.         if($asset instanceof Folder) {
  35.             return;
  36.         }
  37.         $parentPath $asset->getParent()->getFullPath(); // when asset gets moved realpath is not correct yet but only parent gets set
  38.         $fieldMappings = new Fieldmapping();
  39.         $calculateHash false;
  40.         $dataports = new Dataport();
  41.         foreach($fieldMappings->find(['format LIKE ?' => '%"preventDuplicates";b:1%']) as $fieldMapping) {
  42.             $dataport $dataports->get($fieldMapping['dataportId']);
  43.             $targetConfig $dataport['targetconfig'];
  44.             if(strpos($asset->getRealPath(), $targetConfig['assetFolder']) === || strpos($parentPath$targetConfig['assetFolder']) === 0) {
  45.                 $calculateHash true;
  46.                 break;
  47.             }
  48.         }
  49.         if(!$calculateHash) {
  50.             return;
  51.         }
  52.         try {
  53.             $asset->setProperty(Normalizer::HASH_PROPERTY'text'Normalizer::getHash($asset));
  54.         } catch (\Exception $e) {
  55.             return;
  56.         }
  57.     }
  58. }