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

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

@ -60,68 +60,47 @@ if ($_GET['action'] != 'add' && $_GET['action'] != 'edit') {
/* MAIN CODE */ /* MAIN CODE */
$form_action = '';
$show_announcement_list = true; $show_announcement_list = true;
if (isset ($_GET['action']) && $_GET['action'] == 'make_visible') { $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null;
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;
}
}
// Form was posted? // Form was posted?
if (isset ($_POST['action'])) { if (isset ($_POST['action'])) {
$action_todo = true; $action_todo = true;
} }
// Delete an announcement. //Actions
if (isset ($_GET['action']) && $_GET['action'] == 'delete') { 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']); SystemAnnouncementManager :: delete_announcement($_GET['id']);
Display :: display_confirmation_message(get_lang('AnnouncementDeleted')); Display :: display_confirmation_message(get_lang('AnnouncementDeleted'));
} break;
// Delete selected announcements. case 'delete_selected':
if (isset ($_POST['action']) && $_POST['action'] == 'delete_selected') {
foreach($_POST['id'] as $index => $id) { foreach($_POST['id'] as $index => $id) {
SystemAnnouncementManager :: delete_announcement($id); SystemAnnouncementManager :: delete_announcement($id);
} }
Display :: display_confirmation_message(get_lang('AnnouncementDeleted')); Display :: display_confirmation_message(get_lang('AnnouncementDeleted'));
$action_todo = false; $action_todo = false;
} break;
case 'add':
// Add an announcement. // Add an announcement.
if (isset ($_GET['action']) && $_GET['action'] == 'add') {
$values['action'] = 'add'; $values['action'] = 'add';
// Set default time window: NOW -> NEXT WEEK // Set default time window: NOW -> NEXT WEEK
$values['start'] = date('Y-m-d H:i:s',api_strtotime(api_get_local_time())); $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)); $values['end'] = date('Y-m-d H:i:s',api_strtotime(api_get_local_time()) + (7 * 24 * 60 * 60));
$action_todo = true; $action_todo = true;
} break;
case 'edit':
// Edit an announcement. // Edit an announcement.
if (isset ($_GET['action']) && $_GET['action'] == 'edit') {
$announcement = SystemAnnouncementManager :: get_announcement($_GET['id']); $announcement = SystemAnnouncementManager :: get_announcement($_GET['id']);
$values['id'] = $announcement->id; $values['id'] = $announcement->id;
$values['title'] = $announcement->title; $values['title'] = $announcement->title;
@ -136,6 +115,7 @@ if (isset ($_GET['action']) && $_GET['action'] == 'edit') {
$groups = SystemAnnouncementManager :: get_announcement_groups($announcement->id); $groups = SystemAnnouncementManager :: get_announcement_groups($announcement->id);
$values['group'] = isset($groups[0]['group_id']) ? $groups[0]['group_id'] : 0; $values['group'] = isset($groups[0]['group_id']) ? $groups[0]['group_id'] : 0;
$action_todo = true; $action_todo = true;
break;
} }
if ($action_todo) { if ($action_todo) {
@ -144,7 +124,6 @@ if ($action_todo) {
} elseif (isset($_REQUEST['action']) && $_REQUEST['action'] == 'edit') { } elseif (isset($_REQUEST['action']) && $_REQUEST['action'] == 'edit') {
$form_title = get_lang('EditNews'); $form_title = get_lang('EditNews');
} }
$form = new FormValidator('system_announcement'); $form = new FormValidator('system_announcement');
$form->addElement('header', '', $form_title); $form->addElement('header', '', $form_title);
$form->add_textfield('title', get_lang('Title'), true, array('size'=>'60px')); $form->add_textfield('title', get_lang('Title'), true, array('size'=>'60px'));
@ -259,9 +238,9 @@ if ($show_announcement_list) {
$row[] = $announcement->title; $row[] = $announcement->title;
$row[] = api_convert_and_format_date($announcement->date_start); $row[] = api_convert_and_format_date($announcement->date_start);
$row[] = api_convert_and_format_date($announcement->date_end); $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=".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=".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_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_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[] = $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>"; $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 * Code
*/ */
define('VISIBLE_GUEST', 1);
define('VISIBLE_STUDENT', 2);
define('VISIBLE_TEACHER', 3);
/** /**
* This is the system announcements library for Dokeos. * This is the system announcements library for Dokeos.
@ -16,6 +14,11 @@ define('VISIBLE_TEACHER', 3);
* @package chamilo.library * @package chamilo.library
*/ */
class SystemAnnouncementManager { class SystemAnnouncementManager {
CONST VISIBLE_GUEST = 1;
CONST VISIBLE_STUDENT = 2;
CONST VISIBLE_TEACHER = 3;
/** /**
* Displays all announcements * Displays all announcements
* @param int $visible VISIBLE_GUEST, VISIBLE_STUDENT or VISIBLE_TEACHER * @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') "; ." AND ((NOW() BETWEEN date_start AND date_end) OR date_end='0000-00-00') ";
switch ($visible) { switch ($visible) {
case VISIBLE_GUEST : case self::VISIBLE_GUEST :
$sql .= " AND visible_guest = 1 "; $sql .= " AND visible_guest = 1 ";
break; break;
case VISIBLE_STUDENT : case self::VISIBLE_STUDENT :
$sql .= " AND visible_student = 1 "; $sql .= " AND visible_student = 1 ";
break; break;
case VISIBLE_TEACHER : case self::VISIBLE_TEACHER :
$sql .= " AND visible_teacher = 1 "; $sql .= " AND visible_teacher = 1 ";
break; break;
} }
@ -128,13 +131,13 @@ class SystemAnnouncementManager {
WHERE ( lang = '$user_selected_language' OR lang IS NULL) AND ( '$now' >= date_start AND '$now' <= date_end) "; WHERE ( lang = '$user_selected_language' OR lang IS NULL) AND ( '$now' >= date_start AND '$now' <= date_end) ";
switch ($visible) { switch ($visible) {
case VISIBLE_GUEST : case self::VISIBLE_GUEST :
$sql .= " AND visible_guest = 1 "; $sql .= " AND visible_guest = 1 ";
break; break;
case VISIBLE_STUDENT : case self::VISIBLE_STUDENT :
$sql .= " AND visible_student = 1 "; $sql .= " AND visible_student = 1 ";
break; break;
case VISIBLE_TEACHER : case self::VISIBLE_TEACHER :
$sql .= " AND visible_teacher = 1 "; $sql .= " AND visible_teacher = 1 ";
break; break;
} }
@ -219,19 +222,19 @@ class SystemAnnouncementManager {
public static function count_nb_announcement($start = 0, $user_id = '') { public static function count_nb_announcement($start = 0, $user_id = '') {
$start = intval($start); $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(); $user_selected_language = api_get_interface_language();
$db_table = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS); $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) '; $sql = 'SELECT id FROM '.$db_table.' WHERE (lang="'.$user_selected_language.'" OR lang IS NULL) ';
if (isset($user_id)) { if (isset($user_id)) {
switch ($visibility) { switch ($visibility) {
case VISIBLE_GUEST : case self::VISIBLE_GUEST :
$sql .= " AND visible_guest = 1 "; $sql .= " AND visible_guest = 1 ";
break; break;
case VISIBLE_STUDENT : case self::VISIBLE_STUDENT :
$sql .= " AND visible_student = 1 "; $sql .= " AND visible_student = 1 ";
break; break;
case VISIBLE_TEACHER : case self::VISIBLE_TEACHER :
$sql .= " AND visible_teacher = 1 "; $sql .= " AND visible_teacher = 1 ";
break; break;
} }
@ -497,7 +500,12 @@ class SystemAnnouncementManager {
$visible = intval($visible); $visible = intval($visible);
$announcement_id = intval($announcement_id); $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."'"; $sql = "UPDATE ".$db_table." SET ".$field." = '".$visible."' WHERE id='".$announcement_id."'";
$res = Database::query($sql); $res = Database::query($sql);
if ($res === false) { 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) "; WHERE ( lang = '$user_selected_language' OR lang IS NULL) AND ( '$now' >= date_start AND '$now' <= date_end) ";
switch ($visible) { switch ($visible) {
case VISIBLE_GUEST : case self::VISIBLE_GUEST :
$sql .= " AND visible_guest = 1 "; $sql .= " AND visible_guest = 1 ";
break; break;
case VISIBLE_STUDENT : case self::VISIBLE_STUDENT :
$sql .= " AND visible_student = 1 "; $sql .= " AND visible_student = 1 ";
break; break;
case VISIBLE_TEACHER : case self::VISIBLE_TEACHER :
$sql .= " AND visible_teacher = 1 "; $sql .= " AND visible_teacher = 1 ";
break; break;
} }

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

@ -14,15 +14,13 @@ if (api_is_platform_admin()) {
} }
if (api_is_anonymous()) { if (api_is_anonymous()) {
$visibility = VISIBLE_GUEST; $visibility = SystemAnnouncementManager::VISIBLE_GUEST;
} else { } 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']); $content = SystemAnnouncementManager ::display_announcements_slider($visibility, $_GET['id']);
$tpl = new Template($tool_name); $tpl = new Template($tool_name);
$tpl->assign('actions', $actions); $tpl->assign('actions', $actions);
//$tpl->assign('message', $message); //$tpl->assign('message', $message);
$tpl->assign('content', $content); $tpl->assign('content', $content);

Loading…
Cancel
Save