From 866d2247d4ab69d69dc6d24ac1b5c527c9e1733b Mon Sep 17 00:00:00 2001 From: Amaia Anabitarte Date: Thu, 23 Jan 2025 16:49:16 +0100 Subject: [PATCH 1/2] MDL-84617 core_calendar: Final removal of deprecated functions The following methods have been removed (they were deprecated long time ago): - prepare_for_view() - calendar_add_event_metadata() The following methods have been deprecated (they are not used anymore): - calendar_get_courselink() - calendar_events_by_day have been Co-author: Amaia Anabitarte --- .upgradenotes/MDL-83873-2025012709463901.yml | 7 + .upgradenotes/MDL-84617-2025022103352926.yml | 7 + calendar/deprecatedlib.php | 155 ++++++++++++++ calendar/lib.php | 200 +------------------ lang/en/calendar.php | 12 +- lang/en/deprecated.txt | 5 + 6 files changed, 184 insertions(+), 202 deletions(-) create mode 100644 .upgradenotes/MDL-83873-2025012709463901.yml create mode 100644 .upgradenotes/MDL-84617-2025022103352926.yml diff --git a/.upgradenotes/MDL-83873-2025012709463901.yml b/.upgradenotes/MDL-83873-2025012709463901.yml new file mode 100644 index 00000000000..791edf2a006 --- /dev/null +++ b/.upgradenotes/MDL-83873-2025012709463901.yml @@ -0,0 +1,7 @@ +issueNumber: MDL-84617 +notes: + core_calendar: + - message: >- + prepare_for_view(), calendar_add_event_metadata() functions have + been removed. + type: removed diff --git a/.upgradenotes/MDL-84617-2025022103352926.yml b/.upgradenotes/MDL-84617-2025022103352926.yml new file mode 100644 index 00000000000..b2add6d5256 --- /dev/null +++ b/.upgradenotes/MDL-84617-2025022103352926.yml @@ -0,0 +1,7 @@ +issueNumber: MDL-84617 +notes: + core_calendar: + - message: >- + calendar_get_courselink(), calendar_events_by_day() functions have + been deprecated. + type: deprecated diff --git a/calendar/deprecatedlib.php b/calendar/deprecatedlib.php index d9bd82f1a88..7c3def9b6a7 100644 --- a/calendar/deprecatedlib.php +++ b/calendar/deprecatedlib.php @@ -140,3 +140,158 @@ function calendar_format_event_time($event, $now, $linkparams = null, $usecommon return $OUTPUT->render($humanperiod); } + +/** + * @deprecated 3.9 + */ +#[\core\attribute\deprecated( + replacement: 'calendar_add_event_metadata no longer used', + since: '3.9', + mdl: 'MDL-58866', + final: true, +)] +function calendar_add_event_metadata() { + \core\deprecation::emit_deprecation_if_present(__FUNCTION__); +} + +/** + * Get a HTML link to a course. + * + * @param int|stdClass $course the course id or course object + * @return string a link to the course (as HTML); empty if the course id is invalid + * + * @deprecated since 5.0 + * @todo MDL-84268 Final deprecation in Moodle 6.0. + */ +#[\core\attribute\deprecated( + replacement: 'calendar_get_courselink no longer used', + since: '5.0', + mdl: 'MDL-84617', +)] +function calendar_get_courselink($course) { + \core\deprecation::emit_deprecation_if_present(__FUNCTION__); + + if (!$course) { + return ''; + } + + if (!is_object($course)) { + $course = calendar_get_course_cached($coursecache, $course); + } + $context = \context_course::instance($course->id); + $fullname = format_string($course->fullname, true, ['context' => $context]); + $url = new \moodle_url('/course/view.php', ['id' => $course->id]); + $link = \html_writer::link($url, $fullname); + + return $link; +} + +/** + * Get per-day basis events + * + * @param array $events list of events + * @param int $month the number of the month + * @param int $year the number of the year + * @param array $eventsbyday event on specific day + * @param array $durationbyday duration of the event in days + * @param array $typesbyday event type (eg: site, course, user, or group) + * @param array $courses list of courses + * @return void + * + * @deprecated since 5.0 + * @todo MDL-84268 Final deprecation in Moodle 6.0. + */ +#[\core\attribute\deprecated( + replacement: 'calendar_events_by_day not used since 3.4', + since: '5.0', + mdl: 'MDL-84617', +)] +function calendar_events_by_day($events, $month, $year, &$eventsbyday, &$durationbyday, &$typesbyday, &$courses) { + \core\deprecation::emit_deprecation_if_present(__FUNCTION__); + + $calendartype = \core_calendar\type_factory::get_calendar_instance(); + + $eventsbyday = []; + $typesbyday = []; + $durationbyday = []; + + if ($events === false) { + return; + } + + foreach ($events as $event) { + $startdate = $calendartype->timestamp_to_date_array($event->timestart); + if ($event->timeduration) { + $enddate = $calendartype->timestamp_to_date_array($event->timestart + $event->timeduration - 1); + } else { + $enddate = $startdate; + } + + // Simple arithmetic: $year * 13 + $month is a distinct integer for each distinct ($year, $month) pair. + if (!($startdate['year'] * 13 + $startdate['mon'] <= $year * 13 + $month) && + ($enddate['year'] * 13 + $enddate['mon'] >= $year * 13 + $month)) { + continue; + } + + $eventdaystart = intval($startdate['mday']); + + if ($startdate['mon'] == $month && $startdate['year'] == $year) { + // Give the event to its day. + $eventsbyday[$eventdaystart][] = $event->id; + + // Mark the day as having such an event. + if ($event->courseid == SITEID && $event->groupid == 0) { + $typesbyday[$eventdaystart]['startsite'] = true; + // Set event class for site event. + $events[$event->id]->class = 'calendar_event_site'; + } else if ($event->courseid != 0 && $event->courseid != SITEID && $event->groupid == 0) { + $typesbyday[$eventdaystart]['startcourse'] = true; + // Set event class for course event. + $events[$event->id]->class = 'calendar_event_course'; + } else if ($event->groupid) { + $typesbyday[$eventdaystart]['startgroup'] = true; + // Set event class for group event. + $events[$event->id]->class = 'calendar_event_group'; + } else if ($event->userid) { + $typesbyday[$eventdaystart]['startuser'] = true; + // Set event class for user event. + $events[$event->id]->class = 'calendar_event_user'; + } + } + + if ($event->timeduration == 0) { + // Proceed with the next. + continue; + } + + // The event starts on $month $year or before. + if ($startdate['mon'] == $month && $startdate['year'] == $year) { + $lowerbound = intval($startdate['mday']); + } else { + $lowerbound = 0; + } + + // Also, it ends on $month $year or later. + if ($enddate['mon'] == $month && $enddate['year'] == $year) { + $upperbound = intval($enddate['mday']); + } else { + $upperbound = calendar_days_in_month($month, $year); + } + + // Mark all days between $lowerbound and $upperbound (inclusive) as duration. + for ($i = $lowerbound + 1; $i <= $upperbound; ++$i) { + $durationbyday[$i][] = $event->id; + if ($event->courseid == SITEID && $event->groupid == 0) { + $typesbyday[$i]['durationsite'] = true; + } else if ($event->courseid != 0 && $event->courseid != SITEID && $event->groupid == 0) { + $typesbyday[$i]['durationcourse'] = true; + } else if ($event->groupid) { + $typesbyday[$i]['durationgroup'] = true; + } else if ($event->userid) { + $typesbyday[$i]['durationuser'] = true; + } + } + + } + return; +} diff --git a/calendar/lib.php b/calendar/lib.php index be6d281544a..cb31a3a9182 100644 --- a/calendar/lib.php +++ b/calendar/lib.php @@ -1180,17 +1180,11 @@ class calendar_information { } /** - * Initialize calendar information - * * @deprecated 3.4 - * @param stdClass $course object - * @param array $coursestoload An array of courses [$course->id => $course] - * @param bool $ignorefilters options to use filter */ - public function prepare_for_view(stdClass $course, array $coursestoload, $ignorefilters = false) { - debugging('The prepare_for_view() function has been deprecated. Please update your code to use set_sources()', - DEBUG_DEVELOPER); - $this->set_sources($course, $coursestoload); + #[\core\attribute\deprecated('prepare_for_view', since: '3.4', mdl: 'MDL-59890', final: true)] + public function prepare_for_view() { + \core\deprecation::emit_deprecation_if_present([self::class, __FUNCTION__]); } /** @@ -1516,28 +1510,6 @@ function calendar_get_starting_weekday() { return $calendartype->get_starting_weekday(); } -/** - * Get a HTML link to a course. - * - * @param int|stdClass $course the course id or course object - * @return string a link to the course (as HTML); empty if the course id is invalid - */ -function calendar_get_courselink($course) { - if (!$course) { - return ''; - } - - if (!is_object($course)) { - $course = calendar_get_course_cached($coursecache, $course); - } - $context = \context_course::instance($course->id); - $fullname = format_string($course->fullname, true, array('context' => $context)); - $url = new \moodle_url('/course/view.php', array('id' => $course->id)); - $link = \html_writer::link($url, $fullname); - - return $link; -} - /** * Get current module cache. * @@ -1585,72 +1557,6 @@ function calendar_get_group_cached($groupid) { return $groupscache[$groupid]; } -/** - * Add calendar event metadata - * - * @deprecated since 3.9 - * - * @param stdClass $event event info - * @return stdClass $event metadata - */ -function calendar_add_event_metadata($event) { - debugging('This function is no longer used', DEBUG_DEVELOPER); - global $CFG, $OUTPUT; - - // Support multilang in event->name. - $event->name = format_string($event->name, true); - - if (!empty($event->modulename)) { // Activity event. - // The module name is set. I will assume that it has to be displayed, and - // also that it is an automatically-generated event. And of course that the - // instace id and modulename are set correctly. - $instances = get_fast_modinfo($event->courseid)->get_instances_of($event->modulename); - if (!array_key_exists($event->instance, $instances)) { - return; - } - $module = $instances[$event->instance]; - - $modulename = $module->get_module_type_name(false); - if (get_string_manager()->string_exists($event->eventtype, $event->modulename)) { - // Will be used as alt text if the event icon. - $eventtype = get_string($event->eventtype, $event->modulename); - } else { - $eventtype = ''; - } - - $event->icon = '' . s($eventtype) .
-            ''; - $event->referer = html_writer::link($module->url, $event->name); - $event->courselink = calendar_get_courselink($module->get_course()); - $event->cmid = $module->id; - } else if ($event->courseid == SITEID) { // Site event. - $event->icon = '' .
-            get_string('siteevent', 'calendar') . ''; - $event->cssclass = 'calendar_event_site'; - } else if ($event->courseid != 0 && $event->courseid != SITEID && $event->groupid == 0) { // Course event. - $event->icon = '' .
-            get_string('courseevent', 'calendar') . ''; - $event->courselink = calendar_get_courselink($event->courseid); - $event->cssclass = 'calendar_event_course'; - } else if ($event->groupid) { // Group event. - if ($group = calendar_get_group_cached($event->groupid)) { - $groupname = format_string($group->name, true, \context_course::instance($group->courseid)); - } else { - $groupname = ''; - } - $event->icon = \html_writer::empty_tag('image', array('src' => $OUTPUT->image_url('i/groupevent'), - 'alt' => get_string('groupevent', 'calendar'), 'title' => $groupname, 'class' => 'icon')); - $event->courselink = calendar_get_courselink($event->courseid) . ', ' . $groupname; - $event->cssclass = 'calendar_event_group'; - } else if ($event->userid) { // User event. - $event->icon = '' .
-            get_string('userevent', 'calendar') . ''; - $event->cssclass = 'calendar_event_user'; - } - - return $event; -} - /** * Get calendar events by id. * @@ -1961,106 +1867,6 @@ function calendar_sub_month($month, $year) { return $calendartype->get_prev_month($year, $month); } -/** - * Get per-day basis events - * - * @param array $events list of events - * @param int $month the number of the month - * @param int $year the number of the year - * @param array $eventsbyday event on specific day - * @param array $durationbyday duration of the event in days - * @param array $typesbyday event type (eg: site, course, user, or group) - * @param array $courses list of courses - * @return void - */ -function calendar_events_by_day($events, $month, $year, &$eventsbyday, &$durationbyday, &$typesbyday, &$courses) { - $calendartype = \core_calendar\type_factory::get_calendar_instance(); - - $eventsbyday = array(); - $typesbyday = array(); - $durationbyday = array(); - - if ($events === false) { - return; - } - - foreach ($events as $event) { - $startdate = $calendartype->timestamp_to_date_array($event->timestart); - if ($event->timeduration) { - $enddate = $calendartype->timestamp_to_date_array($event->timestart + $event->timeduration - 1); - } else { - $enddate = $startdate; - } - - // Simple arithmetic: $year * 13 + $month is a distinct integer for each distinct ($year, $month) pair. - if (!($startdate['year'] * 13 + $startdate['mon'] <= $year * 13 + $month) && - ($enddate['year'] * 13 + $enddate['mon'] >= $year * 13 + $month)) { - continue; - } - - $eventdaystart = intval($startdate['mday']); - - if ($startdate['mon'] == $month && $startdate['year'] == $year) { - // Give the event to its day. - $eventsbyday[$eventdaystart][] = $event->id; - - // Mark the day as having such an event. - if ($event->courseid == SITEID && $event->groupid == 0) { - $typesbyday[$eventdaystart]['startsite'] = true; - // Set event class for site event. - $events[$event->id]->class = 'calendar_event_site'; - } else if ($event->courseid != 0 && $event->courseid != SITEID && $event->groupid == 0) { - $typesbyday[$eventdaystart]['startcourse'] = true; - // Set event class for course event. - $events[$event->id]->class = 'calendar_event_course'; - } else if ($event->groupid) { - $typesbyday[$eventdaystart]['startgroup'] = true; - // Set event class for group event. - $events[$event->id]->class = 'calendar_event_group'; - } else if ($event->userid) { - $typesbyday[$eventdaystart]['startuser'] = true; - // Set event class for user event. - $events[$event->id]->class = 'calendar_event_user'; - } - } - - if ($event->timeduration == 0) { - // Proceed with the next. - continue; - } - - // The event starts on $month $year or before. - if ($startdate['mon'] == $month && $startdate['year'] == $year) { - $lowerbound = intval($startdate['mday']); - } else { - $lowerbound = 0; - } - - // Also, it ends on $month $year or later. - if ($enddate['mon'] == $month && $enddate['year'] == $year) { - $upperbound = intval($enddate['mday']); - } else { - $upperbound = calendar_days_in_month($month, $year); - } - - // Mark all days between $lowerbound and $upperbound (inclusive) as duration. - for ($i = $lowerbound + 1; $i <= $upperbound; ++$i) { - $durationbyday[$i][] = $event->id; - if ($event->courseid == SITEID && $event->groupid == 0) { - $typesbyday[$i]['durationsite'] = true; - } else if ($event->courseid != 0 && $event->courseid != SITEID && $event->groupid == 0) { - $typesbyday[$i]['durationcourse'] = true; - } else if ($event->groupid) { - $typesbyday[$i]['durationgroup'] = true; - } else if ($event->userid) { - $typesbyday[$i]['durationuser'] = true; - } - } - - } - return; -} - /** * Returns the courses to load events for. * diff --git a/lang/en/calendar.php b/lang/en/calendar.php index 694efe548bf..0046dc38e64 100644 --- a/lang/en/calendar.php +++ b/lang/en/calendar.php @@ -34,7 +34,6 @@ $string['calendarpreferences'] = 'Calendar preferences'; $string['calendartypes'] = 'Calendar types'; $string['calendarurlcopiedtoclipboard'] = 'Calendar URL copied to clipboard'; $string['category'] = 'Category'; -$string['categoryevent'] = 'Category event'; $string['clickhide'] = 'click to hide'; $string['clickshow'] = 'click to show'; $string['colcalendar'] = 'Calendar'; @@ -49,7 +48,6 @@ $string['copycalendarurl'] = 'Copy calendar URL'; $string['copyurl'] = 'Copy URL'; $string['course'] = 'Course'; $string['coursecalendarlink'] = 'Course calendar'; -$string['courseevent'] = 'Course event'; $string['courseevents'] = 'Course events'; $string['categoryevents'] = 'Category events'; $string['courses'] = 'Courses'; @@ -156,7 +154,6 @@ $string['generateurlbutton'] = 'Get calendar URL'; $string['gotoactivity'] = 'Go to activity'; $string['gotocalendar'] = 'Go to calendar'; $string['group'] = 'Group'; -$string['groupevent'] = 'Group event'; $string['groupevents'] = 'Group events'; $string['eventtypesite'] = 'site'; $string['eventtypecategory'] = 'category'; @@ -235,7 +232,6 @@ $string['sat'] = 'Sat'; $string['saturday'] = 'Saturday'; $string['shown'] = 'shown'; $string['site'] = 'Site'; -$string['siteevent'] = 'Site event'; $string['siteevents'] = 'Site events'; $string['spanningevents'] = 'Events underway'; $string['subscriptions'] = 'Subscriptions'; @@ -270,7 +266,6 @@ $string['upcomingevents'] = 'Upcoming events'; $string['upcomingeventsfor'] = 'Upcoming events for:'; $string['urlforical'] = 'URL for iCalendar export, for subscribing to calendar'; $string['user'] = 'User'; -$string['userevent'] = 'User event'; $string['userevents'] = 'User events'; $string['viewupcomingactivitiesdue'] = 'View the upcoming activities due'; $string['wed'] = 'Wed'; @@ -290,3 +285,10 @@ $string['coursecalendar'] = '{$a} calendar'; // Deprecated since Moodle 4.5. $string['importcalendarexternal'] = 'Import an external calendar?'; $string['nocalendarsubscriptions'] = 'No calendar subscriptions yet. Do you want to {$a}'; + +// Deprecated since Moodle 5.0. +$string['categoryevent'] = 'Category event'; +$string['courseevent'] = 'Course event'; +$string['groupevent'] = 'Group event'; +$string['siteevent'] = 'Site event'; +$string['userevent'] = 'User event'; diff --git a/lang/en/deprecated.txt b/lang/en/deprecated.txt index 52975470338..76080fdd38b 100644 --- a/lang/en/deprecated.txt +++ b/lang/en/deprecated.txt @@ -156,3 +156,8 @@ imageauthorname,core_badges imageauthorname_help,core_badges imageauthorurl,core_badges imageauthorurl_help,core_badges +siteevent,core_calendar +categoryevent,core_calendar +courseevent,core_calendar +groupevent,core_calendar +userevent,core_calendar From 50d5d878b53f5bcf02f67f816a937d4828a46ac2 Mon Sep 17 00:00:00 2001 From: Sara Arjona Date: Fri, 21 Feb 2025 17:00:23 +0100 Subject: [PATCH 2/2] MDL-84617 core_calendar: Final removal of core_calendar_renderer:event --- .upgradenotes/MDL-84617-2025022103590747.yml | 5 + calendar/renderer.php | 114 ++----------------- lang/en/calendar.php | 4 +- lang/en/deprecated.txt | 2 + 4 files changed, 18 insertions(+), 107 deletions(-) create mode 100644 .upgradenotes/MDL-84617-2025022103590747.yml diff --git a/.upgradenotes/MDL-84617-2025022103590747.yml b/.upgradenotes/MDL-84617-2025022103590747.yml new file mode 100644 index 00000000000..7b1f746b010 --- /dev/null +++ b/.upgradenotes/MDL-84617-2025022103590747.yml @@ -0,0 +1,5 @@ +issueNumber: MDL-84617 +notes: + core_calendar: + - message: 'core_calendar_renderer::event() method has been removed.' + type: removed diff --git a/calendar/renderer.php b/calendar/renderer.php index ea44a875b6c..87c53a1f23e 100644 --- a/calendar/renderer.php +++ b/calendar/renderer.php @@ -84,112 +84,16 @@ class core_calendar_renderer extends plugin_renderer_base { } /** - * Displays an event - * - * @deprecated since 3.9 - * - * @param calendar_event $event - * @param bool $showactions - * @return string + * @deprecated 3.9 */ - public function event(calendar_event $event, $showactions=true) { - global $CFG; - debugging('This function is no longer used', DEBUG_DEVELOPER); - - $event = calendar_add_event_metadata($event); - $context = $event->context; - $output = ''; - - $output .= $this->output->box_start('card-header clearfix'); - if (calendar_edit_event_allowed($event) && $showactions) { - if (calendar_delete_event_allowed($event)) { - $editlink = new moodle_url(CALENDAR_URL.'event.php', array('action' => 'edit', 'id' => $event->id)); - $deletelink = new moodle_url(CALENDAR_URL.'delete.php', array('id' => $event->id)); - if (!empty($event->calendarcourseid)) { - $editlink->param('course', $event->calendarcourseid); - $deletelink->param('course', $event->calendarcourseid); - } - } else { - $params = array('update' => $event->cmid, 'return' => true, 'sesskey' => sesskey()); - $editlink = new moodle_url('/course/mod.php', $params); - $deletelink = null; - } - - $commands = html_writer::start_tag('div', array('class' => 'commands float-sm-end')); - $commands .= html_writer::start_tag('a', array('href' => $editlink)); - $str = get_string('tt_editevent', 'calendar'); - $commands .= $this->output->pix_icon('t/edit', $str); - $commands .= html_writer::end_tag('a'); - if ($deletelink != null) { - $commands .= html_writer::start_tag('a', array('href' => $deletelink)); - $str = get_string('tt_deleteevent', 'calendar'); - $commands .= $this->output->pix_icon('t/delete', $str); - $commands .= html_writer::end_tag('a'); - } - $commands .= html_writer::end_tag('div'); - $output .= $commands; - } - if (!empty($event->icon)) { - $output .= $event->icon; - } else { - $output .= $this->output->spacer(array('height' => 16, 'width' => 16)); - } - - if (!empty($event->referer)) { - $output .= $this->output->heading($event->referer, 3, array('class' => 'referer')); - } else { - $output .= $this->output->heading( - format_string($event->name, false, array('context' => $context)), - 3, - array('class' => 'name d-inline-block') - ); - } - // Show subscription source if needed. - if (!empty($event->subscription) && $CFG->calendar_showicalsource) { - if (!empty($event->subscription->url)) { - $source = html_writer::link($event->subscription->url, - get_string('subscriptionsource', 'calendar', $event->subscription->name)); - } else { - // File based ical. - $source = get_string('subscriptionsource', 'calendar', $event->subscription->name); - } - $output .= html_writer::tag('div', $source, array('class' => 'subscription')); - } - if (!empty($event->courselink)) { - $output .= html_writer::tag('div', $event->courselink); - } - if (!empty($event->time)) { - $output .= html_writer::tag('span', $event->time, array('class' => 'date float-sm-end me-1')); - } else { - $humantime = \core_calendar\output\humandate::create_from_timestamp( - timestamp: $event->timestart, - near: null, - timeonly: true, - ); - $output .= html_writer::tag('span', $this->output->render($humantime)); - } - - if (!empty($event->actionurl)) { - $actionlink = html_writer::link(new moodle_url($event->actionurl), $event->actionname); - $output .= html_writer::tag('div', $actionlink, ['class' => 'action']); - } - - $output .= $this->output->box_end(); - $eventdetailshtml = ''; - $eventdetailsclasses = ''; - - $eventdetailshtml .= format_text($event->description, $event->format, array('context' => $context)); - $eventdetailsclasses .= 'description card-block'; - if (isset($event->cssclass)) { - $eventdetailsclasses .= ' '.$event->cssclass; - } - - if (!empty($eventdetailshtml)) { - $output .= html_writer::tag('div', $eventdetailshtml, array('class' => $eventdetailsclasses)); - } - - $eventhtml = html_writer::tag('div', $output, array('class' => 'card')); - return html_writer::tag('div', $eventhtml, array('class' => 'event', 'id' => 'event_' . $event->id)); + #[\core\attribute\deprecated( + replacement: 'event no longer used', + since: '3.9', + mdl: 'MDL-58866', + final: true, + )] + public function event() { + \core\deprecation::emit_deprecation_if_present(__FUNCTION__); } /** diff --git a/lang/en/calendar.php b/lang/en/calendar.php index 0046dc38e64..99d6fb51d7f 100644 --- a/lang/en/calendar.php +++ b/lang/en/calendar.php @@ -249,8 +249,6 @@ $string['timeperiod'] = 'Time period'; $string['today'] = 'Today'; $string['todayplustitle'] = 'Today {$a}'; $string['tomorrow'] = 'Tomorrow'; -$string['tt_deleteevent'] = 'Delete event'; -$string['tt_editevent'] = 'Edit event'; $string['tue'] = 'Tue'; $string['tuesday'] = 'Tuesday'; $string['typeclose'] = 'Close event'; @@ -291,4 +289,6 @@ $string['categoryevent'] = 'Category event'; $string['courseevent'] = 'Course event'; $string['groupevent'] = 'Group event'; $string['siteevent'] = 'Site event'; +$string['tt_deleteevent'] = 'Delete event'; +$string['tt_editevent'] = 'Edit event'; $string['userevent'] = 'User event'; diff --git a/lang/en/deprecated.txt b/lang/en/deprecated.txt index 76080fdd38b..e7a8f751fa1 100644 --- a/lang/en/deprecated.txt +++ b/lang/en/deprecated.txt @@ -160,4 +160,6 @@ siteevent,core_calendar categoryevent,core_calendar courseevent,core_calendar groupevent,core_calendar +tt_deleteevent,core_calendar +tt_editevent,core_calendar userevent,core_calendar