From 13ce8cf531b3ec26292b94e6aafb2ad2f8feafea Mon Sep 17 00:00:00 2001 From: joshuaruesweg Date: Wed, 6 Jan 2021 15:28:14 +0100 Subject: [PATCH] Simplify retrieving objectTypes for delete content types --- .../worker/UserContentRemoveWorker.class.php | 39 +++++++++++-------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/wcfsetup/install/files/lib/system/worker/UserContentRemoveWorker.class.php b/wcfsetup/install/files/lib/system/worker/UserContentRemoveWorker.class.php index 1649009ed5..3ce34bf7a6 100644 --- a/wcfsetup/install/files/lib/system/worker/UserContentRemoveWorker.class.php +++ b/wcfsetup/install/files/lib/system/worker/UserContentRemoveWorker.class.php @@ -1,5 +1,6 @@ 0 ]; + /** @var ObjectType[] $contentProviders */ + $contentProviders = []; + // add the required object types for the select content provider if (is_array($this->contentProviders)) { foreach ($this->contentProviders as $contentProvider) { $objectType = ObjectTypeCache::getInstance()->getObjectTypeByName('com.woltlab.wcf.content.userContentProvider', $contentProvider); + $contentProviders[] = $objectType; if ($objectType->requiredobjecttype !== null) { $objectTypeNames = explode(',', $objectType->requiredobjecttype); @@ -129,12 +134,14 @@ class UserContentRemoveWorker extends AbstractWorker { } $this->contentProviders[] = $objectTypeName; + $contentProviders[] = $objectType; } } } } - - $contentProviders = ObjectTypeCache::getInstance()->getObjectTypes('com.woltlab.wcf.content.userContentProvider'); + else { + $contentProviders = ObjectTypeCache::getInstance()->getObjectTypes('com.woltlab.wcf.content.userContentProvider'); + } // sort object types uasort($contentProviders, function ($a, $b) { @@ -145,22 +152,20 @@ class UserContentRemoveWorker extends AbstractWorker { }); foreach ($contentProviders as $contentProvider) { - if ($this->contentProviders === null || (is_array($this->contentProviders) && in_array($contentProvider->objectType, $this->contentProviders))) { - foreach ($this->users as $user) { - /** @var IUserContentProvider $processor */ - $processor = $contentProvider->getProcessor(); - $contentList = $processor->getContentListForUser($user); - $count = $contentList->countObjects(); + foreach ($this->users as $user) { + /** @var IUserContentProvider $processor */ + $processor = $contentProvider->getProcessor(); + $contentList = $processor->getContentListForUser($user); + $count = $contentList->countObjects(); + + if ($count) { + $this->data['provider'][] = [ + 'userID' => $user->userID, + 'objectTypeID' => $contentProvider->objectTypeID, + 'count' => $count + ]; - if ($count) { - $this->data['provider'][] = [ - 'userID' => $user->userID, - 'objectTypeID' => $contentProvider->objectTypeID, - 'count' => $count - ]; - - $this->data['count'] += ceil($count / $this->limit) * $this->limit; - } + $this->data['count'] += ceil($count / $this->limit) * $this->limit; } } } -- 2.20.1