📄 system_announcements.lib.php
字号:
<?php/*============================================================================== Dokeos - elearning and course management software Copyright (c) 2004-2008 Dokeos SPRL Copyright (c) 2003 Ghent University (UGent) Copyright (c) 2001 Universite catholique de Louvain (UCL) Copyright (c) 2004 Bart Mollet (HoGent) For a full list of contributors, see "credits.txt". The full license can be read in "license.txt". This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. See the GNU General Public License for more details. Contact address: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium Mail: info@dokeos.com==============================================================================*/define('VISIBLE_GUEST', 1);define('VISIBLE_STUDENT', 2);define('VISIBLE_TEACHER', 3);/**==============================================================================* This is the system announcements library for Dokeos.** @package dokeos.library==============================================================================*/class SystemAnnouncementManager{ /** * Displays all announcements * @param int $visible VISIBLE_GUEST, VISIBLE_STUDENT or VISIBLE_TEACHER * @param int $id The identifier of the announcement to display */ function display_announcements($visible, $id = -1) { $user_selected_language = api_get_interface_language(); $db_table = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS); $sql = "SELECT *, DATE_FORMAT(date_start,'%d-%m-%Y') AS display_date FROM ".$db_table." WHERE (lang='$user_selected_language' OR lang IS NULL) AND ((NOW() BETWEEN date_start AND date_end) OR date_end='0000-00-00') "; switch ($visible) { case VISIBLE_GUEST : $sql .= " AND visible_guest = 1 "; break; case VISIBLE_STUDENT : $sql .= " AND visible_student = 1 "; break; case VISIBLE_TEACHER : $sql .= " AND visible_teacher = 1 "; break; } $sql .= " ORDER BY date_start DESC LIMIT 0,7"; $announcements = api_sql_query($sql,__FILE__,__LINE__); if (Database::num_rows($announcements)) { $query_string = ereg_replace('announcement=[1-9]+', '', $_SERVER['QUERY_STRING']); $query_string = ereg_replace('&$', '', $query_string); $url = api_get_self(); echo '<div class="system_announcements">'; echo '<h3>'.get_lang('SystemAnnouncements').'</h3>'; echo '<table border="0">'; while ($announcement = Database::fetch_object($announcements)) { if ($id != $announcement->id) { if (strlen($query_string) > 0) { $show_url = 'newsList.php#'.$announcement->id; //$show_url = $url.'?'.$query_string.'&announcement='.$announcement->id; } else { $show_url = 'newsList.php#'.$announcement->id; //$show_url = $url.'?announcement='.$announcement->id; } echo '<tr class="system_announcement"> <td width="80px" valign="top" class="system_announcement_title">' .$announcement->display_date.' </td> <td valign="top"> <a name="ann'.$announcement->id.'" href="'.$show_url.'">'.$announcement->title.'</a> </td> </tr>'; } else { echo '<div class="system_announcement"> <div class="system_announcement_title">' .$announcement->display_date.' <a name="ann'.$announcement->id.'" href="'.$url.'?'.$query_string.'#ann'.$announcement->id.'">'.$announcement->title.'</a> </div> <div class="system_announcement_content">' .$announcement->content.' </div>'; } } /*echo '<tr><td height="15px"></td></tr>';*/ echo '<tr><td colspan="2">'; echo '<a href="newsList.php">'.get_lang("More").'</a>'; echo '</td></tr>'; echo '</table>'; echo '</div>'; } return; } function display_all_announcements($visible, $id = -1,$start = 0,$user_id) { $user_selected_language = api_get_interface_language(); $db_table = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS); $sql = "SELECT *, DATE_FORMAT(date_start,'%d-%m-%Y') AS display_date FROM ".$db_table." WHERE (lang='$user_selected_language' OR lang IS NULL) AND ((NOW() BETWEEN date_start AND date_end) OR date_end='0000-00-00')"; switch ($visible) { case VISIBLE_GUEST : $sql .= " AND visible_guest = 1 "; break; case VISIBLE_STUDENT : $sql .= " AND visible_student = 1 "; break; case VISIBLE_TEACHER : $sql .= " AND visible_teacher = 1 "; break; } if(!isset($_GET['start']) || $_GET['start'] == 0) { $sql .= " ORDER BY date_start DESC LIMIT ".$start.",20"; } else { $sql .= " ORDER BY date_start DESC LIMIT ".($start+1).",20"; } $announcements = api_sql_query($sql,__FILE__,__LINE__); if (Database::num_rows($announcements)) { $query_string = ereg_replace('announcement=[1-9]+', '', $_SERVER['QUERY_STRING']); $query_string = ereg_replace('&$', '', $query_string); $url = api_get_self(); echo '<div class="system_announcements">'; echo '<h3>'.get_lang('SystemAnnouncements').'</h3>'; echo '<table align="center">'; echo '<tr>'; echo '<td>'; SystemAnnouncementManager :: display_fleche($user_id); echo '</td>'; echo '</tr>'; echo '</table>'; echo '<table align="center" border="0" width="900px">'; while ($announcement = Database::fetch_object($announcements)) { echo '<tr><td>'; echo '<a name="'.$announcement->id.'"></a> <div class="system_announcement"> <div class="system_announcement_title">' .$announcement->display_date.' <strong>'.$announcement->title.'</strong> </div> <br /> <div class="system_announcement_content">' .$announcement->content.' </div> </div> <br /> <hr noshade size="1">'; echo '</tr></td>'; } echo '</table>'; echo '<table align="center">'; echo '<tr>'; echo '<td>'; SystemAnnouncementManager :: display_fleche($user_id); echo '</td>'; echo '</tr>'; echo '</table>'; echo '</div>'; } return; } function display_fleche($user_id) { $start = (int)$_GET['start']; $nb_announcement = SystemAnnouncementManager :: count_nb_announcement($start,$user_id); $next = ((int)$_GET['start']+19); $prev = ((int)$_GET['start']-19); if(!isset($_GET['start']) || $_GET['start'] == 0) { if($nb_announcement > 20) { echo '<a href="newsList.php?start='.$next.'">'.get_lang('NextBis').' >> </a>'; } } else { echo '<a href="newsList.php?start='.$prev.'"> << '.get_lang('Prev').'</a>'; if($nb_announcement > 20) { echo '<a href="newsList.php?start='.$next.'">'.get_lang('NextBis').' >> </a>'; } } } function count_nb_announcement($start = 0,$user_id = '')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -