ILIAS  trunk Revision v13.0_alpha-52-g21c366bbdd4
NotificationManager.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
24
26{
27 protected int $ref_id;
29 protected \ILIAS\Exercise\Object\ObjectManager $object;
30
31 public function __construct(
33 int $ref_id
34 ) {
35 $this->domain = $domain;
36 $this->object = $domain->object($ref_id);
37 $this->ref_id = $ref_id;
38 }
39
40
41 public function sendUploadNotification(int $ass_id): void
42 {
43 $users = $this->getNotificationRecipients();
44
45 $not = new \ilExerciseMailNotification();
47 $not->setAssignmentId($ass_id);
48 $not->setRefId($this->ref_id);
49 $not->setRecipients($users);
50 $not->send();
51 }
52
53 public function sendFeedbackNotification(
54 int $ass_id,
55 array $user_ids,
56 string $feedback_file = "",
57 bool $is_text_feedback = false
58 ): void {
59 $type = $is_text_feedback
60 ? \ilExerciseMailNotification::TYPE_FEEDBACK_TEXT_ADDED
61 : \ilExerciseMailNotification::TYPE_FEEDBACK_FILE_ADDED;
62
63 $not = new \ilExerciseMailNotification();
64 $not->setType($type);
65 $not->setAssignmentId($ass_id);
66 $not->setRefId($this->ref_id);
67 $not->setRecipients($user_ids);
68 $not->send();
69 }
70
72 int $ass_id,
73 int $rcp_id,
74 string $text
75 ): void {
76 $not = new \ilExerciseMailNotification();
78 $not->setAssignmentId($ass_id);
79 $not->setRefId($this->ref_id);
80 $not->setRecipients([$rcp_id]);
81 $not->setAdditionalText($text);
82 $not->send();
83 }
84
86 int $ass_id,
87 int $peer_id,
88 int $notification_rcp_id,
89 string $text
90 ): void {
91 $not = new \ilExerciseMailNotification();
93 $not->setAssignmentId($ass_id);
94 $not->setRefId($this->ref_id);
95 $not->setPeerId($peer_id);
96 $not->setRecipients([$notification_rcp_id]);
97 $not->setAdditionalText($text);
98 $not->send();
99 }
100
101 public function sendDeadlineRequestNotification(int $ass_id): void
102 {
103 $users = $this->getNotificationRecipients();
104
105 $not = new \ilExerciseMailNotification();
107 $not->setAssignmentId($ass_id);
108 $not->setRefId($this->ref_id);
109 $not->setRecipients($users);
110 $not->send();
111 }
112
113 protected function getNotificationRecipients(): array
114 {
117 $this->object->getId()
118 );
119
120 return array_values(array_filter(
121 $users,
122 fn(int|string $user_id): bool => $this->domain->access()->checkAccessOfUser(
123 (int) $user_id,
124 'write',
125 '',
126 $this->ref_id
127 )
128 ));
129 }
130
131 public function sendDeadlineSetNotification(int $ass_id, int $part_id): void
132 {
133 $not = new \ilExerciseMailNotification();
135 $not->setAssignmentId($ass_id);
136 $not->setRefId($this->ref_id);
137 $not->setRecipients([$part_id]);
138 $not->send();
139 }
140
141}
__construct(InternalDomainService $domain, int $ref_id)
sendMessageFromPeerfeedbackRecipientNotification(int $ass_id, int $peer_id, int $notification_rcp_id, string $text)
ILIAS Exercise Object ObjectManager $object
sendFeedbackNotification(int $ass_id, array $user_ids, string $feedback_file="", bool $is_text_feedback=false)
sendMessageFromPeerfeedbackGiverNotification(int $ass_id, int $rcp_id, string $text)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getNotificationsForObject(int $type, int $id, ?int $page_id=null, bool $ignore_threshold=false)
Get all users/recipients for given object.
$text
Definition: xapiexit.php:21