Skip to content

Commit

Permalink
MDL-77443 tool_monitor: Simplify placeholder replacement
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewnicols committed Aug 25, 2023
1 parent 42f5b8f commit eb0b366
Showing 1 changed file with 26 additions and 20 deletions.
46 changes: 26 additions & 20 deletions admin/tool/monitor/classes/notification_task.php
Expand Up @@ -110,27 +110,33 @@ protected function generate_message($subscriptionid, \stdClass $eventobj) {
* @return mixed final template string.
*/
protected function replace_placeholders($template, subscription $subscription, $eventobj, $context) {
$template = str_replace('{link}', $eventobj->link, $template);
if ($eventobj->contextlevel >= CONTEXT_COURSE && !empty($eventobj->courseid) &&
(strpos($template, '{module') !== false || strpos($template, '{course') !== false)) {
$modinfo = get_fast_modinfo($eventobj->courseid);
$course = $modinfo->get_course();
$template = str_replace('{coursefullname}', $course->fullname, $template);
$template = str_replace('{courseshortname}', $course->shortname, $template);
if ($eventobj->contextlevel == CONTEXT_MODULE && !empty($eventobj->contextinstanceid) &&
strpos($template, '{module') !== false) {
$cm = $modinfo->get_cm($eventobj->contextinstanceid);
$modulelink = $cm->url;
$modulename = $cm->get_name();
$template = str_replace('{modulelink}', $modulelink, $template);
$template = str_replace('{modulename}', $modulename, $template);
}
}
$replacements = [
'{link}' => $eventobj->link,
'{rulename}' => $subscription->get_name($context),
'{description}' => $subscription->get_description($context),
'{eventname}' => $subscription->get_event_name(),
];

$template = str_replace('{rulename}', $subscription->get_name($context), $template);
$template = str_replace('{description}', $subscription->get_description($context), $template);
$template = str_replace('{eventname}', $subscription->get_event_name(), $template);
if ($eventobj->contextlevel >= CONTEXT_COURSE && !empty($eventobj->courseid)) {
$iscoursetemplate = str_contains($template, '{course');
$ismodtemplate = str_contains($template, '{module');
if ($iscoursetemplate || $ismodtemplate) {
$modinfo = get_fast_modinfo($eventobj->courseid);
$course = $modinfo->get_course();
$replacements['{coursefullname}'] = $course->fullname;
$replacements['{courseshortname}'] = $course->shortname;

return $template;
if ($eventobj->contextlevel == CONTEXT_MODULE && !empty($eventobj->contextinstanceid) && $ismodtemplate) {
$cm = $modinfo->get_cm($eventobj->contextinstanceid);
$replacements['{modulelink}'] = $cm->url;
$replacements['{modulename}'] = $cm->get_name();
}
}
}
return str_replace(
search: array_keys($replacements),
replace: array_values($replacements),
subject: $template,
);
}
}

0 comments on commit eb0b366

Please sign in to comment.