From 8eb102030cfe73b0875a14a4da90216f280099e3 Mon Sep 17 00:00:00 2001 From: KSP Date: Sat, 12 Sep 2020 17:31:58 +0200 Subject: [PATCH 1/2] Adding processElementIds to event Letting the afterProcessFeed event modify the processed element IDs, so existing elements can be shielded from being deleted/disabled --- src/services/Process.php | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/services/Process.php b/src/services/Process.php index 28c40241..2d5a8469 100644 --- a/src/services/Process.php +++ b/src/services/Process.php @@ -486,6 +486,19 @@ public function afterProcessFeed($settings, $feed, $processedElementIds) return; } + + // Fire an 'onProcessFeed' event + $event = new FeedProcessEvent([ + 'feed' => $feed, + 'processedElementIds' => $processedElementIds, + ]); + + $this->trigger(self::EVENT_AFTER_PROCESS_FEED, $event); + + // Allow event to modify variables + $feed = $event->feed; + $processedElementIds = $event->processedElementIds; + $elementsToDeleteDisable = array_diff($settings['existingElements'], $processedElementIds); if ($elementsToDeleteDisable) { @@ -513,13 +526,6 @@ public function afterProcessFeed($settings, $feed, $processedElementIds) $message = 'Processing ' . count($processedElementIds) . ' elements finished in ' . $execution_time . 's'; Plugin::info($message); Plugin::debug($message); - - // Fire an 'onProcessFeed' event - $event = new FeedProcessEvent([ - 'feed' => $feed, - ]); - - $this->trigger(self::EVENT_AFTER_PROCESS_FEED, $event); } /** From bb70ba1f85d10552fdeccf80fe3809aad5c77bf0 Mon Sep 17 00:00:00 2001 From: KSP Date: Sun, 27 Sep 2020 11:45:25 +0200 Subject: [PATCH 2/2] Adding $processElementIds to the FeedProcesssEvent Adding the variable so it can be set by the event --- src/events/FeedProcessEvent.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/events/FeedProcessEvent.php b/src/events/FeedProcessEvent.php index 715068e0..fea5aa3a 100644 --- a/src/events/FeedProcessEvent.php +++ b/src/events/FeedProcessEvent.php @@ -13,4 +13,5 @@ class FeedProcessEvent extends CancelableEvent public $feedData; public $contentData; public $element; + public $processedElementIds; }