19declare(strict_types=1);
48 $this->prg_event_handler = $prg_event_handler;
51 public function raise(
string $event, array $parameter):
void
53 $parameter_formatter =
static function ($value) use (&$parameter_formatter) {
54 if (is_object($value)) {
55 return get_class($value);
58 if (is_array($value)) {
68 $this->
logger->debug(
"PRG raised: " . $event .
' (' . var_export(array_map(
73 if (in_array($event, [
74 self::EVENT_USER_ASSIGNED,
75 self::EVENT_USER_DEASSIGNED,
76 self::EVENT_USER_SUCCESSFUL,
77 self::EVENT_USER_NOT_SUCCESSFUL,
78 self::EVENT_VALIDITY_CHANGE
80 $this->prg_event_handler->updateLPStatus($parameter[
'prg_id'], $parameter[
'usr_id']);
83 if (in_array($event, [
84 self::EVENT_USER_SUCCESSFUL,
85 self::EVENT_USER_NOT_SUCCESSFUL,
86 self::EVENT_VALIDITY_CHANGE,
87 self::EVENT_SCORE_CHANGE
89 && $parameter[
"root_prg_id"] === $parameter[
"prg_id"]
91 $cert = fn () => $this->app_event_handler->raise(self::COMPONENT, self::EVENT_USER_SUCCESSFUL, $parameter);
92 $this->prg_event_handler->triggerCertificateOnce($cert, $parameter[
"root_prg_id"], $parameter[
"usr_id"]);
95 if ($event === self::EVENT_USER_ABOUT_TO_FAIL) {
96 $this->prg_event_handler->sendRiskyToFailMail($parameter[
'ass_id'], $parameter[
'root_prg_id']);
98 if ($event === self::EVENT_USER_TO_RESTART) {
99 $this->prg_event_handler->sendInformToReAssignMail($parameter[
'ass_id'], $parameter[
'root_prg_id']);
101 if ($event === self::EVENT_USER_REASSIGNED) {
102 $this->prg_event_handler->sendReAssignedMail($parameter[
'ass_id'], $parameter[
'root_prg_id']);
104 if ($event === self::EVENT_VALIDITY_CHANGE) {
105 $this->prg_event_handler->resetMailFlagValidity($parameter[
'ass_id'], $parameter[
'root_prg_id']);
107 if ($event === self::EVENT_DEADLINE_CHANGE) {
108 $this->prg_event_handler->resetMailFlagDeadline($parameter[
'ass_id'], $parameter[
'root_prg_id']);
111 if (in_array($event, self::PUBLIC_EVENTS)) {
112 $this->app_event_handler->raise(self::COMPONENT, $event, $parameter);
121 "root_prg_id" => $assignment->
getRootId(),
124 "ass_id" => $assignment->
getId()
134 "root_prg_id" => $a_assignment->
getRootId(),
137 "ass_id" => $a_assignment->
getId()
147 "ass_id" => $assignment->
getId(),
158 "root_prg_id" => $assignment->
getRootId(),
159 "prg_id" => $pgs_node_id,
161 "ass_id" => $assignment->
getId()
171 "ass_id" => (
int) $assignment->
getId(),
182 "ass_id" => (
int) $assignment->
getId(),
191 "ass_id" => $assignment->
getId(),
192 "root_prg_id" => $assignment->
getRootId(),
193 "prg_id" => $pgs_node_id,
201 "ass_id" => $assignment->
getId(),
202 "root_prg_id" => $assignment->
getRootId(),
203 "prg_id" => $pgs_node_id,
211 "ass_id" => $assignment->
getId(),
212 "root_prg_id" => $assignment->
getRootId(),
213 "prg_id" => $pgs_node_id,
221 "ass_id" => $assignment->
getId(),
222 "root_prg_id" => $assignment->
getRootId(),
223 "prg_id" => $pgs_node_id,
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Component logger with individual log levels by component id.
Assignments are relations of users to a PRG; They hold progress-information for (sub-)nodes of the PR...
informUserByMailToRestart(ilPRGAssignment $assignment)
userAssigned(ilPRGAssignment $assignment)
userReAssigned(ilPRGAssignment $assignment)
scoreChange(ilPRGAssignment $assignment, int $pgs_node_id)
validityChange(ilPRGAssignment $assignment, int $pgs_node_id)
userRiskyToFail(ilPRGAssignment $assignment)
__construct(ilLogger $logger, ilAppEventHandler $app_event_handler, PRGEventHandler $prg_event_handler)
userSuccessful(ilPRGAssignment $assignment, int $pgs_node_id)
deadlineChange(ilPRGAssignment $assignment, int $pgs_node_id)
ilAppEventHandler $app_event_handler
userRevertSuccessful(ilPRGAssignment $assignment, int $pgs_node_id)
userDeassigned(ilPRGAssignment $a_assignment)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const EVENT_USER_NOT_SUCCESSFUL
const EVENT_USER_ABOUT_TO_FAIL
const EVENT_USER_DEASSIGNED
const EVENT_USER_ASSIGNED
const EVENT_VALIDITY_CHANGE
const EVENT_DEADLINE_CHANGE
const EVENT_USER_SUCCESSFUL
const EVENT_USER_TO_RESTART
const EVENT_USER_REASSIGNED