Show announcement details - refs #7539

1.10.x
Angel Fernando Quiroz Campos 10 years ago
parent d6e85f9474
commit e9e6085906
  1. 51
      main/inc/lib/system_announcements.lib.php
  2. 8
      main/template/default/announcement/view.tpl
  3. 7
      news_list.php

@ -708,4 +708,55 @@ class SystemAnnouncementManager
return $template->fetch('default/announcement/slider.tpl');
}
/**
* Get the HTML code for an announcement
* @param int $announcementId The announcement ID
* @param int $visibility The announcement visibility
* @return string The HTML code
*/
public static function displayAnnouncement($announcementId, $visibility)
{
$selectedUserLanguage = Database::escape_string(api_get_interface_language());
$announcementTable = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS);
$now = api_get_utc_datetime();
$whereConditions = [
"(lang = ? OR lang IS NULL) " => $selectedUserLanguage,
"AND (? >= date_start AND ? <= date_end) " => [$now, $now],
"AND id = ? " => intval($announcementId)
];
switch ($visibility) {
case self::VISIBLE_GUEST :
$whereConditions["AND visible_guest = ? "] = 1;
break;
case self::VISIBLE_STUDENT :
$whereConditions["AND visible_student = ? "] = 1;
break;
case self::VISIBLE_TEACHER :
$whereConditions["AND visible_teacher = ? "] = 1;
break;
}
if (api_is_multiple_url_enabled()) {
$whereConditions["AND access_url_id IN (1, ?) "] = api_get_current_access_url_id();
}
$announcement = Database::select(
"*",
$announcementTable,
[
"where" => $whereConditions,
"order" => "date_start"
], 'first'
);
$template = new Template(null, false, false);
$template->assign('announcement', $announcement);
return $template->fetch('default/announcement/view.tpl');
}
}

@ -0,0 +1,8 @@
<h2 class="page-header">{{ "SystemAnnouncements" | get_lang }}</h2>
<article id="announcement-{{ announcement.id }}}">
<header class="page-header">
<h3>{{ announcement.title }}</h3>
{{ announcement.content }}
</header>
</article>

@ -18,7 +18,12 @@ if (api_is_anonymous()) {
} else {
$visibility = api_is_allowed_to_create_course() ? SystemAnnouncementManager::VISIBLE_TEACHER : SystemAnnouncementManager::VISIBLE_STUDENT;
}
$content = SystemAnnouncementManager ::display_announcements_slider($visibility, $_GET['id']);
if (!isset($_GET['id']) || empty($_GET['id'])) {
$content = SystemAnnouncementManager::display_announcements_slider($visibility, $_GET['id']);
} else {
$content = SystemAnnouncementManager::displayAnnouncement($_GET['id'], $visibility);
}
$tpl = new Template($tool_name);
$tpl->assign('actions', $actions);

Loading…
Cancel
Save