Merge branch '2.0'
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / system / moderation / queue / IModerationQueueManager.class.php
1 <?php
2 namespace wcf\system\moderation\queue;
3 use wcf\data\moderation\queue\ModerationQueue;
4
5 /**
6 * Default interface for moderation queue managers.
7 *
8 * @author Alexander Ebert
9 * @copyright 2001-2014 WoltLab GmbH
10 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
11 * @package com.woltlab.wcf
12 * @subpackage system.moderation.queue
13 * @category Community Framework
14 */
15 interface IModerationQueueManager {
16 /**
17 * Creates queue assignments for matching object type ids.
18 *
19 * @param integer $objectTypeID
20 * @param array<\wcf\data\moderation\queue\ModerationQueue> $queues
21 */
22 public function assignQueues($objectTypeID, array $queues);
23
24 /**
25 * Returns true if given object type is valid, optionally checking object id.
26 *
27 * @param string $objectType
28 * @param integer $objectID
29 * @return boolean
30 */
31 public function isValid($objectType, $objectID = null);
32
33 /**
34 * Returns link for viewing/editing objects for this moderation type.
35 *
36 * @param integer $queueID
37 * @return string
38 */
39 public function getLink($queueID);
40
41 /**
42 * Returns object type id for given object type.
43 *
44 * @param string $objectType
45 * @return integer
46 */
47 public function getObjectTypeID($objectType);
48
49 /**
50 * Returns object type processor by object type.
51 *
52 * @param string $objectType
53 * @param integer $objectTypeID
54 * @return object
55 */
56 public function getProcessor($objectType, $objectTypeID = null);
57
58 /**
59 * Populates object properties for viewing.
60 *
61 * @param integer $objectTypeID
62 * @param array<\wcf\data\moderation\queue\ViewableModerationQueue> $objects
63 */
64 public function populate($objectTypeID, array $objects);
65
66 /**
67 * Returns whether the afftected content may be removed.
68 *
69 * @param \wcf\data\moderation\queue\ModerationQueue $queue
70 * @return boolean
71 */
72 public function canRemoveContent(ModerationQueue $queue);
73
74 /**
75 * Removes affected content. It is up to the processing object to use a
76 * soft-delete or remove the content permanently.
77 *
78 * @param \wcf\data\moderation\queue\ModerationQueue $queue
79 * @param string $message
80 */
81 public function removeContent(ModerationQueue $queue, $message = '');
82 }