diff --git a/Classes/Package.php b/Classes/Package.php index 96be49c..5c5a038 100644 --- a/Classes/Package.php +++ b/Classes/Package.php @@ -16,6 +16,7 @@ use Flowpack\Neos\AssetUsage\Service\AssetIntegrationService; use Neos\ContentRepository\Domain\Model\Node; use Neos\ContentRepository\Domain\Model\Workspace; +use Neos\Neos\Service\PublishingService; use Neos\Flow\Core\Bootstrap; use Neos\Flow\Package\Package as BasePackage; use Neos\Media\Domain\Service\AssetService; @@ -31,7 +32,7 @@ public function boot(Bootstrap $bootstrap): void $dispatcher->connect(Node::class, 'nodePropertyChanged', AssetIntegrationService::class, 'nodePropertyChanged'); $dispatcher->connect(Node::class, 'nodeRemoved', AssetIntegrationService::class, 'nodeRemoved'); $dispatcher->connect(Node::class, 'nodeAdded', AssetIntegrationService::class, 'nodeAdded'); - $dispatcher->connect(Node::class, 'nodeDiscarded', AssetIntegrationService::class, 'nodeDiscarded'); + $dispatcher->connect(PublishingService::class, 'nodeDiscarded', AssetIntegrationService::class, 'nodeDiscarded'); $dispatcher->connect(Workspace::class, 'beforeNodePublishing', AssetIntegrationService::class, 'beforeNodePublishing'); $dispatcher->connect(Workspace::class, 'afterNodePublishing', AssetIntegrationService::class, 'afterNodePublishing'); diff --git a/Classes/Service/AssetIntegrationService.php b/Classes/Service/AssetIntegrationService.php index 2d90434..691db69 100644 --- a/Classes/Service/AssetIntegrationService.php +++ b/Classes/Service/AssetIntegrationService.php @@ -205,13 +205,6 @@ public function beforeNodePublishing(NodeInterface $node, Workspace $targetWorks $targetNode = $contentContext->getNodeByIdentifier($node->getIdentifier()); foreach ($this->getAssetPropertyNamesForNodeType($node->getNodeType()) as $propertyName) { - if (!$node->hasProperty($propertyName)) { - return; - } - $propertyValue = $node->getProperty($propertyName); - if (!$propertyValue) { - return; - } // Unregister the asset stored in the target node, the assets will be registered again after publishing if ($targetNode && $targetNode->hasProperty($propertyName)) { $targetPropertyValue = $targetNode->getProperty($propertyName); @@ -219,6 +212,14 @@ public function beforeNodePublishing(NodeInterface $node, Workspace $targetWorks $this->unregisterUsageInNode($targetNode, $targetPropertyValue, false); } } + + if (!$node->hasProperty($propertyName)) { + return; + } + $propertyValue = $node->getProperty($propertyName); + if (empty($propertyValue)) { + return; + } $this->unregisterUsageInNode($node, $propertyValue, false); } }