<definitionname>com.woltlab.wcf.comment.commentableContent</definitionname>
<classname>wcf\system\comment\manager\ModerationQueueCommentManager</classname>
</type>
+ <type>
+ <name>com.woltlab.wcf.moderation.queue</name>
+ <definitionname>com.woltlab.wcf.notification.objectType</definitionname>
+ <classname>wcf\system\user\notification\object\type\ModerationQueueUserNotificationObjectType</classname>
+ <category>com.woltlab.wcf.moderation</category>
+ </type>
<type>
<name>com.woltlab.wcf.moderation.queue.notification</name>
<definitionname>com.woltlab.wcf.notification.objectType</definitionname>
<options>module_like</options>
<preset>1</preset>
</event>
+ <event>
+ <name>report</name>
+ <objecttype>com.woltlab.wcf.moderation.queue</objecttype>
+ <classname>wcf\system\user\notification\event\ReportModerationQueueUserNotificationEvent</classname>
+ <permissions>mod.general.canUseModeration</permissions>
+ <preset>1</preset>
+ </event>
<event>
<name>comment</name>
<objecttype>com.woltlab.wcf.moderation.queue.notification</objecttype>
--- /dev/null
+<?php
+
+namespace wcf\system\user\notification\event;
+
+use wcf\system\request\LinkHandler;
+use wcf\system\user\notification\object\ModerationQueueUserNotificationObject;
+
+/**
+ * Notification event for new reports in the moderation queue.
+ *
+ * @author Olaf Braun
+ * @copyright 2001-2024 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.1
+ *
+ * @method ModerationQueueUserNotificationObject getUserNotificationObject()
+ */
+final class ReportModerationQueueUserNotificationEvent extends AbstractUserNotificationEvent
+{
+ /**
+ * @inheritDoc
+ */
+ protected $stackable = true;
+
+ /**
+ * @inheritDoc
+ */
+ public function getTitle(): string
+ {
+ // TODO
+ return "";
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function getMessage()
+ {
+ // TODO
+ return "";
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function getEmailMessage($notificationType = 'instant')
+ {
+ // TODO
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function getLink(): string
+ {
+ return LinkHandler::getInstance()->getLink('ModerationReport', [
+ 'id' => $this->getUserNotificationObject()->queueID,
+ ]);
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function getEventHash()
+ {
+ return \sha1($this->eventID . '-' . $this->getUserNotificationObject()->queueID);
+ }
+}
--- /dev/null
+<?php
+
+namespace wcf\system\user\notification\object;
+
+use wcf\data\DatabaseObjectDecorator;
+use wcf\data\moderation\queue\ModerationQueue;
+
+/**
+ * Notification object for moderation queue.
+ *
+ * @author Olaf Braun
+ * @copyright 2001-2024 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.1
+ *
+ * @method ModerationQueue getDecoratedObject()
+ * @mixin ModerationQueue
+ */
+final class ModerationQueueUserNotificationObject extends DatabaseObjectDecorator implements IUserNotificationObject
+{
+ /**
+ * @inheritDoc
+ */
+ protected static $baseClass = ModerationQueue::class;
+
+ /**
+ * @inheritDoc
+ */
+ public function getTitle(): string
+ {
+ return '';
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function getURL()
+ {
+ return '';
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public function getAuthorID()
+ {
+ return $this->userID;
+ }
+}
--- /dev/null
+<?php
+
+namespace wcf\system\user\notification\object\type;
+
+use wcf\data\moderation\queue\ModerationQueue;
+use wcf\data\moderation\queue\ModerationQueueList;
+use wcf\system\user\notification\object\ModerationQueueUserNotificationObject;
+
+/**
+ * User notification object type implementation for moderation queue.
+ *
+ * @author Olaf Braun
+ * @copyright 2001-2024 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.1
+ */
+final class ModerationQueueUserNotificationObjectType extends AbstractUserNotificationObjectType
+{
+ /**
+ * @inheritDoc
+ */
+ protected static $decoratorClassName = ModerationQueueUserNotificationObject::class;
+
+ /**
+ * @inheritDoc
+ */
+ protected static $objectClassName = ModerationQueue::class;
+
+ /**
+ * @inheritDoc
+ */
+ protected static $objectListClassName = ModerationQueueList::class;
+}
<item name="wcf.user.notification.com.woltlab.wcf.administration"><![CDATA[Administration]]></item>
<item name="wcf.user.notification.com.woltlab.wcf.user.registration.notification.registration"><![CDATA[Neue Registrierung durch Benutzer]]></item>
<item name="wcf.user.notification.com.woltlab.wcf.moderation"><![CDATA[Moderation]]></item>
+ <item name="wcf.user.notification.com.woltlab.wcf.moderation.queue.report"><![CDATA[Neue Meldung]]></item>
<item name="wcf.user.notification.com.woltlab.wcf.moderation.queue.notification.comment"><![CDATA[Neuer Kommentar in der Moderation]]></item>
<item name="wcf.user.notification.com.woltlab.wcf.moderation.queue.response.notification.commentResponse"><![CDATA[Neue Antwort auf einen Kommentar in der Moderation]]></item>
<item name="wcf.user.notification.com.woltlab.wcf.page"><![CDATA[Seiten]]></item>
<item name="wcf.user.notification.com.woltlab.wcf.administration"><![CDATA[Administration]]></item>
<item name="wcf.user.notification.com.woltlab.wcf.user.registration.notification.registration"><![CDATA[Notify me of new user registrations]]></item>
<item name="wcf.user.notification.com.woltlab.wcf.moderation"><![CDATA[Moderation]]></item>
+ <item name="wcf.user.notification.com.woltlab.wcf.moderation.queue.report"><![CDATA[New report]]></item>
<item name="wcf.user.notification.com.woltlab.wcf.moderation.queue.notification.comment"><![CDATA[Notify me when new comments are written in moderation]]></item>
<item name="wcf.user.notification.com.woltlab.wcf.moderation.queue.response.notification.commentResponse"><![CDATA[Notify me when new replies to comments are written in moderation]]></item>
<item name="wcf.user.notification.com.woltlab.wcf.page"><![CDATA[Pages]]></item>