src/EventSubscriber/PAPISubscriber.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Model\DataObject\PropertyActionPlanItem;
  4. use Pimcore\Event\DataObjectEvents;
  5. use Pimcore\Event\Model\DataObjectEvent;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class PAPISubscriber implements EventSubscriberInterface
  8. {
  9.     public static function getSubscribedEvents(): array
  10.     {
  11.         return [
  12.             DataObjectEvents::POST_ADD => ['postAddUpdate'10],
  13.             DataObjectEvents::POST_UPDATE => ['postAddUpdate'10],
  14.         ];
  15.     }
  16.     public function postAddUpdate(DataObjectEvent $event): void
  17.     {
  18.         $object $event->getObject();
  19.         if (!$object instanceof PropertyActionPlanItem) {
  20.             return;
  21.         }
  22.         /** @var $object PropertyActionPlanItem */
  23.         if (str_contains($object->getPath(), 'Properties') && !$object->getPAPI_OriginalId()) {
  24.             $object->setPAPI_OriginalId((string)$object->getId());
  25.             try {
  26.                 $object->save();
  27.             } catch (\Exception $e) {
  28.                 //
  29.             }
  30.         }
  31.     }
  32. }