diff --git a/src/EventListener/PimcoreElementListener.php b/src/EventListener/PimcoreElementListener.php index ac7ac89..f6e9b76 100644 --- a/src/EventListener/PimcoreElementListener.php +++ b/src/EventListener/PimcoreElementListener.php @@ -99,6 +99,7 @@ public function onObjectPostUpdate(DataObjectEvent $event): void /** @var DataObject\Concrete $object */ $object = $event->getObject(); + // @deprecated since 5.0: published/unpublished must be handled by project-specific resource validation $dispatchType = ContextDefinitionInterface::CONTEXT_DISPATCH_TYPE_UPDATE; if (method_exists($object, 'isPublished') && $object->isPublished() === false) { $dispatchType = ContextDefinitionInterface::CONTEXT_DISPATCH_TYPE_DELETE; @@ -199,6 +200,7 @@ protected function checkInheritanceIndex(ElementInterface $element): void foreach ($list->getObjects() as $childObject) { $dispatchType = ContextDefinitionInterface::CONTEXT_DISPATCH_TYPE_UPDATE; + // @deprecated since 5.0: published/unpublished must be handled by project-specific resource validation if (method_exists($childObject, 'isPublished') && $childObject->isPublished() === false) { $dispatchType = ContextDefinitionInterface::CONTEXT_DISPATCH_TYPE_DELETE; } diff --git a/src/Queue/DataCollector.php b/src/Queue/DataCollector.php index c44e277..2038a5d 100644 --- a/src/Queue/DataCollector.php +++ b/src/Queue/DataCollector.php @@ -96,8 +96,8 @@ public function addToContextQueue(string $contextName, string $dispatchType, mix protected function generateJob(string $contextName, string $dispatchType, mixed $resource, array $options): void { - - if($resource instanceof ElementInterface) { + // @todo: introduce generic "resource info" dto with resource information + if ($resource instanceof ElementInterface) { $resourceType = sprintf('%s-%s', Element\Service::getElementType($resource), $resource->getId()); $resource = null; } elseif (is_object($resource)) { diff --git a/src/Queue/MessageHandler/QueuedResourcesHandler.php b/src/Queue/MessageHandler/QueuedResourcesHandler.php index e066dcf..80b7672 100644 --- a/src/Queue/MessageHandler/QueuedResourcesHandler.php +++ b/src/Queue/MessageHandler/QueuedResourcesHandler.php @@ -46,13 +46,14 @@ private function process(array $jobs): void try { $resource = $message->resource; + // @todo: use introduced "resource info" dto to determinate resource / type if (str_contains($message->resourceType, '-')) { [$type, $id] = explode('-', $message->resourceType); if (is_numeric($id)) { $id = (int) $id; } $resource = Element\Service::getElementById($type, $id); - if (null === $resource && $message->dispatchType === ContextDefinitionInterface::CONTEXT_DISPATCH_TYPE_DELETE) { + if ($resource === null && $message->dispatchType === ContextDefinitionInterface::CONTEXT_DISPATCH_TYPE_DELETE) { // at this time, the resource is already deleted by pimcore // since we do not serialize the resource into the message, // we need to create a dummy resource to retrieve a valid resource meta for deletion