<?php
namespace App\EventSubscriber;
use App\Model\DataObject\PropertyActionPlanItem;
use Pimcore\Event\DataObjectEvents;
use Pimcore\Event\Model\DataObjectEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class PAPISubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
DataObjectEvents::POST_ADD => ['postAddUpdate', 10],
DataObjectEvents::POST_UPDATE => ['postAddUpdate', 10],
];
}
public function postAddUpdate(DataObjectEvent $event): void
{
$object = $event->getObject();
if (!$object instanceof PropertyActionPlanItem) {
return;
}
/** @var $object PropertyActionPlanItem */
if (str_contains($object->getPath(), 'Properties') && !$object->getPAPI_OriginalId()) {
$object->setPAPI_OriginalId((string)$object->getId());
try {
$object->save();
} catch (\Exception $e) {
//
}
}
}
}