diff --git a/main/inc/lib/AnnouncementManager.php b/main/inc/lib/AnnouncementManager.php index c0e32df1ac..c0ff82a776 100755 --- a/main/inc/lib/AnnouncementManager.php +++ b/main/inc/lib/AnnouncementManager.php @@ -28,7 +28,7 @@ class AnnouncementManager /** * @return array */ - public static function getTags() + public static function getTags(array $excluded = []) { $tags = [ '((user_name))', @@ -58,6 +58,10 @@ class AnnouncementManager $tags[] = '((general_coach_email))'; } + if ($excluded) { + return array_diff($tags, $excluded); + } + return $tags; } @@ -72,11 +76,11 @@ class AnnouncementManager public static function parseContent( $userId, $content, - $courseCode, + $courseCode = '', $sessionId = 0 ) { $readerInfo = api_get_user_info($userId, false, false, true, true, false, true); - $courseInfo = api_get_course_info($courseCode); + $courseInfo = $courseCode ? api_get_course_info($courseCode) : []; $teacherList = ''; if ($courseInfo) { $teacherList = CourseManager::getTeacherListFromCourseCodeToString($courseInfo['code']); @@ -86,10 +90,9 @@ class AnnouncementManager $coaches = ''; if (!empty($sessionId)) { $sessionInfo = api_get_session_info($sessionId); - $coaches = CourseManager::get_coachs_from_course_to_string( - $sessionId, - $courseInfo['real_id'] - ); + $coaches = $courseInfo + ? CourseManager::get_coachs_from_course_to_string($sessionId, $courseInfo['real_id']) + : ''; $generalCoach = api_get_user_info($sessionInfo['id_coach']); $generalCoachName = $generalCoach['complete_name']; @@ -114,7 +117,7 @@ class AnnouncementManager $data['user_picture'] = UserManager::getUserPicture($userId, USER_IMAGE_SIZE_ORIGINAL); $data['course_title'] = $courseInfo['name'] ?? ''; - $courseLink = api_get_course_url($courseCode, $sessionId); + $courseLink = $courseCode ? api_get_course_url($courseCode, $sessionId) : ''; $data['course_link'] = Display::url($courseLink, $courseLink); $data['teachers'] = $teacherList; @@ -152,7 +155,7 @@ class AnnouncementManager $tags = self::getTags(); foreach ($tags as $tag) { $simpleTag = str_replace(['((', '))'], '', $tag); - $value = isset($data[$simpleTag]) ? $data[$simpleTag] : ''; + $value = $data[$simpleTag] ?? ''; $content = str_replace($tag, $value, $content); } diff --git a/main/session/importCourseEventInSessionExample.csv b/main/session/importCourseEventInSessionExample.csv new file mode 100644 index 0000000000..21c5d86d1e --- /dev/null +++ b/main/session/importCourseEventInSessionExample.csv @@ -0,0 +1,2 @@ +StartDate;EndDate +YYYY-MM-DD HH:ii:ss;YYYY-MM-DD HH:ii:ss diff --git a/main/session/import_course_agenda_reminders.php b/main/session/import_course_agenda_reminders.php new file mode 100644 index 0000000000..8403600c0e --- /dev/null +++ b/main/session/import_course_agenda_reminders.php @@ -0,0 +1,190 @@ +'.get_lang('Tags').'' + .'
'.implode("\n", $tags).'';
+
+$fileHelpText = get_lang('ImportCSVFileLocation').'StartDate;EndDate'; + +$form = new FormValidator('agenda_reminders', 'post', $selfUrl); +$form->addHeader(get_lang('CsvImport')); +$form->addFile( + 'events_file', + [get_lang('ImportAsCSV'), $fileHelpText], + ['accept' => 'text/csv'] +); +$form->addRule('events_file', get_lang('ThisFieldIsRequired'), 'required'); +$form->addRule('events_file', get_lang('InvalidExtension'), 'filetype', ['csv']); +$form->addHeader(get_lang('AddEventInCourseCalendar')); +$form->addText( + 'title', + [get_lang('ItemTitle'), get_lang('TagsCanBeUsed')], + true, + ['cols-size' => [2, 7, 3]] +); +$form->applyFilter('title', 'trim'); +$form->addHtmlEditor( + 'description', + [get_lang('Description'), null, $tagsHelp], + true, + false, + ['ToolbarSet' => 'Minimal', 'cols-size' => [2, 7, 3]] +); +//$form->applyFilter('description', 'html_filter_teacher'); + +if ($isAgendaRemindersEnabled) { + $form->addHeader(get_lang('NotifyBeforeTheEventStarts')); + $form->addHtml(''); + $form->addButton('add_notification', get_lang('AddNotification'), 'bell-o')->setType('button'); +} + +$form->addHtml('
xxx;YYYY-MM-DD HH:ii:ss;YYYY-MM-DD HH:ii:ss