From: Matthias Schmidt Date: Tue, 23 Oct 2018 17:16:19 +0000 (+0200) Subject: Add `VoidExtendedModificationLogHandler` X-Git-Tag: 5.2.0_Alpha_1~594^2~3 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=373003fb27091ce138e4bb178912ab8aae2ea2fb;p=GitHub%2FWoltLab%2FWCF.git Add `VoidExtendedModificationLogHandler` … for modification log handlers not supporting showing modification logs in the global ACP log list. See #2597 --- diff --git a/wcfsetup/install/files/lib/acp/page/ModificationLogListPage.class.php b/wcfsetup/install/files/lib/acp/page/ModificationLogListPage.class.php index ae099cab17..e33acfc0d6 100644 --- a/wcfsetup/install/files/lib/acp/page/ModificationLogListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/ModificationLogListPage.class.php @@ -152,11 +152,6 @@ class ModificationLogListPage extends SortablePage { protected function initObjectTypes() { foreach (ObjectTypeCache::getInstance()->getObjectTypes('com.woltlab.wcf.modifiableContent') as $objectType) { - /** @noinspection PhpUndefinedFieldInspection */ - if ($objectType->excludeFromLogList) { - continue; - } - $this->objectTypes[$objectType->objectTypeID] = $objectType; /** @var IExtendedModificationLogHandler $processor */ @@ -164,7 +159,7 @@ class ModificationLogListPage extends SortablePage { if ($processor === null) { $this->unsupportedObjectTypes[] = $objectType; } - else { + else if ($processor->includeInLogList()) { $this->availableObjectTypeIDs[] = $objectType->objectTypeID; if (!isset($this->packages[$objectType->packageID])) { $this->actions[$objectType->packageID] = []; diff --git a/wcfsetup/install/files/lib/system/log/modification/AbstractExtendedModificationLogHandler.class.php b/wcfsetup/install/files/lib/system/log/modification/AbstractExtendedModificationLogHandler.class.php index 3badadbb98..ac0eb63061 100644 --- a/wcfsetup/install/files/lib/system/log/modification/AbstractExtendedModificationLogHandler.class.php +++ b/wcfsetup/install/files/lib/system/log/modification/AbstractExtendedModificationLogHandler.class.php @@ -12,4 +12,10 @@ namespace wcf\system\log\modification; * @since 3.2 */ abstract class AbstractExtendedModificationLogHandler extends AbstractModificationLogHandler implements IExtendedModificationLogHandler { + /** + * @inheritDoc + */ + public function includeInLogList() { + return true; + } } diff --git a/wcfsetup/install/files/lib/system/log/modification/IExtendedModificationLogHandler.class.php b/wcfsetup/install/files/lib/system/log/modification/IExtendedModificationLogHandler.class.php index eebbefcadb..af7a2ba434 100644 --- a/wcfsetup/install/files/lib/system/log/modification/IExtendedModificationLogHandler.class.php +++ b/wcfsetup/install/files/lib/system/log/modification/IExtendedModificationLogHandler.class.php @@ -21,12 +21,20 @@ interface IExtendedModificationLogHandler { */ public function getAvailableActions(); + /** + * Returns `true` if logs handled by this handler may be included in the + * global ACP log list and returns `false` otherwise. + * + * @return bool + */ + public function includeInLogList(); + /** * Processes a list of items by converting them into IViewableModificationLog * instances and pre-loading their data. * - * @param ModificationLog[] $items - * @return IViewableModificationLog[] + * @param ModificationLog[] $items + * @return IViewableModificationLog[] */ public function processItems(array $items); } diff --git a/wcfsetup/install/files/lib/system/log/modification/VoidExtendedModificationLogHandler.class.php b/wcfsetup/install/files/lib/system/log/modification/VoidExtendedModificationLogHandler.class.php new file mode 100644 index 0000000000..407b787512 --- /dev/null +++ b/wcfsetup/install/files/lib/system/log/modification/VoidExtendedModificationLogHandler.class.php @@ -0,0 +1,35 @@ + + * @package WoltLabSuite\Core\System\Log\Modification + * @since 3.2 + */ +class VoidExtendedModificationLogHandler extends AbstractExtendedModificationLogHandler { + /** + * @inheritDoc + */ + public function getAvailableActions() { + return []; + } + + /** + * @inheritDoc + */ + public function includeInLogList() { + return false; + } + + /** + * @inheritDoc + */ + public function processItems(array $items) { + throw new \BadMethodCallException("Cannot process items."); + } +}