@ -7,6 +7,9 @@
*/
// Resetting the course id.
use Chamilo\CoreBundle\Entity\SysAnnouncement;
use Chamilo\PluginBundle\Zoom\Meeting;
$cidReset = true;
// Including the global initialization file.
@ -67,6 +70,7 @@ if ($action != 'add' && $action != 'edit') {
/* MAIN CODE */
$show_announcement_list = true;
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null;
$type = $_REQUEST['type'] ?? null;
// Form was posted?
if (isset($_POST['action'])) {
@ -153,6 +157,32 @@ if ($action_todo) {
$url = api_get_self().'?id='.intval($_GET['id']);
}
$form = new FormValidator('system_announcement', 'post', $url);
if ('add' === $action & & 'zoom_conference' == $type & & $meetingId = $_REQUEST['meeting'] ?? 0) {
$plugin = ZoomPlugin::create();
if ($plugin->isEnabled(true)) {
/** @var Meeting $meeting */
$meeting = ZoomPlugin::getMeetingRepository()->findOneBy(['meetingId' => $meetingId]);
$meetingUrl = api_get_path(WEB_PLUGIN_PATH).'zoom/subscription.php?meetingId='.$meeting->getMeetingId();
$endDate = new DateTime($meeting->formattedStartTime);
$endDate->add($meeting->durationInterval);
$values['title'] = $meeting->getTopic();
$values['content'] = '< p > '.$meeting->getAgenda().'< / p > '
.'< p > '.$plugin->get_lang('UrlForSelfRegistration').'< br > '.Display::url($meetingUrl, $meetingUrl).'< / p > ';
$values['range_start'] = $meeting->formattedStartTime;
$values['range_end'] = $endDate->format('Y-m-d H:i');
$values['range'] = "{$values['range_start']} / {$values['range_end']}";
$values['send_mail'] = true;
$values['add_to_calendar'] = true;
$form->addHidden('type', 'zoom_conference');
$form->addHidden('meeting', $meeting->getMeetingId());
}
}
$form->addHeader($form_title);
$form->addText('title', get_lang('Title'), true);
@ -269,6 +299,13 @@ if ($action_todo) {
SystemAnnouncementManager::announcement_for_groups($announcement_id, $groupsToSend);
}
if (isset($meeting)) {
$em = Database::getManager();
$sysAnnouncement = $em->find(SysAnnouncement::class, $announcement_id);
$meeting->setSysAnnouncement($sysAnnouncement);
$em->flush();
}
echo Display::return_message(get_lang('AnnouncementAdded'), 'confirmation');
} else {
$show_announcement_list = false;