Fixing class SystemAnnouncementManager. When autoloading the class with constants see #4808

skala
Julio Montoya 13 years ago
parent 740544157b
commit ddb4caf4e9
  1. 125
      main/admin/system_announcements.php
  2. 44
      main/inc/lib/system_announcements.lib.php
  3. 6
      main/inc/lib/userportal.lib.php
  4. 6
      news_list.php

@ -60,82 +60,62 @@ if ($_GET['action'] != 'add' && $_GET['action'] != 'edit') {
/* MAIN CODE */
$form_action = '';
$show_announcement_list = true;
if (isset ($_GET['action']) && $_GET['action'] == 'make_visible') {
switch ($_GET['person']) {
case VISIBLE_TEACHER :
SystemAnnouncementManager :: set_visibility($_GET['id'], VISIBLE_TEACHER, true);
break;
case VISIBLE_STUDENT :
SystemAnnouncementManager :: set_visibility($_GET['id'], VISIBLE_STUDENT, true);
break;
case VISIBLE_GUEST :
SystemAnnouncementManager :: set_visibility($_GET['id'], VISIBLE_GUEST, true);
break;
}
}
if (isset ($_GET['action']) && $_GET['action'] == 'make_invisible') {
switch ($_GET['person']) {
case VISIBLE_TEACHER :
SystemAnnouncementManager :: set_visibility($_GET['id'], VISIBLE_TEACHER, false);
break;
case VISIBLE_STUDENT :
SystemAnnouncementManager :: set_visibility($_GET['id'], VISIBLE_STUDENT, false);
break;
case VISIBLE_GUEST :
SystemAnnouncementManager :: set_visibility($_GET['id'], VISIBLE_GUEST, false);
break;
}
}
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null;
// Form was posted?
if (isset ($_POST['action'])) {
$action_todo = true;
}
// Delete an announcement.
if (isset ($_GET['action']) && $_GET['action'] == 'delete') {
SystemAnnouncementManager :: delete_announcement($_GET['id']);
Display :: display_confirmation_message(get_lang('AnnouncementDeleted'));
}
// Delete selected announcements.
if (isset ($_POST['action']) && $_POST['action'] == 'delete_selected') {
foreach($_POST['id'] as $index => $id) {
SystemAnnouncementManager :: delete_announcement($id);
}
Display :: display_confirmation_message(get_lang('AnnouncementDeleted'));
$action_todo = false;
}
// Add an announcement.
if (isset ($_GET['action']) && $_GET['action'] == 'add') {
$values['action'] = 'add';
// Set default time window: NOW -> NEXT WEEK
$values['start'] = date('Y-m-d H:i:s',api_strtotime(api_get_local_time()));
$values['end'] = date('Y-m-d H:i:s',api_strtotime(api_get_local_time()) + (7 * 24 * 60 * 60));
$action_todo = true;
}
// Edit an announcement.
if (isset ($_GET['action']) && $_GET['action'] == 'edit') {
$announcement = SystemAnnouncementManager :: get_announcement($_GET['id']);
$values['id'] = $announcement->id;
$values['title'] = $announcement->title;
$values['content'] = $announcement->content;
$values['start'] = api_get_local_time($announcement->date_start);
$values['end'] = api_get_local_time($announcement->date_end);
$values['visible_teacher'] = $announcement->visible_teacher;
$values['visible_student'] = $announcement->visible_student ;
$values['visible_guest'] = $announcement->visible_guest ;
$values['lang'] = $announcement->lang;
$values['action'] = 'edit';
$groups = SystemAnnouncementManager :: get_announcement_groups($announcement->id);
$values['group'] = isset($groups[0]['group_id']) ? $groups[0]['group_id'] : 0;
$action_todo = true;
//Actions
switch($action) {
case 'make_visible':
case 'make_invisible':
$status = false;
if ($action == 'make_visible') {
$status = true;
}
SystemAnnouncementManager :: set_visibility($_GET['id'], $_GET['person'], $status);
break;
case 'delete':
// Delete an announcement.
SystemAnnouncementManager :: delete_announcement($_GET['id']);
Display :: display_confirmation_message(get_lang('AnnouncementDeleted'));
break;
case 'delete_selected':
foreach($_POST['id'] as $index => $id) {
SystemAnnouncementManager :: delete_announcement($id);
}
Display :: display_confirmation_message(get_lang('AnnouncementDeleted'));
$action_todo = false;
break;
case 'add':
// Add an announcement.
$values['action'] = 'add';
// Set default time window: NOW -> NEXT WEEK
$values['start'] = date('Y-m-d H:i:s',api_strtotime(api_get_local_time()));
$values['end'] = date('Y-m-d H:i:s',api_strtotime(api_get_local_time()) + (7 * 24 * 60 * 60));
$action_todo = true;
break;
case 'edit':
// Edit an announcement.
$announcement = SystemAnnouncementManager :: get_announcement($_GET['id']);
$values['id'] = $announcement->id;
$values['title'] = $announcement->title;
$values['content'] = $announcement->content;
$values['start'] = api_get_local_time($announcement->date_start);
$values['end'] = api_get_local_time($announcement->date_end);
$values['visible_teacher'] = $announcement->visible_teacher;
$values['visible_student'] = $announcement->visible_student ;
$values['visible_guest'] = $announcement->visible_guest ;
$values['lang'] = $announcement->lang;
$values['action'] = 'edit';
$groups = SystemAnnouncementManager :: get_announcement_groups($announcement->id);
$values['group'] = isset($groups[0]['group_id']) ? $groups[0]['group_id'] : 0;
$action_todo = true;
break;
}
if ($action_todo) {
@ -144,7 +124,6 @@ if ($action_todo) {
} elseif (isset($_REQUEST['action']) && $_REQUEST['action'] == 'edit') {
$form_title = get_lang('EditNews');
}
$form = new FormValidator('system_announcement');
$form->addElement('header', '', $form_title);
$form->add_textfield('title', get_lang('Title'), true, array('size'=>'60px'));
@ -259,9 +238,9 @@ if ($show_announcement_list) {
$row[] = $announcement->title;
$row[] = api_convert_and_format_date($announcement->date_start);
$row[] = api_convert_and_format_date($announcement->date_end);
$row[] = "<a href=\"?id=".$announcement->id."&amp;person=".VISIBLE_TEACHER."&amp;action=". ($announcement->visible_teacher ? 'make_invisible' : 'make_visible')."\">".Display::return_icon(($announcement->visible_teacher ? 'visible.gif' : 'invisible.gif'), get_lang('ShowOrHide'))."</a>";
$row[] = "<a href=\"?id=".$announcement->id."&amp;person=".VISIBLE_STUDENT."&amp;action=". ($announcement->visible_student ? 'make_invisible' : 'make_visible')."\">".Display::return_icon(($announcement->visible_student ? 'visible.gif' : 'invisible.gif'), get_lang('ShowOrHide'))."</a>";
$row[] = "<a href=\"?id=".$announcement->id."&amp;person=".VISIBLE_GUEST."&amp;action=". ($announcement->visible_guest ? 'make_invisible' : 'make_visible')."\">".Display::return_icon(($announcement->visible_guest ? 'visible.gif' : 'invisible.gif'), get_lang('ShowOrHide'))."</a>";
$row[] = "<a href=\"?id=".$announcement->id."&amp;person=".SystemAnnouncementManager::VISIBLE_TEACHER."&amp;action=". ($announcement->visible_teacher ? 'make_invisible' : 'make_visible')."\">".Display::return_icon(($announcement->visible_teacher ? 'visible.gif' : 'invisible.gif'), get_lang('ShowOrHide'))."</a>";
$row[] = "<a href=\"?id=".$announcement->id."&amp;person=".SystemAnnouncementManager::VISIBLE_STUDENT."&amp;action=". ($announcement->visible_student ? 'make_invisible' : 'make_visible')."\">".Display::return_icon(($announcement->visible_student ? 'visible.gif' : 'invisible.gif'), get_lang('ShowOrHide'))."</a>";
$row[] = "<a href=\"?id=".$announcement->id."&amp;person=".SystemAnnouncementManager::VISIBLE_GUEST."&amp;action=". ($announcement->visible_guest ? 'make_invisible' : 'make_visible')."\">".Display::return_icon(($announcement->visible_guest ? 'visible.gif' : 'invisible.gif'), get_lang('ShowOrHide'))."</a>";
$row[] = $announcement->lang;
$row[] = "<a href=\"?action=edit&id=".$announcement->id."\">".Display::return_icon('edit.png', get_lang('Edit'), array(), ICON_SIZE_SMALL)."</a> <a href=\"?action=delete&id=".$announcement->id."\" onclick=\"javascript:if(!confirm('".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"), ENT_QUOTES))."')) return false;\">".Display::return_icon('delete.png', get_lang('Delete'), array(), ICON_SIZE_SMALL)."</a>";

@ -6,9 +6,7 @@
/**
* Code
*/
define('VISIBLE_GUEST', 1);
define('VISIBLE_STUDENT', 2);
define('VISIBLE_TEACHER', 3);
/**
* This is the system announcements library for Dokeos.
@ -16,6 +14,11 @@ define('VISIBLE_TEACHER', 3);
* @package chamilo.library
*/
class SystemAnnouncementManager {
CONST VISIBLE_GUEST = 1;
CONST VISIBLE_STUDENT = 2;
CONST VISIBLE_TEACHER = 3;
/**
* Displays all announcements
* @param int $visible VISIBLE_GUEST, VISIBLE_STUDENT or VISIBLE_TEACHER
@ -44,13 +47,13 @@ class SystemAnnouncementManager {
." AND ((NOW() BETWEEN date_start AND date_end) OR date_end='0000-00-00') ";
switch ($visible) {
case VISIBLE_GUEST :
case self::VISIBLE_GUEST :
$sql .= " AND visible_guest = 1 ";
break;
case VISIBLE_STUDENT :
case self::VISIBLE_STUDENT :
$sql .= " AND visible_student = 1 ";
break;
case VISIBLE_TEACHER :
case self::VISIBLE_TEACHER :
$sql .= " AND visible_teacher = 1 ";
break;
}
@ -128,13 +131,13 @@ class SystemAnnouncementManager {
WHERE ( lang = '$user_selected_language' OR lang IS NULL) AND ( '$now' >= date_start AND '$now' <= date_end) ";
switch ($visible) {
case VISIBLE_GUEST :
case self::VISIBLE_GUEST :
$sql .= " AND visible_guest = 1 ";
break;
case VISIBLE_STUDENT :
case self::VISIBLE_STUDENT :
$sql .= " AND visible_student = 1 ";
break;
case VISIBLE_TEACHER :
case self::VISIBLE_TEACHER :
$sql .= " AND visible_teacher = 1 ";
break;
}
@ -219,19 +222,19 @@ class SystemAnnouncementManager {
public static function count_nb_announcement($start = 0, $user_id = '') {
$start = intval($start);
$visibility = api_is_allowed_to_create_course() ? VISIBLE_TEACHER : VISIBLE_STUDENT;
$visibility = api_is_allowed_to_create_course() ? self::VISIBLE_TEACHER : self::VISIBLE_STUDENT;
$user_selected_language = api_get_interface_language();
$db_table = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS);
$sql = 'SELECT id FROM '.$db_table.' WHERE (lang="'.$user_selected_language.'" OR lang IS NULL) ';
if (isset($user_id)) {
switch ($visibility) {
case VISIBLE_GUEST :
case self::VISIBLE_GUEST :
$sql .= " AND visible_guest = 1 ";
break;
case VISIBLE_STUDENT :
case self::VISIBLE_STUDENT :
$sql .= " AND visible_student = 1 ";
break;
case VISIBLE_TEACHER :
case self::VISIBLE_TEACHER :
$sql .= " AND visible_teacher = 1 ";
break;
}
@ -496,8 +499,13 @@ class SystemAnnouncementManager {
$db_table = Database::get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS);
$visible = intval($visible);
$announcement_id = intval($announcement_id);
$field = ($user == VISIBLE_TEACHER ? 'visible_teacher' : ($user == VISIBLE_STUDENT ? 'visible_student' : 'visible_guest'));
if (!in_array($user, array(self::VISIBLE_GUEST, self::VISIBLE_STUDENT, self::VISIBLE_TEACHER))) {
return false;
}
$field = ($user == self::VISIBLE_TEACHER ? 'visible_teacher' : ($user == self::VISIBLE_STUDENT ? 'visible_student' : 'visible_guest'));
$sql = "UPDATE ".$db_table." SET ".$field." = '".$visible."' WHERE id='".$announcement_id."'";
$res = Database::query($sql);
if ($res === false) {
@ -586,13 +594,13 @@ class SystemAnnouncementManager {
WHERE ( lang = '$user_selected_language' OR lang IS NULL) AND ( '$now' >= date_start AND '$now' <= date_end) ";
switch ($visible) {
case VISIBLE_GUEST :
case self::VISIBLE_GUEST :
$sql .= " AND visible_guest = 1 ";
break;
case VISIBLE_STUDENT :
case self::VISIBLE_STUDENT :
$sql .= " AND visible_student = 1 ";
break;
case VISIBLE_TEACHER :
case self::VISIBLE_TEACHER :
$sql .= " AND visible_teacher = 1 ";
break;
}

@ -83,7 +83,7 @@ class IndexManager {
$announcement = intval($announcement);
if (!api_is_anonymous() && $this->user_id) {
$visibility = api_is_allowed_to_create_course() ? VISIBLE_TEACHER : VISIBLE_STUDENT;
$visibility = api_is_allowed_to_create_course() ? SystemAnnouncementManager::VISIBLE_TEACHER : SystemAnnouncementManager::VISIBLE_STUDENT;
if ($show_slide) {
$announcements = SystemAnnouncementManager :: display_announcements_slider($visibility, $announcement);
} else {
@ -91,9 +91,9 @@ class IndexManager {
}
} else {
if ($show_slide) {
$announcements = SystemAnnouncementManager :: display_announcements_slider(VISIBLE_GUEST, $announcement);
$announcements = SystemAnnouncementManager :: display_announcements_slider(SystemAnnouncementManager::VISIBLE_GUEST, $announcement);
} else {
$announcements = SystemAnnouncementManager :: display_all_announcements(VISIBLE_GUEST, $announcement);
$announcements = SystemAnnouncementManager :: display_all_announcements(SystemAnnouncementManager::VISIBLE_GUEST, $announcement);
}
}
return $announcements;

@ -14,15 +14,13 @@ if (api_is_platform_admin()) {
}
if (api_is_anonymous()) {
$visibility = VISIBLE_GUEST;
$visibility = SystemAnnouncementManager::VISIBLE_GUEST;
} else {
$visibility = api_is_allowed_to_create_course() ? VISIBLE_TEACHER : VISIBLE_STUDENT;
$visibility = api_is_allowed_to_create_course() ? SystemAnnouncementManager::VISIBLE_TEACHER : SystemAnnouncementManager::VISIBLE_STUDENT;
}
$content = SystemAnnouncementManager ::display_announcements_slider($visibility, $_GET['id']);
$tpl = new Template($tool_name);
$tpl->assign('actions', $actions);
//$tpl->assign('message', $message);
$tpl->assign('content', $content);

Loading…
Cancel
Save