Merge branch '1.11.x' of github.com:chamilo/chamilo-lms into 1.11.x

pull/2487/head
Angel Fernando Quiroz Campos 9 years ago
commit f26ce1ae11
  1. 18
      main/attendance/attendance_add.php
  2. 27
      main/attendance/attendance_calendar.php
  3. 26
      main/attendance/attendance_controller.php
  4. 29
      main/attendance/attendance_edit.php
  5. 2
      main/attendance/attendance_list.php
  6. 4
      main/attendance/attendance_sheet.php
  7. 1
      main/attendance/calendar_logins.php
  8. 2
      main/attendance/index.php
  9. 28
      main/auth/courses_controller.php
  10. 15
      main/inc/lib/CourseChatUtils.php
  11. 3
      main/inc/lib/GamificationUtils.php
  12. 11
      main/inc/lib/auth.lib.php
  13. 3962
      main/inc/lib/blog.lib.php
  14. 20
      main/inc/lib/career.lib.php
  15. 1
      main/inc/lib/certificate.lib.php
  16. 28
      main/inc/lib/chat.lib.php
  17. 1
      main/inc/lib/conditional_login.class.php
  18. 100
      main/inc/lib/course_category.lib.php
  19. 32
      main/inc/lib/course_description.lib.php
  20. 415
      main/inc/lib/dashboard.lib.php
  21. 3
      main/inc/lib/diagnoser.lib.php
  22. 4
      main/inc/lib/events_email.class.php
  23. 5
      main/inc/lib/exercise.lib.php
  24. 19
      main/inc/lib/glossary.lib.php
  25. 19
      main/inc/lib/grade_model.lib.php
  26. 6
      main/inc/lib/gradebook.lib.php
  27. 51
      main/inc/lib/legal.lib.php
  28. 134
      main/inc/lib/link.lib.php
  29. 24
      main/inc/lib/lp_item.lib.php
  30. 20
      main/inc/lib/message.lib.php
  31. 2
      main/inc/lib/plugin.class.php
  32. 1
      main/inc/lib/rights.lib.php
  33. 10
      main/inc/lib/security.lib.php
  34. 22
      main/inc/lib/sortable_table.class.php
  35. 649
      main/inc/lib/system_announcements.lib.php
  36. 14
      main/inc/lib/thematic.lib.php
  37. 61
      main/inc/lib/urlmanager.lib.php
  38. 30
      main/inc/lib/userportal.lib.php

@ -37,24 +37,34 @@ $form->addHtmlEditor(
array('ToolbarSet' => 'TrainingDescription', 'Width' => '100%', 'Height' => '150')
);
// Adavanced Parameters
// Advanced Parameters
if ((api_get_session_id() != 0 && Gradebook::is_active()) || api_get_session_id() == 0) {
$form->addButtonAdvancedSettings('id_qualify');
$form->addElement('html','<div id="id_qualify_options" style="display:none">');
// Qualify Attendance for gradebook option
$form->addElement('checkbox', 'attendance_qualify_gradebook', '', get_lang('QualifyAttendanceGradebook'),'onclick="javascript: if(this.checked){document.getElementById(\'options_field\').style.display = \'block\';}else{document.getElementById(\'options_field\').style.display = \'none\';}"');
$form->addElement(
'checkbox',
'attendance_qualify_gradebook',
'',
get_lang('QualifyAttendanceGradebook'),
'onclick="javascript: if(this.checked){document.getElementById(\'options_field\').style.display = \'block\';}else{document.getElementById(\'options_field\').style.display = \'none\';}"'
);
$form->addElement('html','<div id="options_field" style="display:none">');
GradebookUtils::load_gradebook_select_in_tool($form);
$form->addElement('text', 'attendance_qualify_title', get_lang('TitleColumnGradebook'));
$form->applyFilter('attendance_qualify_title', 'html_filter');
$form->addElement('text', 'attendance_weight', get_lang('QualifyWeight'),'value="0.00" Style="width:40px" onfocus="javascript: this.select();"');
$form->addElement(
'text',
'attendance_weight',
get_lang('QualifyWeight'),
'value="0.00" Style="width:40px" onfocus="javascript: this.select();"'
);
$form->applyFilter('attendance_weight', 'html_filter');
$form->addElement('html','</div>');
$form->addElement('html','</div>');
}
$form->addButtonCreate(get_lang('Save'));

@ -46,7 +46,6 @@ if (isset($error_checkdate) && $error_checkdate) {
Display::display_error_message($message, false);
}
if (isset($action) && $action == 'calendar_add') {
$groupList = GroupManager::get_group_list(null, null, 1);
$groupIdList = array('--');
@ -62,13 +61,11 @@ if (isset($action) && $action == 'calendar_add') {
''
);
$form->addElement('header', get_lang('AddADateTime'));
//$form->addElement('date_time_picker', 'date_time');
$form->addDateTimePicker(
'date_time',
array(get_lang('StartDate')),
array('id' => 'date_time')
);
'date_time',
array(get_lang('StartDate')),
array('id' => 'date_time')
);
$defaults['date_time'] = date('Y-m-d H:i', api_strtotime(api_get_local_time()));
@ -97,7 +94,12 @@ if (isset($action) && $action == 'calendar_add') {
);
$form->addElement('select', 'repeat_type', get_lang('RepeatType') , $a_repeat_type);
$form->addElement('date_picker', 'end_date_time', get_lang('RepeatEnd'), array('form_name'=>'attendance_calendar_add'));
$form->addElement(
'date_picker',
'end_date_time',
get_lang('RepeatEnd'),
array('form_name'=>'attendance_calendar_add')
);
$defaults['end_date_time'] = date('Y-m-d');
$form->addElement('html', '</div>');
@ -123,7 +125,7 @@ if (isset($action) && $action == 'calendar_add') {
foreach ($attendance_calendar as $calendar) {
echo '<li class="list-group-item">';
if ((isset($action) && $action == 'calendar_edit') &&
if ((isset($action) && $action === 'calendar_edit') &&
(isset($calendar_id) && $calendar_id == $calendar['id'])
) {
// calendar edit form
@ -134,7 +136,12 @@ if (isset($action) && $action == 'calendar_add') {
'index.php?action=calendar_edit&attendance_id=' . $attendance_id . '&calendar_id=' . $calendar_id . '&' . api_get_cidreq(),
''
);
$form->addDateTimePicker('date_time', array(get_lang('Date')), array('form_name'=>'attendance_calendar_edit'), 5);
$form->addDateTimePicker(
'date_time',
array(get_lang('Date')),
array('form_name'=>'attendance_calendar_edit'),
5
);
$defaults['date_time'] = $calendar['date_time'];
$form->addButtonSave(get_lang('Save'));
$form->addButtonCancel(get_lang('Cancel'), 'cancel');

@ -50,8 +50,7 @@ class AttendanceController
$attendance = new Attendance();
$data = array();
if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') {
if (!empty($_POST['title'])) {
$check = Security::check_token();
if ($check) {
@ -95,8 +94,7 @@ class AttendanceController
$data = array();
$attendance_id = intval($attendance_id);
if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') {
if (!empty($_POST['title'])) {
$check = Security::check_token();
if ($check) {
@ -112,7 +110,7 @@ class AttendanceController
) {
$link_to_gradebook = true;
}
$attendance->attendance_edit($attendance_id,$link_to_gradebook);
$attendance->attendance_edit($attendance_id, $link_to_gradebook);
Security::clear_token();
header('location:index.php?action=attendance_list&'.api_get_cidreq());
exit;
@ -203,7 +201,6 @@ class AttendanceController
$this->attendance_list();
}
/**
* Restores an attendance entry and fallback to attendances rendering
* @param int $attendance_id
@ -223,8 +220,8 @@ class AttendanceController
/**
* Lock or unlock an attendance
* render to attendance_list view
* @param string action (lock_attendance or unlock_attendance)
* @param int attendance id
* @param string $action (lock_attendance or unlock_attendance)
* @param int $attendance_id
* render to attendance_list view
*/
public function lock_attendance($action, $attendance_id)
@ -301,7 +298,7 @@ class AttendanceController
$data['next_attendance_calendar_id'] = $attendance->get_next_attendance_calendar_id($attendance_id);
$data['next_attendance_calendar_datetime'] = $attendance->get_next_attendance_calendar_datetime($attendance_id);
if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') {
if (isset($_POST['hidden_input'])) {
foreach ($_POST['hidden_input'] as $cal_id) {
$users_present = array();
@ -408,7 +405,7 @@ class AttendanceController
$action = 'calendar_list';
}
}
} else if ($action == 'calendar_edit') {
} else if ($action === 'calendar_edit') {
$data['calendar_id'] = $calendar_id;
if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
if (!isset($_POST['cancel'])) {
@ -507,9 +504,7 @@ class AttendanceController
}
// Get data table
$data_table = array();
$head_table = array('#', get_lang('Name'));
foreach ($data_array['attendant_calendar'] as $class_day) {
$head_table[] =
@ -529,12 +524,13 @@ class AttendanceController
$result['full_name'] = api_get_person_name($user['firstname'], $user['lastname']);
foreach ($data_array['attendant_calendar'] as $class_day) {
if ($class_day['done_attendance'] == 1) {
if ($data_users_presence[$user['user_id']][$class_day['id']]['presence'] == 1)
if ($data_users_presence[$user['user_id']][$class_day['id']]['presence'] == 1) {
$result[$class_day['id']] = get_lang('UserAttendedSymbol');
else
} else {
$result[$class_day['id']] = '<span style="color:red">'.get_lang('UserNotAttendedSymbol').'</span>';
}
} else {
$result[$class_day['id']] = " ";
$result[$class_day['id']] = ' ';
}
$cols++;
}

@ -31,7 +31,7 @@ $form->addElement('hidden', 'sec_token', $token);
$form->addElement('hidden', 'attendance_id', $attendance_id);
$form->addText('title', get_lang('Title'), true);
$form->applyFilter('title','html_filter');
$form->applyFilter('title', 'html_filter');
$form->addHtmlEditor(
'description',
get_lang('Description'),
@ -50,21 +50,38 @@ if (Gradebook::is_active()) {
if (!empty($attendance_qualify_title) || !empty($attendance_weight)) {
$form->addButtonAdvancedSettings('id_qualify');
$form->addElement('html','<div id="id_qualify_options" style="display:block">');
$form->addElement('checkbox', 'attendance_qualify_gradebook', '', get_lang('QualifyAttendanceGradebook'),array('checked'=>'true','onclick'=>'javascript: if(this.checked){document.getElementById(\'options_field\').style.display = \'block\';}else{document.getElementById(\'options_field\').style.display = \'none\';}'));
$form->addElement(
'checkbox',
'attendance_qualify_gradebook',
'',
get_lang('QualifyAttendanceGradebook'),
array('checked'=>'true','onclick'=>'javascript: if(this.checked){document.getElementById(\'options_field\').style.display = \'block\';}else{document.getElementById(\'options_field\').style.display = \'none\';}')
);
$form->addElement('html','<div id="options_field" style="display:block">');
} else {
$form->addButtonAdvancedSettings('id_qualify');
$form->addElement('html','<div id="id_qualify_options" style="display:none">');
$form->addElement('checkbox', 'attendance_qualify_gradebook', '', get_lang('QualifyAttendanceGradebook'),'onclick="javascript: if(this.checked){document.getElementById(\'options_field\').style.display = \'block\';}else{document.getElementById(\'options_field\').style.display = \'none\';}"');
$form->addElement(
'checkbox',
'attendance_qualify_gradebook',
'',
get_lang('QualifyAttendanceGradebook'),
'onclick="javascript: if(this.checked){document.getElementById(\'options_field\').style.display = \'block\';}else{document.getElementById(\'options_field\').style.display = \'none\';}"'
);
$form->addElement('html','<div id="options_field" style="display:none">');
}
GradebookUtils::load_gradebook_select_in_tool($form);
$form->addElement('text', 'attendance_qualify_title', get_lang('TitleColumnGradebook'));
$form->applyFilter('attendance_qualify_title', 'html_filter');
$form->addElement('text', 'attendance_weight', get_lang('QualifyWeight'),'value="0.00" Style="width:40px" onfocus="javascript: this.select();"');
$form->addElement(
'text',
'attendance_weight',
get_lang('QualifyWeight'),
'value="0.00" Style="width:40px" onfocus="javascript: this.select();"'
);
$form->applyFilter('attendance_weight', 'html_filter');
$form->addElement('html','</div>');
$form->addElement('html','</div>');
$form->addElement('html', '</div>');
$form->addElement('html', '</div>');
}
$form->addButtonUpdate(get_lang('Save'));

@ -13,7 +13,7 @@ api_protect_course_script(true);
if (api_is_allowed_to_edit(null, true)) {
echo '<div class="actions">';
echo '<a href="index.php?'.api_get_cidreq().'&action=attendance_add">'.
Display::return_icon('new_attendance_list.png', get_lang('CreateANewAttendance'),'',ICON_SIZE_MEDIUM).'</a>';
Display::return_icon('new_attendance_list.png', get_lang('CreateANewAttendance'), '', ICON_SIZE_MEDIUM).'</a>';
echo '</div>';
}
$attendance = new Attendance();

@ -74,8 +74,6 @@ if (api_is_allowed_to_edit(null, true) ||
['id' => 'filter_id', 'onchange' => 'submit();']
);
//$form->addElement('select', 'filter', get_lang('Filter'), $values, array('id' => 'filter_id'));
$groupList = GroupManager::get_group_list(null, null, 1);
$groupIdList = array('--');
foreach ($groupList as $group) {
@ -442,7 +440,7 @@ if (api_is_allowed_to_edit(null, true) ||
$i = 0;
foreach ($users_presence[$user_id] as $presence) {
$class = '';
if ($i%2==0) {
if ($i % 2 == 0) {
$class = 'row_even';
} else {
$class = 'row_odd';

@ -6,6 +6,5 @@ echo '<div class="actions">';
echo '<a href="index.php?'.api_get_cidreq().'&action=calendar_list">'.
Display::return_icon('back.png',get_lang('AttendanceCalendar'),'',ICON_SIZE_MEDIUM).'</a>';
echo '</div>';
echo $form;
echo $table;

@ -9,9 +9,7 @@
* @package chamilo.attendance
*/
// including files
require_once '../inc/global.inc.php';
require_once 'attendance_controller.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/fe/exportgradebook.php';

@ -165,8 +165,14 @@ class CoursesController
* @param $limit
* @param boolean $justVisible Whether to search only in courses visibles in the catalogue
*/
public function search_courses($search_term, $message = '', $error = '', $content = null, $limit = array(), $justVisible = false)
{
public function search_courses(
$search_term,
$message = '',
$error = '',
$content = null,
$limit = array(),
$justVisible = false
) {
$data = array();
$limit = !empty($limit) ? $limit : CourseCategory::getLimitArray();
@ -264,8 +270,8 @@ class CoursesController
/**
* Change course category
* render to listing view
* @param string Course code
* @param int Category id
* @param string $course_code
* @param int $category_id
*/
public function change_course_category($course_code, $category_id)
{
@ -283,9 +289,9 @@ class CoursesController
/**
* Move up/down courses inside a category
* render to listing view
* @param string move to up or down
* @param string Course code
* @param int Category id
* @param string $move move to up or down
* @param string $course_code
* @param int $category_id Category id
*/
public function move_course($move, $course_code, $category_id)
{
@ -300,8 +306,8 @@ class CoursesController
/**
* Move up/down categories
* render to listing view
* @param string move to up or down
* @param int Category id
* @param string $move move to up or down
* @param int $category_id Category id
*/
public function move_category($move, $category_id)
{
@ -316,8 +322,8 @@ class CoursesController
/**
* Edit course category
* render to listing view
* @param string Category title
* @param int Category id
* @param string $title Category title
* @param int $category Category id
*/
public function edit_course_category($title, $category)
{

@ -2,6 +2,7 @@
/* For licensing terms, see /license.txt */
use Michelf\MarkdownExtra;
use Doctrine\Common\Collections\Criteria;
/**
* Class CourseChat
@ -23,10 +24,10 @@ class CourseChatUtils
*/
public function __construct($courseId, $userId, $sessionId = 0, $groupId = 0)
{
$this->courseId = intval($courseId);
$this->userId = intval($userId);
$this->sessionId = intval($sessionId);
$this->groupId = intval($groupId);
$this->courseId = (int) $courseId;
$this->userId = (int) $userId;
$this->sessionId = (int) $sessionId;
$this->groupId = (int) $groupId;
}
/**
@ -42,10 +43,7 @@ class CourseChatUtils
$course = $em->find('ChamiloCoreBundle:Course', $this->courseId);
if ($this->sessionId) {
$criteria = \Doctrine\Common\Collections\Criteria::create()
->where(
\Doctrine\Common\Collections\Criteria::expr()->eq("course", $course)
);
$criteria = Criteria::create()->where(Criteria::expr()->eq("course", $course));
return $em
->find('ChamiloCoreBundle:Session', $this->sessionId)
@ -1506,7 +1504,6 @@ class CourseChatUtils
public function getFileName($absolute = false, $friendId = 0)
{
$date = date('Y-m-d');
$base = 'messages-' . $date . '.log.html';
if ($this->groupId && !$friendId) {

@ -9,7 +9,6 @@
*/
class GamificationUtils
{
/**
* Get the calculated points on session with gamification mode
* @param int $userId The user ID
@ -26,6 +25,7 @@ class GamificationUtils
);
if (empty($sessions)) {
return 0;
}
@ -222,5 +222,4 @@ class GamificationUtils
return round($progress / count($sessions), 2);
}
}

@ -406,7 +406,7 @@ class Auth
* @param boolean $justVisible search only on visible courses in the catalogue
* @return array An array containing a list of all the courses matching the the search term.
*/
public function search_courses($search_term, $limit, $justVisible=false)
public function search_courses($search_term, $limit, $justVisible = false)
{
$courseTable = Database::get_main_table(TABLE_MAIN_COURSE);
$extraFieldTable = Database :: get_main_table(TABLE_EXTRA_FIELD);
@ -434,7 +434,7 @@ class Auth
$without_special_courses = ' AND course.code NOT IN (' . implode(',', $special_course_list) . ')';
}
$visibilityCondition = ($justVisible?CourseManager::getCourseVisibilitySQLCondition('course'):'');
$visibilityCondition = $justVisible ? CourseManager::getCourseVisibilitySQLCondition('course') : '';
$search_term_safe = Database::escape_string($search_term);
$sql_find = "SELECT * FROM $courseTable
@ -503,7 +503,7 @@ class Auth
/**
* unsubscribe the user from a given course
* @param string Course code
* @param string $course_code
* @return bool True if it success
*/
public function remove_user_from_course($course_code)
@ -678,8 +678,7 @@ class Auth
$em = Database::getManager();
$qb = $em->createQueryBuilder();
$_sessions = $qb->select('s')
->from('ChamiloCoreBundle:Session', 's');
$_sessions = $qb->select('s')->from('ChamiloCoreBundle:Session', 's');
if (!empty($limit)) {
$_sessions->setFirstResult($limit['start'])
@ -788,12 +787,10 @@ SQL;
->getResult();
$sessionsToBrowse = [];
foreach ($sessions as $session) {
if ($session->getNbrCourses() === 0) {
continue;
}
$sessionsToBrowse[] = $session;
}

File diff suppressed because it is too large Load Diff

@ -21,7 +21,7 @@ class Career extends Model
*/
public function __construct()
{
$this->table = Database::get_main_table(TABLE_CAREER);
$this->table = Database::get_main_table(TABLE_CAREER);
}
/**
@ -77,8 +77,10 @@ class Career extends Model
public function display()
{
echo '<div class="actions" style="margin-bottom:20px">';
echo '<a href="career_dashboard.php">'.Display::return_icon('back.png',get_lang('Back'),'','32').'</a>';
echo '<a href="'.api_get_self().'?action=add">'.Display::return_icon('new_career.png',get_lang('Add'),'','32').'</a>';
echo '<a href="career_dashboard.php">'.
Display::return_icon('back.png', get_lang('Back'), '', ICON_SIZE_MEDIUM).'</a>';
echo '<a href="'.api_get_self().'?action=add">'.
Display::return_icon('new_career.png', get_lang('Add'), '', ICON_SIZE_MEDIUM).'</a>';
echo '</div>';
echo Display::grid_html('careers');
}
@ -88,7 +90,10 @@ class Career extends Model
*/
public function get_status_list()
{
return array(CAREER_STATUS_ACTIVE => get_lang('Unarchived'), CAREER_STATUS_INACTIVE => get_lang('Archived'));
return array(
CAREER_STATUS_ACTIVE => get_lang('Unarchived'),
CAREER_STATUS_INACTIVE => get_lang('Archived')
);
}
/**
@ -110,7 +115,6 @@ class Career extends Model
$form->addElement('header', $header);
$id = isset($_GET['id']) ? intval($_GET['id']) : '';
$form->addElement('hidden', 'id', $id);
$form->addElement('text', 'name', get_lang('Name'), array('size' => '70'));
$form->addHtmlEditor(
'description',
@ -184,10 +188,10 @@ class Career extends Model
if ($copy_promotions) {
//Now also copy each session of the promotion as a new session and register it inside the promotion
$promotion = new Promotion();
$promo_list = $promotion->get_all_promotions_by_career_id($id);
$promo_list = $promotion->get_all_promotions_by_career_id($id);
if (!empty($promo_list)) {
foreach($promo_list as $item) {
$pid = $promotion->copy($item['id'], $cid, true);
foreach ($promo_list as $item) {
$promotion->copy($item['id'], $cid, true);
}
}
}

@ -47,7 +47,6 @@ class Certificate extends Model
public function __construct($certificate_id = 0, $userId = 0)
{
$this->table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CERTIFICATE);
$this->user_id = !empty($userId) ? $userId : api_get_user_id();
if (!empty($certificate_id)) {

@ -3,7 +3,7 @@
/**
* Class Chat
*
* @todo ChamiloSession instead of $_SESSION
* @package chamilo.library.chat
*/
class Chat extends Model
@ -18,6 +18,7 @@ class Chat extends Model
*/
public function __construct()
{
parent::__construct();
$this->table = Database::get_main_table(TABLE_MAIN_CHAT);
$this->window_list = $_SESSION['window_list'] = isset($_SESSION['window_list']) ? $_SESSION['window_list'] : array();
}
@ -26,7 +27,7 @@ class Chat extends Model
* Get user chat status
* @return int 0 if disconnected, 1 if connected
*/
function get_user_status()
public function get_user_status()
{
$status = UserManager::get_extra_user_data_by_field(
api_get_user_id(),
@ -100,7 +101,8 @@ class Chat extends Model
foreach ($rows as $chat) {
$chat['message'] = Security::remove_XSS($chat['message']);
$item = array('s' => '0',
$item = array(
's' => '0',
'f' => $from_user_id,
'm' => $chat['message'],
'username' => $user_info['complete_name'],
@ -141,9 +143,6 @@ class Chat extends Model
WHERE to_user = '".$to_user_id."' AND recd = 0";
Database::query($sql);
if ($items != '') {
//$items = substr($items, 0, -1);
}
echo json_encode(array('items' => $items));
}
@ -181,6 +180,7 @@ class Chat extends Model
* @param string $message Message
* @param boolean $printResult Optional. Whether print the result
* @param boolean $sanitize Optional. Whether sanitize the message
*
* @return void Prints "1"
*/
public function send(
@ -189,8 +189,7 @@ class Chat extends Model
$message,
$printResult = true,
$sanitize = true
)
{
) {
$user_friend_relation = SocialManager::get_relation_between_contacts(
$from_user_id,
$to_user_id
@ -208,12 +207,11 @@ class Chat extends Model
$messagesan = $message;
}
error_log(print_r($sanitize) . '----' . $messagesan);
if (!isset($_SESSION['chatHistory'][$to_user_id])) {
$_SESSION['chatHistory'][$to_user_id] = array();
}
$item = array("s" => "1",
$item = array(
"s" => "1",
"f" => $from_user_id,
"m" => $messagesan,
"username" => get_lang('Me')
@ -274,7 +272,7 @@ class Chat extends Model
return $text;
}
/**
* SET Disable Chat
* @param boolean status to disable chat
@ -284,7 +282,7 @@ class Chat extends Model
{
$_SESSION['disable_chat'] = $status;
}
/**
* Disable Chat - disable the chat
* @return boolean - return true if setDisableChat status is true
@ -298,10 +296,10 @@ class Chat extends Model
return true;
}
}
return false;
}
public function is_chat_blocked_by_exercises()
{
if (isset($_SESSION['current_exercises'])) {

@ -8,7 +8,6 @@
*/
class ConditionalLogin
{
/**
* Check conditions based in the $login_conditions see conditional_login.php file
* @param type $user

@ -60,7 +60,7 @@ class CourseCategory
$parentIdCondition = " AND (t1.parent_id IS NULL OR t1.parent_id = '' )";
if (!empty($category)) {
$parentIdCondition = " AND t1.parent_id = '$category' ";
$parentIdCondition = " AND t1.parent_id = '$category' ";
}
$sql = "SELECT
@ -90,8 +90,8 @@ class CourseCategory
$result = Database::query($sql);
$categories = Database::store_result($result);
foreach ($categories as $category) {
$category['nbr_courses'] = 1;
foreach ($categories as &$categoryItem) {
$categoryItem['nbr_courses'] = 1;
}
return $categories;
@ -328,7 +328,8 @@ class CourseCategory
{
$tbl_category = Database::get_main_table(TABLE_MAIN_CATEGORY);
$categoryCode = Database::escape_string($categoryCode);
$result = Database::query("SELECT code, id FROM $tbl_category WHERE parent_id = '$categoryCode'");
$sql = "SELECT code, id FROM $tbl_category WHERE parent_id = '$categoryCode'";
$result = Database::query($sql);
$children = array();
while ($row = Database::fetch_array($result, 'ASSOC')) {
$children[] = $row;
@ -426,10 +427,10 @@ class CourseCategory
$moveUrl = $mainUrl.'&id='.$category['code'].'&action=moveUp&tree_pos='.$category['tree_pos'];
$deleteUrl = $mainUrl.'&id='.$category['code'].'&action=delete';
$actions = Display::url($editIcon, $editUrl).Display::url($moveIcon, $moveUrl).Display::url(
$deleteIcon,
$deleteUrl
);
$actions = Display::url($editIcon, $editUrl).
Display::url($moveIcon, $moveUrl).
Display::url($deleteIcon, $deleteUrl);
$url = api_get_path(WEB_CODE_PATH).'admin/course_category.php?category='.$category['code'];
$title = Display::url(
Display::return_icon(
@ -496,11 +497,11 @@ class CourseCategory
$tbl_category = Database::get_main_table(TABLE_MAIN_CATEGORY);
$sql = "SELECT code, name
FROM $tbl_category c
$conditions
WHERE (auth_course_child = 'TRUE' OR code = '".Database::escape_string($categoryCode)."')
$whereCondition
ORDER BY tree_pos";
FROM $tbl_category c
$conditions
WHERE (auth_course_child = 'TRUE' OR code = '".Database::escape_string($categoryCode)."')
$whereCondition
ORDER BY tree_pos";
$res = Database::query($sql);
$categories[''] = '-';
@ -525,14 +526,15 @@ class CourseCategory
$whereCondition = " WHERE a.access_url_id = ".api_get_current_access_url_id();
$sql = "SELECT c.* FROM $tbl_category c
$conditions
$whereCondition
ORDER BY tree_pos ASC";
$conditions
$whereCondition
ORDER BY tree_pos ASC";
$result = Database::query($sql);
$url_access_id = 1;
if (api_is_multiple_url_enabled()) {
$url_access_id = api_get_current_access_url_id();
}
$countCourses = CourseManager::countAvailableCourses($url_access_id);
$categories = array();
@ -609,14 +611,14 @@ class CourseCategory
}
$sql = "SELECT * FROM $tbl_course
WHERE
visibility != '0' AND
visibility != '4'
$categoryFilter
$searchFilter
$without_special_courses
$visibilityCondition
";
WHERE
visibility != '0' AND
visibility != '4'
$categoryFilter
$searchFilter
$without_special_courses
$visibilityCondition
";
// Showing only the courses of the current portal access_url_id.
if (api_is_multiple_url_enabled()) {
@ -651,9 +653,7 @@ class CourseCategory
public static function browseCoursesInCategory($category_code, $random_value = null, $limit = array())
{
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
$specialCourseList = CourseManager::get_special_course_list();
$without_special_courses = '';
if (!empty($specialCourseList)) {
$without_special_courses = ' AND course.code NOT IN ("'.implode('","', $specialCourseList).'")';
@ -673,26 +673,26 @@ class CourseCategory
$tbl_url_rel_course = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$sql = "SELECT COUNT(*) FROM $tbl_course course
INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.c_id = course.id)
WHERE access_url_id = $url_access_id ";
INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.c_id = course.id)
WHERE access_url_id = $url_access_id ";
$result = Database::query($sql);
list($num_records) = Database::fetch_row($result);
$sql = "SELECT course.id FROM $tbl_course course
INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.c_id = course.id)
WHERE
access_url_id = $url_access_id AND
RAND()*$num_records< $random_value
$without_special_courses $visibilityCondition
ORDER BY RAND()
LIMIT 0, $random_value";
INNER JOIN $tbl_url_rel_course as url_rel_course
ON (url_rel_course.c_id = course.id)
WHERE
access_url_id = $url_access_id AND
RAND()*$num_records< $random_value
$without_special_courses $visibilityCondition
ORDER BY RAND()
LIMIT 0, $random_value";
} else {
$sql = "SELECT id FROM $tbl_course course
WHERE RAND()*$num_records< $random_value $without_special_courses $visibilityCondition
ORDER BY RAND()
LIMIT 0, $random_value";
WHERE RAND()*$num_records< $random_value $without_special_courses $visibilityCondition
ORDER BY RAND()
LIMIT 0, $random_value";
}
$result = Database::query($sql);
@ -870,12 +870,11 @@ class CourseCategory
$keyword = Database::escape_string($keyword);
$sql = "SELECT c.*, c.name as text
FROM $tableCategory c $conditions
WHERE
FROM $tableCategory c $conditions
WHERE
(
c.code LIKE '%$keyword%' OR name LIKE '%$keyword%'
) AND
auth_course_child = 'TRUE'
) AND auth_course_child = 'TRUE'
$whereCondition ";
$result = Database::query($sql);
@ -963,21 +962,16 @@ class CourseCategory
}
// For each page add its page button to html
for (
$i = $pageBottom;
$i <= $pageTop;
$i++
) {
for ($i = $pageBottom; $i <= $pageTop; $i++) {
if ($i === $pageCurrent) {
$pageItemAttributes = array('class' => 'active');
} else {
$pageItemAttributes = array();
}
$pageDiv .= self::getPageNumberItem($i, $pageLength, $pageItemAttributes);
}
// Check if current page is the last page
// Check if current page is the last page
if ($pageTop < $pageTotal) {
if ($pageTop < ($pageTotal - 1)) {
$pageDiv .= self::getPageNumberItem($pageTop + 1, $pageLength, null, '...');
@ -1016,9 +1010,7 @@ class CourseCategory
$action = 'subscribe';
}
$categoryCodeRequest = isset($_REQUEST['category_code']) ? Security::remove_XSS(
$_REQUEST['category_code']
) : null;
$categoryCodeRequest = isset($_REQUEST['category_code']) ? Security::remove_XSS($_REQUEST['category_code']) : null;
$categoryCode = isset($categoryCode) ? Security::remove_XSS($categoryCode) : $categoryCodeRequest;
$hiddenLinksRequest = isset($_REQUEST['hidden_links']) ? Security::remove_XSS($_REQUEST['hidden_links']) : null;

@ -94,10 +94,10 @@ class CourseDescription
/**
* Get all data by description and session id,
* first you must set session_id property with the object CourseDescription
* @param int $description_type Description type
* @param int $description_type Description type
* @param string $courseId Course code (optional)
* @param int $session_id Session id (optional)
* @return array List of fields from the descriptions found of the given type
* @param int $session_id Session id (optional)
* @return array List of fields from the descriptions found of the given type
*/
public function get_data_by_description_type(
$description_type,
@ -227,14 +227,14 @@ class CourseDescription
);
}
return ($last_id > 0)?1:0;
return ($last_id > 0) ? 1 : 0;
}
/**
* Insert a row like history inside track_e_item_property table
* first you must set description_type, title, content, progress and
* session_id properties with the object CourseDescription
* @param int description type
* @param int $description_type
* @return int affected rows
*/
public function insert_stats($description_type)
@ -449,7 +449,7 @@ class CourseDescription
$information[6] = get_lang('HumanAndTechnicalResourcesInformation');
$information[7] = get_lang('AssessmentInformation');
//$information[8]= get_lang('ThematicAdvanceInformation');
return $information;
}
@ -464,7 +464,7 @@ class CourseDescription
/**
* Set description's course id
* @param int Course ID
* @param int $id Course ID
* @return void
*/
public function set_course_id($id)
@ -474,7 +474,7 @@ class CourseDescription
/**
* Set description title
* @return void
* @param string $title
*/
public function set_title($title)
{
@ -483,7 +483,8 @@ class CourseDescription
/**
* Set description content
* @return void
*
* @param string $content
*/
public function set_content($content)
{
@ -491,8 +492,10 @@ class CourseDescription
}
/**
*
* Set description session id
* @return void
*
* @param int $session_id
*/
public function set_session_id($session_id)
{
@ -509,8 +512,10 @@ class CourseDescription
}
/**
*
* Set progress of a description
* @return void
*
* @param string $progress
*/
public function set_progress($progress)
{
@ -519,6 +524,7 @@ class CourseDescription
/**
* get description id
*
* @return int
*/
public function get_id()
@ -528,6 +534,7 @@ class CourseDescription
/**
* get description title
*
* @return string
*/
public function get_title()
@ -546,6 +553,7 @@ class CourseDescription
/**
* get session id
*
* @return int
*/
public function get_session_id()
@ -555,6 +563,7 @@ class CourseDescription
/**
* get description type
*
* @return int
*/
public function get_description_type()
@ -564,6 +573,7 @@ class CourseDescription
/**
* get progress of a description
*
* @return int
*/
public function get_progress()

@ -22,7 +22,7 @@ class DashboardManager
public static function handle_dashboard_plugins()
{
$token = Security::get_existing_token();
$tokenCondition = '&amp;sec_token='.$token;
$tokenCondition = '&sec_token='.$token;
/* We scan the plugin directory. Each folder is a potential plugin. */
$dashboard_pluginpath = api_get_path(SYS_PLUGIN_PATH).'dashboard/';
@ -189,7 +189,8 @@ class DashboardManager
}
// clean from block data
if (!empty($not_selected_blocks_id)) {
$sql_check = "SELECT id FROM $tbl_block WHERE id IN(".implode(',',$not_selected_blocks_id).")";
$sql_check = "SELECT id FROM $tbl_block
WHERE id IN(".implode(',',$not_selected_blocks_id).")";
$rs_check = Database::query($sql_check);
if (Database::num_rows($rs_check) > 0) {
$del = "DELETE FROM $tbl_block WHERE id IN(".implode(',',$not_selected_blocks_id).")";
@ -249,245 +250,246 @@ class DashboardManager
return $affected_rows;
}
/**
* Get all plugins path inside dashboard directory
* @return array name plugins directories
*/
public static function getPossibleDashboardPluginsPath()
/**
* Get all plugins path inside dashboard directory
* @return array name plugins directories
*/
public static function getPossibleDashboardPluginsPath()
{
// get all plugins path inside plugin directory
/* We scan the plugin directory. Each folder is a potential plugin. */
$possiblePlugins = array();
$dashboard_pluginpath = api_get_path(SYS_PLUGIN_PATH).'dashboard/';
$handle = @opendir($dashboard_pluginpath);
while (false !== ($file = readdir($handle))) {
if ($file <> '.' AND $file <> '..' AND is_dir($dashboard_pluginpath.$file)) {
$possiblePlugins[] = $file;
}
}
@closedir($handle);
// get all plugins path inside plugin directory
/* We scan the plugin directory. Each folder is a potential plugin. */
$possiblePlugins = array();
$dashboard_pluginpath = api_get_path(SYS_PLUGIN_PATH).'dashboard/';
$handle = @opendir($dashboard_pluginpath);
while (false !== ($file = readdir($handle))) {
if ($file <> '.' AND $file <> '..' AND is_dir($dashboard_pluginpath.$file)) {
$possiblePlugins[] = $file;
}
}
@closedir($handle);
return $possiblePlugins;
}
return $possiblePlugins;
}
/**
* Get all blocks data without plugin directory
* @return array Block data
*/
public static function get_block_data_without_plugin()
/**
* Get all blocks data without plugin directory
* @return array Block data
*/
public static function get_block_data_without_plugin()
{
$tbl_block = Database :: get_main_table(TABLE_MAIN_BLOCK);
$possibleplugins = self::getPossibleDashboardPluginsPath();
// We check if plugin exists inside directory for updating active field
$sql = "SELECT * FROM $tbl_block";
$rs = Database::query($sql);
if (Database::num_rows($rs) > 0){
while ($row = Database::fetch_array($rs)) {
$path = $row['path'];
if (!in_array($row['path'],$possibleplugins)) {
$active = 0;
} else {
$active = 1;
}
// update active
$upd = "UPDATE $tbl_block SET active = '$active'
WHERE path = '".$row['path']."'";
Database::query($upd);
}
}
$tbl_block = Database :: get_main_table(TABLE_MAIN_BLOCK);
$possibleplugins = self::getPossibleDashboardPluginsPath();
// get disabled block data
$block_data = array();
$sql = "SELECT * FROM $tbl_block WHERE active = 0";
$rs_block = Database::query($sql);
if (Database::num_rows($rs_block) > 0) {
while ($row_block = Database::fetch_array($rs_block)) {
$block_data[] = $row_block;
}
}
// We check if plugin exists inside directory for updating active field
$sql = "SELECT * FROM $tbl_block";
$rs = Database::query($sql);
if (Database::num_rows($rs) > 0){
while ($row = Database::fetch_array($rs)) {
if (!in_array($row['path'], $possibleplugins)) {
$active = 0;
} else {
$active = 1;
}
// update active
$upd = "UPDATE $tbl_block SET active = '$active'
WHERE path = '".$row['path']."'";
Database::query($upd);
}
}
return $block_data;
// get disabled block data
$block_data = array();
$sql = "SELECT * FROM $tbl_block WHERE active = 0";
$rs_block = Database::query($sql);
if (Database::num_rows($rs_block) > 0) {
while ($row_block = Database::fetch_array($rs_block)) {
$block_data[] = $row_block;
}
}
return $block_data;
}
/**
* get data about enabled dashboard block (stored insise block table)
* @param string plugin path
* @return array data
*/
public static function get_enabled_dashboard_blocks($path = '')
/**
* get data about enabled dashboard block (stored insise block table)
* @param string $path plugin path
*
* @return array data
*/
public static function get_enabled_dashboard_blocks($path = '')
{
$tbl_block = Database :: get_main_table(TABLE_MAIN_BLOCK);
$condition_path = '';
if (!empty($path)) {
$path = Database::escape_string($path);
$condition_path = ' AND path = "'.$path.'" ';
}
$tbl_block = Database :: get_main_table(TABLE_MAIN_BLOCK);
$condition_path = '';
if (!empty($path)) {
$path = Database::escape_string($path);
$condition_path = ' AND path = "'.$path.'" ';
}
$sql = "SELECT * FROM $tbl_block WHERE active = 1 $condition_path ";
$rs = Database::query($sql);
$block_data = array();
if (Database::num_rows($rs) > 0) {
while ($row = Database::fetch_array($rs)) {
$block_data[$row['path']] = $row;
}
}
return $block_data;
}
$sql = "SELECT * FROM $tbl_block WHERE active = 1 $condition_path ";
$rs = Database::query($sql);
$block_data = array();
if (Database::num_rows($rs) > 0) {
while ($row = Database::fetch_array($rs)) {
$block_data[$row['path']] = $row;
}
}
return $block_data;
}
/**
* display user dashboard list
* @param int User id
* @return void
*/
public static function display_user_dashboard_list($user_id)
/**
* display user dashboard list
* @param int User id
* @return void
*/
public static function display_user_dashboard_list($user_id)
{
$enabled_dashboard_plugins = self::get_enabled_dashboard_blocks();
$user_block_data = self::get_user_block_data($user_id);
$enabled_dashboard_plugins = self::get_enabled_dashboard_blocks();
$user_block_data = self::get_user_block_data($user_id);
if (count($enabled_dashboard_plugins) > 0) {
echo '<div style="margin-top:20px">';
echo '<div><strong>'.get_lang('SelectBlockForDisplayingInsideBlocksDashboardView').'</strong></div><br />';
echo '<form name="dashboard_list" method="post" action="index.php?action=store_user_block">';
echo '<table class="data_table">';
echo '<tr>';
echo '<th width="5%">';
echo get_lang('Enabled');
echo '</th>';
echo '<th width="30%">';
echo get_lang('Name');
echo '</th>';
echo '<th width="40%">';
echo get_lang('Description');
echo '</th>';
echo '<th>';
echo get_lang('ColumnPosition');
echo '</th>';
echo '</tr>';
// We display all enabled plugins and the checkboxes
foreach ($enabled_dashboard_plugins as $block) {
$path = $block['path'];
$controller_class = $block['controller'];
$filename_controller = $path.'.class.php';
$dashboard_plugin_path = api_get_path(SYS_PLUGIN_PATH).'dashboard/'.$path.'/';
require_once $dashboard_plugin_path.$filename_controller;
if (class_exists($controller_class)) {
$obj_block = new $controller_class($user_id);
// check if user is allowed to see the block
if (method_exists($obj_block, 'is_block_visible_for_user')) {
$is_block_visible_for_user = $obj_block->is_block_visible_for_user($user_id);
if (!$is_block_visible_for_user) {
continue;
}
}
if (count($enabled_dashboard_plugins) > 0) {
echo '<div style="margin-top:20px">';
echo '<div><strong>'.get_lang('SelectBlockForDisplayingInsideBlocksDashboardView').'</strong></div><br />';
echo '<form name="dashboard_list" method="post" action="index.php?action=store_user_block">';
echo '<table class="data_table">';
echo '<tr>';
echo '<th width="5%">';
echo get_lang('Enabled');
echo '</th>';
echo '<th width="30%">';
echo get_lang('Name');
echo '</th>';
echo '<th width="40%">';
echo get_lang('Description');
echo '</th>';
echo '<th>';
echo get_lang('ColumnPosition');
echo '</th>';
echo '</tr>';
// We display all enabled plugins and the checkboxes
foreach ($enabled_dashboard_plugins as $block) {
$path = $block['path'];
$controller_class = $block['controller'];
$filename_controller = $path.'.class.php';
$dashboard_plugin_path = api_get_path(SYS_PLUGIN_PATH).'dashboard/'.$path.'/';
require_once $dashboard_plugin_path.$filename_controller;
if (class_exists($controller_class)) {
$obj_block = new $controller_class($user_id);
// check if user is allowed to see the block
if (method_exists($obj_block, 'is_block_visible_for_user')) {
$is_block_visible_for_user = $obj_block->is_block_visible_for_user($user_id);
if (!$is_block_visible_for_user) continue;
}
echo '<tr>';
// checkboxes
self::display_user_dashboard_list_checkboxes($user_id, $block['id']);
echo '<td>'.$block['name'].'</td>';
echo '<td>'.$block['description'].'</td>';
echo '<td>
echo '<tr>';
// checkboxes
self::display_user_dashboard_list_checkboxes($user_id, $block['id']);
echo '<td>'.$block['name'].'</td>';
echo '<td>'.$block['description'].'</td>';
echo '<td>
<select class="selectpicker show-tick form-control" name="columns['.$block['id'].']">
<option value="1" '.(isset($user_block_data[$block['id']]) && $user_block_data[$block['id']]['column']==1?'selected':'').' >1</option>
<option value="2" '.(isset($user_block_data[$block['id']]) && $user_block_data[$block['id']]['column']==2?'selected':'').' >2</option>
</select>
</td>';
echo '</tr>';
} else {
echo Display::tag('tr', Display::tag('td', get_lang('Error').' '.$controller_class, array('colspan'=>'3')));
}
}
echo '</table>';
echo '<div class="row"><div class="col-md-12">';
echo '<button class="btn btn-default" type="submit" name="submit_dashboard_list" value="'.get_lang('EnableDashboardBlock').'"><em class="fa fa-check-square"></em> '.
echo '</tr>';
} else {
echo Display::tag('tr', Display::tag('td', get_lang('Error').' '.$controller_class, array('colspan'=>'3')));
}
}
echo '</table>';
echo '<div class="row"><div class="col-md-12">';
echo '<button class="btn btn-default" type="submit" name="submit_dashboard_list" value="'.get_lang('EnableDashboardBlock').'"><em class="fa fa-check-square"></em> '.
get_lang('EnableDashboardBlock').'</button></form>';
echo '</div></div>';
} else {
echo '<div style="margin-top:20px">'.get_lang('ThereAreNoEnabledDashboardPlugins').'</div>';
if (api_is_platform_admin()) {
echo '<a class="btn btn-default" href="'.api_get_path(WEB_CODE_PATH).'admin/settings.php?category=Plugins">'.
echo '</div></div>';
} else {
echo '<div style="margin-top:20px">'.get_lang('ThereAreNoEnabledDashboardPlugins').'</div>';
if (api_is_platform_admin()) {
echo '<a class="btn btn-default" href="'.api_get_path(WEB_CODE_PATH).'admin/settings.php?category=Plugins">'.
get_lang('ConfigureDashboardPlugin').'</a>';
}
}
}
/**
* display checkboxes for user dashboard list
* @param int User id
* @param int Block id
* @return void
*/
public static function display_user_dashboard_list_checkboxes($user_id, $block_id) {
}
}
}
$user_id = intval($user_id);
$user_block_data = self::get_user_block_data($user_id);
$enabled_blocks_id = array_keys($user_block_data);
/**
* display checkboxes for user dashboard list
* @param int User id
* @param int Block id
* @return void
*/
public static function display_user_dashboard_list_checkboxes($user_id, $block_id)
{
$user_id = intval($user_id);
$user_block_data = self::get_user_block_data($user_id);
$enabled_blocks_id = array_keys($user_block_data);
$checked = '';
if (in_array($block_id, $enabled_blocks_id)) {
$checked = "checked";
}
$checked = '';
if (in_array($block_id, $enabled_blocks_id)) {
$checked = "checked";
}
echo "<td align=\"center\">";
echo '<input type="checkbox" name="enabled_blocks['.$block_id.']" value="true" '.$checked.'/>';
echo "</td>";
}
echo "<td align=\"center\">";
echo '<input type="checkbox" name="enabled_blocks['.$block_id.']" value="true" '.$checked.'/>';
echo "</td>";
}
/**
* This function store enabled blocks id with its column position (block_id1:colum;block_id2:colum; ...) inside extra user fields
* @param int User id
* @param array selected blocks
* @param array columns position
* @return bool
*/
public static function store_user_blocks($user_id, $enabled_blocks, $columns) {
$selected_blocks_id = array();
if (is_array($enabled_blocks) && count($enabled_blocks) > 0) {
$selected_blocks_id = array_keys($enabled_blocks);
}
/**
* This function store enabled blocks id with its column position (block_id1:colum;block_id2:colum; ...)
* inside extra user fields
* @param int $user_id User id
* @param array $enabled_blocks selected blocks
* @param array $columns columns position
* @return bool
*/
public static function store_user_blocks($user_id, $enabled_blocks, $columns)
{
$selected_blocks_id = array();
if (is_array($enabled_blocks) && count($enabled_blocks) > 0) {
$selected_blocks_id = array_keys($enabled_blocks);
}
// build data for storing inside extra user field
$fname = 'dashboard';
$fvalue = array();
foreach ($selected_blocks_id as $block_id) {
$fvalue[] = $block_id.':'.$columns[$block_id];
}
// build data for storing inside extra user field
$fname = 'dashboard';
$fvalue = array();
foreach ($selected_blocks_id as $block_id) {
$fvalue[] = $block_id.':'.$columns[$block_id];
}
$upd_extra_field = UserManager::update_extra_field_value(
$user_id,
$fname,
$fvalue
);
return $upd_extra_field;
}
return $upd_extra_field;
}
/**
* This function get user block data (block id with its number of column) from extra user data
* @param int User id
* @return array data (block_id,column)
*/
public static function get_user_block_data($user_id)
/**
* This function get user block data (block id with its number of column) from extra user data
* @param int User id
* @return array data (block_id,column)
*/
public static function get_user_block_data($user_id)
{
$user_id = intval($user_id);
$field_variable = 'dashboard';
$extra_user_data = UserManager::get_extra_user_data_by_field($user_id, $field_variable);
$extra_user_data = explode(';',$extra_user_data[$field_variable]);
$data = array();
foreach ($extra_user_data as $extra) {
$split_extra = explode(':',$extra);
if (!empty($split_extra)) {
$block_id = $split_extra[0];
$column = isset($split_extra[1]) ? $split_extra[1] : null;
$data[$block_id] = array('block_id' => $block_id, 'column' => $column);
}
}
$user_id = intval($user_id);
$field_variable = 'dashboard';
$extra_user_data = UserManager::get_extra_user_data_by_field($user_id, $field_variable);
$extra_user_data = explode(';', $extra_user_data[$field_variable]);
$data = array();
foreach ($extra_user_data as $extra) {
$split_extra = explode(':',$extra);
if (!empty($split_extra)) {
$block_id = $split_extra[0];
$column = isset($split_extra[1]) ? $split_extra[1] : null;
$data[$block_id] = array('block_id' => $block_id, 'column' => $column);
}
}
return $data;
}
return $data;
}
/**
* This function update extra user blocks data after closing a dashboard block
@ -527,5 +529,4 @@ class DashboardManager
return '<link rel="stylesheet" href="'.api_get_path(WEB_PLUGIN_PATH).'dashboard/css/default.css" type="text/css" />'.PHP_EOL;
}
}

@ -25,6 +25,9 @@ class Diagnoser
{
}
/**
* Show html table
*/
public function show_html()
{
$sections = array('chamilo', 'php', 'database', 'webserver');

@ -155,8 +155,8 @@ class EventsMail
// we get the message in the correct language (or in english if doesn't exist)
$result = self::getMessage($event_name, $language);
$message = "";
$subject = "";
$message = '';
$subject = '';
self::getCorrectMessage($message, $subject, $language, $result);
// replace the keycodes used in the message

@ -39,8 +39,7 @@ class ExerciseLib
$show_comment = false,
$exercise_feedback = null,
$show_answers = false
)
{
) {
$course_id = api_get_course_int_id();
// Change false to true in the following line to enable answer hinting
$debug_mark_answer = $show_answers;
@ -318,7 +317,7 @@ class ExerciseLib
}
$answer = Security::remove_XSS($answer, STUDENT);
$s .= Display::input(
'hidden',
'choice2[' . $questionId . ']',

@ -318,7 +318,6 @@ class GlossaryManager
// Database table definition
$t_glossary = Database :: get_course_table(TABLE_GLOSSARY);
$course_id = api_get_course_int_id();
$glossaryInfo = self::get_glossary_information($glossary_id);
if (empty($glossaryInfo)) {
@ -379,25 +378,25 @@ class GlossaryManager
$actionsLeft = '';
if (api_is_allowed_to_edit(null, true)) {
$actionsLeft .= '<a href="index.php?'.api_get_cidreq().'&action=addglossary&msg=add?'.api_get_cidreq().'">'.
Display::return_icon('new_glossary_term.png',get_lang('TermAddNew'),'', ICON_SIZE_MEDIUM).'</a>';
Display::return_icon('new_glossary_term.png',get_lang('TermAddNew'), '', ICON_SIZE_MEDIUM).'</a>';
}
$actionsLeft .= '<a href="index.php?'.api_get_cidreq().'&action=export">'.
Display::return_icon('export_csv.png',get_lang('ExportGlossaryAsCSV'),'',ICON_SIZE_MEDIUM).'</a>';
Display::return_icon('export_csv.png',get_lang('ExportGlossaryAsCSV'), '', ICON_SIZE_MEDIUM).'</a>';
if (api_is_allowed_to_edit(null, true)) {
$actionsLeft .= '<a href="index.php?'.api_get_cidreq().'&action=import">'.
Display::return_icon('import_csv.png',get_lang('ImportGlossary'),'',ICON_SIZE_MEDIUM).'</a>';
Display::return_icon('import_csv.png',get_lang('ImportGlossary'), '', ICON_SIZE_MEDIUM).'</a>';
}
$actionsLeft .= '<a href="index.php?'.api_get_cidreq().'&action=export_to_pdf">'.
Display::return_icon('pdf.png',get_lang('ExportToPDF'),'', ICON_SIZE_MEDIUM).'</a>';
Display::return_icon('pdf.png',get_lang('ExportToPDF'), '', ICON_SIZE_MEDIUM).'</a>';
if (($view == 'table') || (!isset($view))) {
$actionsLeft .= '<a href="index.php?'.api_get_cidreq().'&action=changeview&view=list">'.
Display::return_icon('view_detailed.png',get_lang('ListView'),'',ICON_SIZE_MEDIUM).'</a>';
Display::return_icon('view_detailed.png',get_lang('ListView'), '', ICON_SIZE_MEDIUM).'</a>';
} else {
$actionsLeft .= '<a href="index.php?'.api_get_cidreq().'&action=changeview&view=table">'.
Display::return_icon('view_text.png',get_lang('TableView'),'',ICON_SIZE_MEDIUM).'</a>';
Display::return_icon('view_text.png',get_lang('TableView'), '', ICON_SIZE_MEDIUM).'</a>';
}
/* BUILD SEARCH FORM */
@ -452,7 +451,7 @@ class GlossaryManager
*/
public static function displayGlossaryList()
{
$glossary_data = self::get_glossary_data(0,1000,0,'ASC');
$glossary_data = self::get_glossary_data(0, 1000, 0, 'ASC');
$content = '';
foreach ($glossary_data as $key => $glossary_item) {
$actions = '';
@ -593,13 +592,13 @@ class GlossaryManager
public static function actions_filter($glossary_id, $url_params, $row)
{
$glossary_id = $row[2];
$return = '<a href="'.api_get_self().'?action=edit_glossary&amp;glossary_id='.$glossary_id.'&'.api_get_cidreq().'&msg=edit">'.
$return = '<a href="'.api_get_self().'?action=edit_glossary&glossary_id='.$glossary_id.'&'.api_get_cidreq().'&msg=edit">'.
Display::return_icon('edit.png',get_lang('Edit'),'',22).'</a>';
$glossary_data = GlossaryManager::get_glossary_information($glossary_id);
$glossary_term = $glossary_data['name'];
if (api_is_allowed_to_edit(null, true)) {
if ($glossary_data['session_id'] == api_get_session_id()) {
$return .= '<a href="'.api_get_self().'?action=delete_glossary&amp;glossary_id='.$glossary_id.'&'.api_get_cidreq().'" onclick="return confirmation(\''.$glossary_term.'\');">'.
$return .= '<a href="'.api_get_self().'?action=delete_glossary&glossary_id='.$glossary_id.'&'.api_get_cidreq().'" onclick="return confirmation(\''.$glossary_term.'\');">'.
Display::return_icon('delete.png', get_lang('Delete'),'',22).'</a>';
} else {
$return = get_lang('EditionNotAvailableFromSession');

@ -55,8 +55,8 @@ class GradeModel extends Model
{
// action links
echo '<div class="actions" style="margin-bottom:20px">';
echo '<a href="grade_models.php">'.Display::return_icon('back.png',get_lang('Back'),'','32').'</a>';
echo '<a href="'.api_get_self().'?action=add">'.Display::return_icon('add.png',get_lang('Add'),'','32').'</a>';
echo '<a href="grade_models.php">'.Display::return_icon('back.png',get_lang('Back'),'', ICON_SIZE_MEDIUM).'</a>';
echo '<a href="'.api_get_self().'?action=add">'.Display::return_icon('add.png', get_lang('Add'), '', ICON_SIZE_MEDIUM).'</a>';
echo '</div>';
echo Display::grid_html('grade_model');
}
@ -215,8 +215,8 @@ class GradeModel extends Model
*/
public function save($params, $show_query = false)
{
$id = parent::save($params, $show_query);
if (!empty($id)) {
$id = parent::save($params, $show_query);
if (!empty($id)) {
foreach ($params['components'] as $component) {
if (!empty($component['title']) && !empty($component['percentage']) && !empty($component['acronym'])) {
$obj = new GradeModelComponents();
@ -227,7 +227,7 @@ class GradeModel extends Model
}
//event_system(LOG_CAREER_CREATE, LOG_CAREER_ID, $id, api_get_utc_datetime(), api_get_user_id());
return $id;
return $id;
}
/**
@ -248,7 +248,6 @@ class GradeModel extends Model
}
}
}
//$params['components']
}
/**
@ -259,6 +258,12 @@ class GradeModel extends Model
parent::delete($id);
}
/**
* @param $form
* @param string $name
* @param null $default_value
* @return bool
*/
public function fill_grade_model_select_in_form(&$form, $name = 'gradebook_model_id', $default_value = null)
{
if (api_get_setting('gradebook_enable_grade_model') == 'false') {
@ -318,7 +323,7 @@ class GradeModelComponents extends Model
public function save($params, $show_query = false)
{
$id = parent::save($params, $show_query);
return $id;
}
}

@ -26,6 +26,7 @@ class Gradebook extends Model
*/
public function __construct()
{
parent::__construct();
$this->table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
$this->table_skill = Database::get_main_table(TABLE_MAIN_SKILL);
$this->table_skill_rel_gradebook = Database::get_main_table(TABLE_MAIN_SKILL_REL_GRADEBOOK);
@ -198,8 +199,7 @@ class Gradebook extends Model
}
$form->addButtonCreate(get_lang('Add'), 'submit');
$form->setDefaults(array('skill'=>$clean_selected_skills));
$form->setDefaults(array('skill' => $clean_selected_skills));
return $form;
}
@ -208,7 +208,7 @@ class Gradebook extends Model
* @param int $gradebook_id
* @return array|resource
*/
function get_skills_by_gradebook($gradebook_id)
public function get_skills_by_gradebook($gradebook_id)
{
$gradebook_id = intval($gradebook_id);
$sql = "SELECT skill.id, skill.name FROM {$this->table_skill} skill

@ -64,37 +64,37 @@ class LegalManager
/**
* @param int $id
*/
public static function delete($id)
public static function delete($id)
{
/*
$legal_table = Database::get_main_table(TABLE_MAIN_LEGAL);
$id = intval($id);
$sql = "DELETE FROM $legal_table WHERE id = '".$id."'";
*/
}
/*
$legal_table = Database::get_main_table(TABLE_MAIN_LEGAL);
$id = intval($id);
$sql = "DELETE FROM $legal_table WHERE id = '".$id."'";
*/
}
/**
* Gets the last version of a Term and condition by language
* @param int $language language id
* @return array all the info of a Term and condition
*/
public static function get_last_condition_version($language)
/**
* Gets the last version of a Term and condition by language
* @param int $language language id
* @return array all the info of a Term and condition
*/
public static function get_last_condition_version($language)
{
$legal_conditions_table = Database::get_main_table(TABLE_MAIN_LEGAL);
$language= Database::escape_string($language);
$sql = "SELECT version FROM $legal_conditions_table
WHERE language_id = '".$language."'
ORDER BY id DESC LIMIT 1 ";
$result = Database::query($sql);
$row = Database::fetch_array($result);
$legal_conditions_table = Database::get_main_table(TABLE_MAIN_LEGAL);
$language= Database::escape_string($language);
$sql = "SELECT version FROM $legal_conditions_table
WHERE language_id = '".$language."'
ORDER BY id DESC LIMIT 1 ";
$result = Database::query($sql);
$row = Database::fetch_array($result);
if (Database::num_rows($result) > 0) {
return $row['version'];
} else {
return $row['version'];
} else {
return 0;
}
}
return 0;
}
}
/**
* Gets the data of a Term and condition by language
@ -126,7 +126,6 @@ class LegalManager
{
if (strpos($content, '{{sessions}}')) {
$sessionListToString = '';
$sessionList = SessionManager::get_sessions_by_user(api_get_user_id());
if ($sessionList) {
$sessionListToString = get_lang('SessionList').'<ul>';

@ -558,7 +558,7 @@ class Link extends Model
'display_order' => $max_display_order,
'on_homepage' => $values['on_homepage'],
'target' => $values['target'],
'category_id' => $values['category_id'],
'category_id' => $values['category_id']
];
Database::update($tbl_link, $params, ['c_id = ? AND id = ?' => [$course_id, $id] ]);
@ -887,23 +887,23 @@ class Link extends Model
$toolbar = '';
$link_validator = '';
if (api_is_allowed_to_edit(null, true)) {
$toolbar .= Display::toolbarButton('',
'#',
'retweet',
'default btn-sm',
array(
'onclick' => "check_url('" . $myrow['id'] . "', '" . addslashes($myrow['url']) . "');",
'title' => get_lang('CheckURL')
)
);
$toolbar .= Display::toolbarButton(
'',
'#',
'retweet',
'default btn-sm',
array(
'onclick' => "check_url('" . $myrow['id'] . "', '" . addslashes($myrow['url']) . "');",
'title' => get_lang('CheckURL')
)
);
$link_validator .= Display::span(
'',
array(
'id' => 'url_id_' . $myrow['id'],
'class' => 'check-link'
)
'id' => 'url_id_' . $myrow['id'],
'class' => 'check-link'
)
);
}
if (api_is_allowed_to_edit(null, true)) {
@ -954,8 +954,8 @@ class Link extends Model
'title' => $title
)
);
}
if ($myrow['visibility'] == '0') {
$url .= 'link.php?' . api_get_cidreq() .'&sec_token=' . $token .'&action=visible&id=' . $myrow['id'] .'&scope=link&category_id=' . $myrow['category_id'];
$title = get_lang('MakeVisible');
@ -975,37 +975,34 @@ class Link extends Model
$title = get_lang('Delete');
$toolbar .= Display::toolbarButton(
'',
$url,
'trash',
'default btn-sm',
array(
'onclick' => $event,
'title' => $title
)
);
'',
$url,
'trash',
'default btn-sm',
array(
'onclick' => $event,
'title' => $title
)
);
} else {
$title = get_lang('EditionNotAvailableFromSession');
$toolbar .= Display::toolbarButton(
'',
'#',
'trash-o',
'default btn-sm',
array(
'title' => $title
)
);
'',
'#',
'trash-o',
'default btn-sm',
array(
'title' => $title
)
);
}
}
$iconLink = Display::return_icon(
'url.png',
get_lang('Link'),
null,
ICON_SIZE_SMALL
);
'url.png',
get_lang('Link'),
null,
ICON_SIZE_SMALL
);
if ($myrow['visibility'] == '1') {
$content .= '<div class="list-group-item">';
@ -1014,13 +1011,13 @@ class Link extends Model
$content .= $iconLink;
$url = 'link_goto.php?' . api_get_cidreq() .'&link_id=' . $myrow['id'] .'&link_url=' . urlencode($myrow['url']);
$content .= Display::tag(
'a',
Security:: remove_XSS($myrow['title']),
array(
'href' => $url,
'target' => $myrow['target']
)
);
'a',
Security:: remove_XSS($myrow['title']),
array(
'href' => $url,
'target' => $myrow['target']
)
);
$content .= $link_validator;
$content .= $session_img;
$content .= '</h4>';
@ -1035,14 +1032,14 @@ class Link extends Model
$content .= $iconLink;
$url = 'link_goto.php?' . api_get_cidreq() .'&link_id=' . $myrow['id'] . "&link_url=" . urlencode($myrow['url']);
$content .= Display::tag(
'a',
Security:: remove_XSS($myrow['title']),
array(
'href' => $url,
'target' => '_blank',
'class' => 'invisible'
)
);
'a',
Security:: remove_XSS($myrow['title']),
array(
'href' => $url,
'target' => '_blank',
'class' => 'invisible'
)
);
$content .= $link_validator;
$content .= $session_img;
$content .= '</h4>';
@ -1285,16 +1282,11 @@ class Link extends Model
$result
))
) {
Database:: query(
"UPDATE $tbl_link set title='" . Database:: escape_string(
$title
) . "', description='" . Database:: escape_string(
$description
) . "'
WHERE c_id = $course_id AND id='" . Database:: escape_string(
$row['id']
) . "'"
);
$sql = "UPDATE $tbl_link SET
title = '" . Database:: escape_string($title) . "',
description = '" . Database:: escape_string($description) . "'
WHERE c_id = $course_id AND id='" . Database:: escape_string($row['id']) . "'";
Database:: query($sql);
$ipu = 'LinkUpdated';
$rv = 1; // 1 = upd
@ -1321,6 +1313,7 @@ class Link extends Model
$ipu = 'LinkAdded';
$rv = 2; // 2 = new
}
api_item_property_update(
$_course,
TOOL_LINK,
@ -1338,6 +1331,7 @@ class Link extends Model
$_user['user_id']
);
}
return $rv;
}
@ -1421,7 +1415,6 @@ class Link extends Model
// i.e. allow some BBcode tags, e.g. [b]...[/b]
}
/**
* This function checks if the url is a vimeo link
* @author Julio Montoya
@ -1430,6 +1423,7 @@ class Link extends Model
public static function isVimeoLink($url)
{
$isLink = strrpos($url, "vimeo.com");
return $isLink;
}
@ -1463,9 +1457,9 @@ class Link extends Model
public static function is_youtube_link($url)
{
$is_youtube_link = strrpos($url, "youtube") || strrpos(
$url,
"youtu.be"
);
$url,
"youtu.be"
);
return $is_youtube_link;
}
@ -1622,8 +1616,8 @@ class Link extends Model
/**
* @param int $linkId
* @param $action
* @param null $urlview
* @param null $token
*
* @return FormValidator
*/
public static function getLinkForm($linkId, $action, $token = null)

@ -14,11 +14,11 @@ class LpItem
public $c_id = 0;
public $id = 0;
public $lp_id = 0;
public $item_type = "";
public $ref = "";
public $title = "";
public $description = "";
public $path = "";
public $item_type = '';
public $ref = '';
public $title = '';
public $description = '';
public $path = '';
public $min_score = 0;
public $max_score = 0;
public $mastery_score = 0;
@ -26,15 +26,15 @@ class LpItem
public $previous_item_id = 0;
public $next_item_id = 0;
public $display_order = 0;
public $prerequisite = "";
public $parameters = "";
public $launch_data = "";
public $max_time_allowed = "";
public $terms = "";
public $prerequisite = '';
public $parameters = '';
public $launch_data = '';
public $max_time_allowed = '';
public $terms = '';
public $search_did = 0;
public $audio = "";
public $audio = '';
public function __construct($in_c_id=0, $in_id=0)
public function __construct($in_c_id = 0, $in_id = 0)
{
if ($in_c_id > 0 && $in_id >0) {
$item_view_table = Database::get_course_table(TABLE_LP_ITEM);

@ -227,8 +227,7 @@ class MessageManager
$topic_id = 0,
$sender_id = null,
$directMessage = false
)
{
) {
$table_message = Database::get_main_table(TABLE_MESSAGE);
$group_id = intval($group_id);
$receiver_user_id = intval($receiver_user_id);
@ -435,8 +434,7 @@ class MessageManager
$sender_id = null,
$sendCopyToDrhUsers = false,
$directMessage = false
)
{
) {
$result = MessageManager::send_message(
$receiver_user_id,
$subject,
@ -521,8 +519,9 @@ class MessageManager
public static function delete_message_by_user_receiver($user_receiver_id, $id)
{
$table_message = Database::get_main_table(TABLE_MESSAGE);
if ($id != strval(intval($id)))
if ($id != strval(intval($id))) {
return false;
}
$user_receiver_id = intval($user_receiver_id);
$id = intval($id);
$sql = "SELECT * FROM $table_message
@ -536,6 +535,7 @@ class MessageManager
$query = "UPDATE $table_message SET msg_status=3
WHERE user_receiver_id=" . $user_receiver_id . " AND id=" . $id;
$result = Database::query($query);
return $result;
} else {
return false;
@ -594,8 +594,7 @@ class MessageManager
$receiver_user_id = 0,
$sender_user_id = 0,
$group_id = 0
)
{
) {
$tbl_message_attach = Database::get_main_table(TABLE_MESSAGE_ATTACHMENT);
// Try to add an extension to the file if it hasn't one
@ -745,6 +744,7 @@ class MessageManager
$query = "SELECT * FROM $table_message
WHERE user_receiver_id=" . intval($user_id) . " AND id='" . intval($message_id) . "'";
$result = Database::query($query);
return $row = Database::fetch_array($result);
}
@ -755,8 +755,9 @@ class MessageManager
*/
public static function get_messages_by_group($group_id)
{
if ($group_id != strval(intval($group_id)))
if ($group_id != strval(intval($group_id))) {
return false;
}
$table_message = Database::get_main_table(TABLE_MESSAGE);
$group_id = intval($group_id);
@ -783,8 +784,9 @@ class MessageManager
*/
public static function get_messages_by_group_by_message($group_id, $message_id)
{
if ($group_id != strval(intval($group_id)))
if ($group_id != strval(intval($group_id))) {
return false;
}
$table_message = Database::get_main_table(TABLE_MESSAGE);
$group_id = intval($group_id);
$sql = "SELECT * FROM $table_message

@ -534,7 +534,7 @@ class Plugin
/**
* Install the course fields and tool link of this plugin in all courses
* @param boolean Whether we want to add a plugin link on the course homepage
* @param boolean $add_tool_link Whether we want to add a plugin link on the course homepage
*
* @return void
*/

@ -1,6 +1,7 @@
<?php
/**
* @deprecated
* Class Rights
* @deprecated Don't use this class
*/

@ -44,7 +44,8 @@ class Security
* Checks if the absolute path (directory) given is really under the
* checker path (directory)
* @param string Absolute path to be checked (with trailing slash)
* @param string Checker path under which the path should be (absolute path, with trailing slash, get it from api_get_path(SYS_COURSE_PATH))
* @param string Checker path under which the path
* should be (absolute path, with trailing slash, get it from api_get_path(SYS_COURSE_PATH))
* @return bool True if the path is under the checker, false otherwise
*/
public static function check_abs_path($abs_path, $checker_path)
@ -77,7 +78,8 @@ class Security
* Checks if the relative path (directory) given is really under the
* checker path (directory)
* @param string Relative path to be checked (relative to the current directory) (with trailing slash)
* @param string Checker path under which the path should be (absolute path, with trailing slash, get it from api_get_path(SYS_COURSE_PATH))
* @param string Checker path under which the path
* should be (absolute path, with trailing slash, get it from api_get_path(SYS_COURSE_PATH))
* @return bool True if the path is under the checker, false otherwise
*/
public static function check_rel_path($rel_path, $checker_path)
@ -156,7 +158,7 @@ class Security
*/
public static function check_ua()
{
if (isset($_SESSION['sec_ua']) and $_SESSION['sec_ua'] === $_SERVER['HTTP_USER_AGENT'].$_SESSION['sec_ua_seed']) {
if (isset($_SESSION['sec_ua']) && $_SESSION['sec_ua'] === $_SERVER['HTTP_USER_AGENT'].$_SESSION['sec_ua_seed']) {
return true;
}
@ -428,7 +430,7 @@ class Security
$new_text = str_ireplace($bad_terms, $replace, $text, $count);
$text = $new_text;
}
return $text;
}

@ -1,6 +1,8 @@
<?php
/* For licensing terms, see /license.txt */
use ChamiloSession as Session;
/**
* This class allows you to display a sortable data-table. It is possible to
* split the data in several pages.
@ -131,13 +133,12 @@ class SortableTable extends HTML_Table
$this->additional_parameters = array();
$this->param_prefix = $table_name.'_';
$this->page_nr = isset($_SESSION[$this->param_prefix.'page_nr']) ? intval($_SESSION[$this->param_prefix.'page_nr']) : 1;
$this->page_nr = Session::read($this->param_prefix.'page_nr', 1);
$this->page_nr = isset($_GET[$this->param_prefix.'page_nr']) ? intval($_GET[$this->param_prefix.'page_nr']) : $this->page_nr;
$this->column = isset($_SESSION[$this->param_prefix.'column']) ? intval($_SESSION[$this->param_prefix.'column']) : $default_column;
$this->column = isset($_GET[$this->param_prefix.'column']) ? intval($_GET[$this->param_prefix.'column']) : $this->column;
$this->column = Session::read($this->param_prefix.'column', $default_column);
$this->column = isset($_GET[$this->param_prefix.'column']) ? intval($_GET[$this->param_prefix.'column']) : $this->column;
// Default direction.
if (in_array(strtoupper($default_order_direction), array('ASC', 'DESC'))) {
$this->direction = $default_order_direction;
}
@ -169,15 +170,16 @@ class SortableTable extends HTML_Table
}
// Allow to change paginate in multiples tabs
unset($_SESSION[$this->param_prefix.'per_page']);
Session::erase($this->param_prefix.'per_page');
$this->per_page = isset($_SESSION[$this->param_prefix.'per_page']) ? intval($_SESSION[$this->param_prefix.'per_page']) : $default_items_per_page;
$this->per_page = Session::read($this->param_prefix.'per_page', $default_items_per_page);
$this->per_page = isset($_GET[$this->param_prefix.'per_page']) ? intval($_GET[$this->param_prefix.'per_page']) : $this->per_page;
$_SESSION[$this->param_prefix.'per_page'] = $this->per_page;
$_SESSION[$this->param_prefix.'direction'] = $this->direction;
$_SESSION[$this->param_prefix.'page_nr'] = $this->page_nr;
$_SESSION[$this->param_prefix.'column'] = $this->column;
Session::write($this->param_prefix.'per_page', $this->per_page);
Session::write($this->param_prefix.'direction', $this->direction);
Session::write($this->param_prefix.'page_nr', $this->page_nr);
Session::write($this->param_prefix.'column', $this->column);
$this->pager = null;
$this->default_items_per_page = $default_items_per_page;
$this->total_number_of_items = -1;

@ -17,10 +17,10 @@ class SystemAnnouncementManager
*/
public static function display_announcements($visible, $id = -1)
{
$user_selected_language = api_get_interface_language();
$db_table = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS);
$user_selected_language = api_get_interface_language();
$db_table = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS);
$tbl_announcement_group = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS_GROUPS);
$userGroup = new UserGroup();
$userGroup = new UserGroup();
$temp_user_groups = $userGroup->get_groups_by_user(api_get_user_id(),0);
$groups = array();
@ -32,10 +32,10 @@ class SystemAnnouncementManager
$groups_string = '('.implode($groups,',').')';
$now = api_get_utc_datetime();
$sql = "SELECT *, DATE_FORMAT(date_start,'%d-%m-%Y %h:%i:%s') 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') ";
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 self::VISIBLE_GUEST :
@ -55,47 +55,47 @@ class SystemAnnouncementManager
WHERE group_id in $groups_string
) ";
}
$current_access_url_id = 1;
if (api_is_multiple_url_enabled()) {
$current_access_url_id = api_get_current_access_url_id();
}
$sql .= " AND access_url_id = '$current_access_url_id' ";
$sql .= " ORDER BY date_start DESC LIMIT 0,7";
$announcements = Database::query($sql);
if (Database::num_rows($announcements) > 0) {
$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 '<div style="margin:10px;text-align:right;"><a href="news_list.php">'.get_lang('More').'</a></div>';
while ($announcement = Database::fetch_object($announcements)) {
if ($id != $announcement->id) {
if (strlen($query_string) > 0) {
$show_url = 'news_list.php#'.$announcement->id;
} else {
$show_url = 'news_list.php#'.$announcement->id;
}
$display_date = api_convert_and_format_date($announcement->display_date, DATE_FORMAT_LONG);
echo '<a name="'.$announcement->id.'"></a>
<div class="system_announcement">
<div class="system_announcement_title"><a name="ann'.$announcement->id.'" href="'.$show_url.'">'.$announcement->title.'</a></div><div class="system_announcement_date">'.$display_date.'</div>
</div>';
} 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>';
}
echo '<br />';
}
echo '</div>';
}
return;
}
$current_access_url_id = 1;
if (api_is_multiple_url_enabled()) {
$current_access_url_id = api_get_current_access_url_id();
}
$sql .= " AND access_url_id = '$current_access_url_id' ";
$sql .= " ORDER BY date_start DESC LIMIT 0,7";
$announcements = Database::query($sql);
if (Database::num_rows($announcements) > 0) {
$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 '<div style="margin:10px;text-align:right;"><a href="news_list.php">'.get_lang('More').'</a></div>';
while ($announcement = Database::fetch_object($announcements)) {
if ($id != $announcement->id) {
if (strlen($query_string) > 0) {
$show_url = 'news_list.php#'.$announcement->id;
} else {
$show_url = 'news_list.php#'.$announcement->id;
}
$display_date = api_convert_and_format_date($announcement->display_date, DATE_FORMAT_LONG);
echo '<a name="'.$announcement->id.'"></a>
<div class="system_announcement">
<div class="system_announcement_title"><a name="ann'.$announcement->id.'" href="'.$show_url.'">'.$announcement->title.'</a></div><div class="system_announcement_date">'.$display_date.'</div>
</div>';
} 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>';
}
echo '<br />';
}
echo '</div>';
}
return;
}
/**
* @param $visible
@ -106,100 +106,100 @@ class SystemAnnouncementManager
*/
public static function display_all_announcements($visible, $id = -1, $start = 0,$user_id='')
{
$user_selected_language = api_get_interface_language();
$start = intval($start);
$user_selected_language = api_get_interface_language();
$start = intval($start);
$userGroup = new UserGroup();
$tbl_announcement_group = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS_GROUPS);
$temp_user_groups = $userGroup->get_groups_by_user(api_get_user_id(),0);
$tbl_announcement_group = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS_GROUPS);
$temp_user_groups = $userGroup->get_groups_by_user(api_get_user_id(),0);
$groups = array();
foreach ($temp_user_groups as $user_group) {
$groups = array_merge($groups, array($user_group['id']));
$groups = array_merge($groups, $userGroup->get_parent_groups($user_group['id']));
}
foreach ($temp_user_groups as $user_group) {
$groups = array_merge($groups, array($user_group['id']));
$groups = array_merge($groups, $userGroup->get_parent_groups($user_group['id']));
}
// Checks if tables exists to not break platform not updated
$groups_string = '('.implode($groups,',').')';
// Checks if tables exists to not break platform not updated
$groups_string = '('.implode($groups,',').')';
$db_table = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS);
$now = api_get_utc_datetime();
$db_table = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS);
$now = api_get_utc_datetime();
$sql = "SELECT * FROM ".$db_table."
WHERE
(lang = '$user_selected_language' OR lang IS NULL) AND
( '$now' >= date_start AND '$now' <= date_end) ";
switch ($visible) {
case self::VISIBLE_GUEST :
$sql .= " AND visible_guest = 1 ";
break;
case self::VISIBLE_STUDENT :
$sql .= " AND visible_student = 1 ";
break;
case self::VISIBLE_TEACHER :
$sql .= " AND visible_teacher = 1 ";
break;
}
$sql = "SELECT * FROM ".$db_table."
WHERE
(lang = '$user_selected_language' OR lang IS NULL) AND
( '$now' >= date_start AND '$now' <= date_end) ";
if (count($groups) > 0) {
switch ($visible) {
case self::VISIBLE_GUEST:
$sql .= " AND visible_guest = 1 ";
break;
case self::VISIBLE_STUDENT:
$sql .= " AND visible_student = 1 ";
break;
case self::VISIBLE_TEACHER:
$sql .= " AND visible_teacher = 1 ";
break;
}
if (count($groups) > 0) {
$sql .= " OR id IN (
SELECT announcement_id FROM $tbl_announcement_group
WHERE group_id in $groups_string
) ";
}
}
if (api_is_multiple_url_enabled()) {
$current_access_url_id = api_get_current_access_url_id();
if (api_is_multiple_url_enabled()) {
$current_access_url_id = api_get_current_access_url_id();
$sql .= " AND access_url_id IN ('1', '$current_access_url_id')";
}
}
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 = Database::query($sql);
$content = '';
if (Database::num_rows($announcements) > 0) {
$query_string = ereg_replace('announcement=[1-9]+', '', $_SERVER['QUERY_STRING']);
$query_string = ereg_replace('&$', '', $query_string);
$url = api_get_self();
$content .= '<div class="system_announcements">';
$content .= '<h3>'.get_lang('SystemAnnouncements').'</h3>';
$content .= '<table align="center">';
$content .= '<tr>';
$content .= '<td>';
$content .= SystemAnnouncementManager :: display_arrow($user_id);
$content .= '</td>';
$content .= '</tr>';
$content .= '</table>';
$content .= '<table align="center" border="0" width="900px">';
while ($announcement = Database::fetch_object($announcements)) {
$display_date = api_convert_and_format_date($announcement->display_date, DATE_FORMAT_LONG);
$content .= '<tr><td>';
$content .= '<a name="'.$announcement->id.'"></a>
<div class="system_announcement">
<h2>'.$announcement->title.'</h2><div class="system_announcement_date">'.$display_date.'</div>
<br />
<div class="system_announcement_content">'
.$announcement->content.'
</div>
</div><br />';
$content .= '</tr></td>';
}
$content .= '</table>';
$content .= '<table align="center">';
$content .= '<tr>';
$content .= '<td>';
$content .= SystemAnnouncementManager :: display_arrow($user_id);
$content .= '</td>';
$content .= '</tr>';
$content .= '</table>';
$content .= '</div>';
}
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 = Database::query($sql);
$content = '';
if (Database::num_rows($announcements) > 0) {
$query_string = ereg_replace('announcement=[1-9]+', '', $_SERVER['QUERY_STRING']);
$query_string = ereg_replace('&$', '', $query_string);
$url = api_get_self();
$content .= '<div class="system_announcements">';
$content .= '<h3>'.get_lang('SystemAnnouncements').'</h3>';
$content .= '<table align="center">';
$content .= '<tr>';
$content .= '<td>';
$content .= SystemAnnouncementManager :: display_arrow($user_id);
$content .= '</td>';
$content .= '</tr>';
$content .= '</table>';
$content .= '<table align="center" border="0" width="900px">';
while ($announcement = Database::fetch_object($announcements)) {
$display_date = api_convert_and_format_date($announcement->display_date, DATE_FORMAT_LONG);
$content .= '<tr><td>';
$content .= '<a name="'.$announcement->id.'"></a>
<div class="system_announcement">
<h2>'.$announcement->title.'</h2><div class="system_announcement_date">'.$display_date.'</div>
<br />
<div class="system_announcement_content">'
.$announcement->content.'
</div>
</div><br />';
$content .= '</tr></td>';
}
$content .= '</table>';
$content .= '<table align="center">';
$content .= '<tr>';
$content .= '<td>';
$content .= SystemAnnouncementManager :: display_arrow($user_id);
$content .= '</td>';
$content .= '</tr>';
$content .= '</table>';
$content .= '</div>';
}
return $content;
}
return $content;
}
/**
* @param int $user_id
@ -207,23 +207,23 @@ class SystemAnnouncementManager
*/
public static function display_arrow($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);
$content = '';
if(!isset($_GET['start']) || $_GET['start'] == 0) {
if($nb_announcement > 20) {
$content .= '<a href="news_list.php?start='.$next.'">'.get_lang('NextBis').' >> </a>';
}
} else {
echo '<a href="news_list.php?start='.$prev.'"> << '.get_lang('Prev').'</a>';
if ($nb_announcement > 20) {
$content .= '<a href="news_list.php?start='.$next.'">'.get_lang('NextBis').' >> </a>';
}
}
return $content;
}
$start = (int)$_GET['start'];
$nb_announcement = SystemAnnouncementManager :: count_nb_announcement($start,$user_id);
$next = ((int)$_GET['start']+19);
$prev = ((int)$_GET['start']-19);
$content = '';
if(!isset($_GET['start']) || $_GET['start'] == 0) {
if($nb_announcement > 20) {
$content .= '<a href="news_list.php?start='.$next.'">'.get_lang('NextBis').' >> </a>';
}
} else {
echo '<a href="news_list.php?start='.$prev.'"> << '.get_lang('Prev').'</a>';
if ($nb_announcement > 20) {
$content .= '<a href="news_list.php?start='.$next.'">'.get_lang('NextBis').' >> </a>';
}
}
return $content;
}
/**
* @param int $start
@ -232,82 +232,82 @@ class SystemAnnouncementManager
*/
public static function count_nb_announcement($start = 0, $user_id = '')
{
$start = intval($start);
$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 self::VISIBLE_GUEST :
$sql .= " AND visible_guest = 1 ";
break;
case self::VISIBLE_STUDENT :
$sql .= " AND visible_student = 1 ";
break;
case self::VISIBLE_TEACHER :
$sql .= " AND visible_teacher = 1 ";
break;
}
}
$current_access_url_id = 1;
if (api_is_multiple_url_enabled()) {
$current_access_url_id = api_get_current_access_url_id();
}
$sql .= " AND access_url_id = '$current_access_url_id' ";
$start = intval($start);
$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 self::VISIBLE_GUEST:
$sql .= " AND visible_guest = 1 ";
break;
case self::VISIBLE_STUDENT:
$sql .= " AND visible_student = 1 ";
break;
case self::VISIBLE_TEACHER:
$sql .= " AND visible_teacher = 1 ";
break;
}
}
$current_access_url_id = 1;
if (api_is_multiple_url_enabled()) {
$current_access_url_id = api_get_current_access_url_id();
}
$sql .= " AND access_url_id = '$current_access_url_id' ";
$sql .= 'LIMIT '.$start.', 21';
$announcements = Database::query($sql);
$i = 0;
while ($rows = Database::fetch_array($announcements)) {
$i++;
}
return $i;
}
/**
* Get all announcements
* @return array An array with all available system announcements (as php
* objects)
*/
public static function get_all_announcements()
$sql .= 'LIMIT '.$start.', 21';
$announcements = Database::query($sql);
$i = 0;
while ($rows = Database::fetch_array($announcements)) {
$i++;
}
return $i;
}
/**
* Get all announcements
* @return array An array with all available system announcements (as php
* objects)
*/
public static function get_all_announcements()
{
$table = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS);
$now = api_get_utc_datetime();
$sql = "SELECT *, IF ( '$now' >= date_start AND '$now' <= date_end, '1', '0') AS visible
FROM $table";
$table = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS);
$now = api_get_utc_datetime();
$sql = "SELECT *, IF ( '$now' >= date_start AND '$now' <= date_end, '1', '0') AS visible
FROM $table";
$current_access_url_id = 1;
if (api_is_multiple_url_enabled()) {
$current_access_url_id = api_get_current_access_url_id();
}
$sql .= " WHERE access_url_id = '$current_access_url_id' ";
$sql .= " ORDER BY date_start ASC";
$current_access_url_id = 1;
if (api_is_multiple_url_enabled()) {
$current_access_url_id = api_get_current_access_url_id();
}
$sql .= " WHERE access_url_id = '$current_access_url_id' ";
$sql .= " ORDER BY date_start ASC";
$announcements = Database::query($sql);
$all_announcements = array();
while ($announcement = Database::fetch_object($announcements)) {
$all_announcements[] = $announcement;
}
return $all_announcements;
}
$announcements = Database::query($sql);
$all_announcements = array();
while ($announcement = Database::fetch_object($announcements)) {
$all_announcements[] = $announcement;
}
return $all_announcements;
}
/**
* Adds an announcement to the database
* @param string Title of the announcement
* @param string Content of the announcement
* @param string Start date (YYYY-MM-DD HH:II: SS)
* @param string End date (YYYY-MM-DD HH:II: SS)
* @param int Whether the announcement should be visible to teachers (1) or not (0)
* @param int Whether the announcement should be visible to students (1) or not (0)
* @param int Whether the announcement should be visible to anonymous users (1) or not (0)
* @param string The language for which the announvement should be shown. Leave null for all langages
* @param int Whether to send an e-mail to all users (1) or not (0)
* @return mixed insert_id on success, false on failure
*/
/**
* Adds an announcement to the database
* @param string Title of the announcement
* @param string Content of the announcement
* @param string Start date (YYYY-MM-DD HH:II: SS)
* @param string End date (YYYY-MM-DD HH:II: SS)
* @param int Whether the announcement should be visible to teachers (1) or not (0)
* @param int Whether the announcement should be visible to students (1) or not (0)
* @param int Whether the announcement should be visible to anonymous users (1) or not (0)
* @param string The language for which the announvement should be shown. Leave null for all langages
* @param int Whether to send an e-mail to all users (1) or not (0)
* @return mixed insert_id on success, false on failure
*/
public static function add_announcement(
$title,
$content,
@ -321,114 +321,112 @@ class SystemAnnouncementManager
$add_to_calendar = false,
$sendEmailTest = false
) {
$original_content = $content;
$a_dateS = explode(' ',$date_start);
$a_arraySD = explode('-',$a_dateS[0]);
$a_arraySH = explode(':',$a_dateS[1]);
$date_start_to_compare = array_merge($a_arraySD,$a_arraySH);
$original_content = $content;
$a_dateS = explode(' ', $date_start);
$a_arraySD = explode('-', $a_dateS[0]);
$a_arraySH = explode(':', $a_dateS[1]);
$date_start_to_compare = array_merge($a_arraySD, $a_arraySH);
$a_dateE = explode(' ',$date_end);
$a_arrayED = explode('-',$a_dateE[0]);
$a_arrayEH = explode(':',$a_dateE[1]);
$date_end_to_compare = array_merge($a_arrayED,$a_arrayEH);
$a_dateE = explode(' ', $date_end);
$a_arrayED = explode('-', $a_dateE[0]);
$a_arrayEH = explode(':', $a_dateE[1]);
$date_end_to_compare = array_merge($a_arrayED, $a_arrayEH);
$db_table = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS);
$db_table = Database :: get_main_table(TABLE_MAIN_SYSTEM_ANNOUNCEMENTS);
if (!checkdate($date_start_to_compare[1], $date_start_to_compare[2], $date_start_to_compare[0])) {
Display :: display_normal_message(get_lang('InvalidStartDate'));
return false;
}
if (!checkdate($date_start_to_compare[1], $date_start_to_compare[2], $date_start_to_compare[0])) {
Display :: display_normal_message(get_lang('InvalidStartDate'));
return false;
}
if (($date_end_to_compare[1] ||
if (($date_end_to_compare[1] ||
$date_end_to_compare[2] ||
$date_end_to_compare[0]) &&
!checkdate($date_end_to_compare[1], $date_end_to_compare[2], $date_end_to_compare[0])
) {
Display :: display_normal_message(get_lang('InvalidEndDate'));
return false;
}
if (strlen(trim($title)) == 0) {
Display::display_normal_message(get_lang('InvalidTitle'));
return false;
}
Display :: display_normal_message(get_lang('InvalidEndDate'));
return false;
}
if (strlen(trim($title)) == 0) {
Display::display_normal_message(get_lang('InvalidTitle'));
return false;
}
$start = api_get_utc_datetime($date_start);
$start = api_get_utc_datetime($date_start);
$end = api_get_utc_datetime($date_end);
//Fixing urls that are sent by email
//$content = str_replace('src=\"/home/', 'src=\"'.api_get_path(WEB_PATH).'home/', $content);
//$content = str_replace('file=/home/', 'file='.api_get_path(WEB_PATH).'home/', $content);
$content = str_replace('src=\"'.api_get_path(REL_HOME_PATH), 'src=\"'.api_get_path(WEB_PATH).api_get_path(REL_HOME_PATH), $content);
$content = str_replace('file='.api_get_path(REL_HOME_PATH), 'file='.api_get_path(WEB_PATH).api_get_path(REL_HOME_PATH), $content);
//Fixing urls that are sent by email
//$content = str_replace('src=\"/home/', 'src=\"'.api_get_path(WEB_PATH).'home/', $content);
//$content = str_replace('file=/home/', 'file='.api_get_path(WEB_PATH).'home/', $content);
$content = str_replace('src=\"'.api_get_path(REL_HOME_PATH), 'src=\"'.api_get_path(WEB_PATH).api_get_path(REL_HOME_PATH), $content);
$content = str_replace('file='.api_get_path(REL_HOME_PATH), 'file='.api_get_path(WEB_PATH).api_get_path(REL_HOME_PATH), $content);
$lang = is_null($lang) ? '' : $lang;
$current_access_url_id = 1;
if (api_is_multiple_url_enabled()) {
$current_access_url_id = api_get_current_access_url_id();
}
$params = [
'title' => $title,
'content' => $content,
'date_start' => $start,
'date_end' => $end,
'visible_teacher' => $visible_teacher,
'visible_student' => $visible_student,
'visible_guest' => $visible_guest,
'lang' => $lang,
'access_url_id' => $current_access_url_id,
];
$lang = is_null($lang) ? '' : $lang;
$resultId = Database::insert($db_table, $params);
$current_access_url_id = 1;
if (api_is_multiple_url_enabled()) {
$current_access_url_id = api_get_current_access_url_id();
}
if ($resultId) {
$params = [
'title' => $title,
'content' => $content,
'date_start' => $start,
'date_end' => $end,
'visible_teacher' => $visible_teacher,
'visible_student' => $visible_student,
'visible_guest' => $visible_guest,
'lang' => $lang,
'access_url_id' => $current_access_url_id,
];
$resultId = Database::insert($db_table, $params);
if ($resultId) {
if ($sendEmailTest) {
SystemAnnouncementManager::send_system_announcement_by_email(
$title,
$content,
$visible_teacher,
$visible_student,
$lang,
true
);
} else {
if ($send_mail == 1) {
SystemAnnouncementManager::send_system_announcement_by_email(
$title,
$content,
$visible_teacher,
$visible_student,
$lang
);
}
}
if ($add_to_calendar) {
$agenda = new Agenda();
$agenda->setType('admin');
$agenda->addEvent(
$date_start,
$date_end,
false,
$title,
$original_content
);
}
return $resultId;
if ($sendEmailTest) {
SystemAnnouncementManager::send_system_announcement_by_email(
$title,
$content,
$visible_teacher,
$visible_student,
$lang,
true
);
} else {
if ($send_mail == 1) {
SystemAnnouncementManager::send_system_announcement_by_email(
$title,
$content,
$visible_teacher,
$visible_student,
$lang
);
}
}
}
if ($add_to_calendar) {
$agenda = new Agenda();
$agenda->setType('admin');
$agenda->addEvent(
$date_start,
$date_end,
false,
$title,
$original_content
);
}
return false;
}
return $resultId;
}
return false;
}
/**
* Makes the announcement id visible only for groups in groups_array
* @param int announcement id
* @param array array of group id
* @param int $announcement_id
* @param array $group_array array of group id
**/
public static function announcement_for_groups($announcement_id, $group_array)
{
@ -437,9 +435,8 @@ class SystemAnnouncementManager
);
//first delete all group associations for this announcement
$res = Database::query(
"DELETE FROM $tbl_announcement_group WHERE announcement_id=".intval(
$announcement_id
)
"DELETE FROM $tbl_announcement_group
WHERE announcement_id=".intval($announcement_id)
);
if ($res === false) {
@ -482,6 +479,7 @@ class SystemAnnouncementManager
ag.group_id = g.id";
$res = Database::query($sql);
$groups = Database::fetch_array($res);
return $groups;
}
@ -509,22 +507,23 @@ class SystemAnnouncementManager
) {
$em = Database::getManager();
$a_dateS = explode(' ',$date_start);
$a_arraySD = explode('-',$a_dateS[0]);
$a_arraySH = explode(':',$a_dateS[1]);
$date_start_to_compare = array_merge($a_arraySD,$a_arraySH);
$a_dateS = explode(' ', $date_start);
$a_arraySD = explode('-', $a_dateS[0]);
$a_arraySH = explode(':', $a_dateS[1]);
$date_start_to_compare = array_merge($a_arraySD, $a_arraySH);
$a_dateE = explode(' ',$date_end);
$a_arrayED = explode('-',$a_dateE[0]);
$a_arrayEH = explode(':',$a_dateE[1]);
$date_end_to_compare = array_merge($a_arrayED,$a_arrayEH);
$a_dateE = explode(' ', $date_end);
$a_arrayED = explode('-', $a_dateE[0]);
$a_arrayEH = explode(':', $a_dateE[1]);
$date_end_to_compare = array_merge($a_arrayED, $a_arrayEH);
$lang = is_null($lang) ? '' : $lang;
if (!checkdate($date_start_to_compare[1], $date_start_to_compare[2], $date_start_to_compare[0])) {
Display :: display_normal_message(get_lang('InvalidStartDate'));
return false;
}
if (!checkdate($date_start_to_compare[1], $date_start_to_compare[2], $date_start_to_compare[0])) {
Display:: display_normal_message(get_lang('InvalidStartDate'));
return false;
}
if (($date_end_to_compare[1] ||
$date_end_to_compare[2] ||
@ -670,8 +669,14 @@ class SystemAnnouncementManager
* @param string Language (optional, considered for all languages if left empty)
* @return bool True if the message was sent or there was no destination matching. False on database or e-mail sending error.
*/
public static function send_system_announcement_by_email($title, $content, $teacher, $student, $language = null, $sendEmailTest = false)
{
public static function send_system_announcement_by_email(
$title,
$content,
$teacher,
$student,
$language = null,
$sendEmailTest = false
) {
global $charset;
$title = api_html_entity_decode(stripslashes($title), ENT_QUOTES, $charset);
@ -753,13 +758,13 @@ class SystemAnnouncementManager
('$now' >= date_start AND '$now' <= date_end) ";
switch ($visible) {
case self::VISIBLE_GUEST :
case self::VISIBLE_GUEST:
$sql .= " AND visible_guest = 1 ";
break;
case self::VISIBLE_STUDENT :
case self::VISIBLE_STUDENT:
$sql .= " AND visible_student = 1 ";
break;
case self::VISIBLE_TEACHER :
case self::VISIBLE_TEACHER:
$sql .= " AND visible_teacher = 1 ";
break;
}

@ -408,6 +408,7 @@ class Thematic
);
}
}
return $affected_rows;
}
@ -654,6 +655,7 @@ class Thematic
$return .= '</div>';
$final_return[$thematic_id] = $return;
}
return $final_return;
}
@ -668,9 +670,7 @@ class Thematic
) {
$course_info = api_get_course_info($course_code);
$tbl_thematic_advance = Database::get_course_table(TABLE_THEMATIC_ADVANCE);
$data = array();
$condition = '';
if (isset($thematic_advance_id)) {
$thematic_advance_id = intval($thematic_advance_id);
@ -691,7 +691,7 @@ class Thematic
api_get_session_id()
);
foreach ($list as $value) {
$elements[$value['ref']]= $value;
$elements[$value['ref']] = $value;
}
}
@ -1157,9 +1157,7 @@ class Thematic
);
if ($item_info['session_id'] == $sessionId) {
$a_thematic_advance_ids[] = $thematic_advance['id'];
// update done thematic for previous advances ((done_advance = 1))
$upd = "UPDATE $tbl_thematic_advance SET
done_advance = 1
@ -1321,7 +1319,10 @@ class Thematic
if (!empty($thematic_data)) {
foreach ($thematic_data as $thematic) {
$thematic_id = $thematic['id'];
$a_average_of_advances_by_thematic[$thematic_id] = $this->get_average_of_advances_by_thematic($thematic_id, $course_code);
$a_average_of_advances_by_thematic[$thematic_id] = $this->get_average_of_advances_by_thematic(
$thematic_id,
$course_code
);
}
}
@ -1331,6 +1332,7 @@ class Thematic
$score = array_sum($a_average_of_advances_by_thematic);
$total_average = round(($score * 100) / ($count_tematics * 100));
}
return $total_average;
}

@ -80,22 +80,22 @@ class UrlManager
$tableGroup = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USERGROUP);
$sql = "DELETE FROM $tableCourse WHERE access_url_id = ".$id;
$result = Database::query($sql);
Database::query($sql);
/*
$sql = "DELETE FROM $tableCourseCategory WHERE access_url_id = ".$id;
$result = Database::query($sql);
Database::query($sql);
*/
$sql = "DELETE FROM $tableSession WHERE access_url_id = ".$id;
$result = Database::query($sql);
Database::query($sql);
$sql = "DELETE FROM $tableGroup WHERE access_url_id = ".$id;
$result = Database::query($sql);
Database::query($sql);
$sql = "DELETE FROM $tableUser WHERE access_url_id = ".$id;
$result = Database::query($sql);
Database::query($sql);
$sql= "DELETE FROM $table WHERE id = ".$id;
$result = Database::query($sql);
Database::query($sql);
return $result;
return true;
}
/**
@ -281,8 +281,9 @@ class UrlManager
$table_url_rel_session = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
if (!empty($access_url_id))
$where ="WHERE $table_url_rel_session.access_url_id = ".intval($access_url_id);
if (!empty($access_url_id)) {
$where = "WHERE $table_url_rel_session.access_url_id = ".intval($access_url_id);
}
$sql = "SELECT id, name, access_url_id
FROM $tbl_session u
@ -430,8 +431,9 @@ class UrlManager
{
$table = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USERGROUP);
$sql= "SELECT usergroup_id FROM $table
WHERE access_url_id = ".intval($urlId)." AND
usergroup_id = ".intval($userGroupId);
WHERE
access_url_id = ".intval($urlId)." AND
usergroup_id = ".intval($userGroupId);
$result = Database::query($sql);
$num = Database::num_rows($result);
@ -472,13 +474,15 @@ class UrlManager
$table_url_rel_user = Database :: get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$result_array = array();
if (is_array($user_list) && is_array($url_list)){
if (is_array($user_list) && is_array($url_list)) {
foreach ($url_list as $url_id) {
foreach ($user_list as $user_id) {
$count = UrlManager::relation_url_user_exist($user_id,$url_id);
if ($count==0) {
if ($count == 0) {
$sql = "INSERT INTO $table_url_rel_user
SET user_id = ".intval($user_id).", access_url_id = ".intval($url_id);
SET
user_id = ".intval($user_id).",
access_url_id = ".intval($url_id);
$result = Database::query($sql);
if ($result) {
$result_array[$url_id][$user_id] = 1;
@ -643,14 +647,15 @@ class UrlManager
return Database::insert_id();
}
return 0;
}
/**
* Add a group of sessions into a group of URLs
* @author Julio Montoya
* @param array of session ids
* @param array of url_ids
* @param array $session_list of session ids
* @param array $url_list of url_ids
* @return array
* */
public static function add_sessions_to_urls($session_list, $url_list)
@ -873,8 +878,8 @@ class UrlManager
/**
* Updates the access_url_rel_user table with a given user list
* @author Julio Montoya
* @param array user list
* @param int access_url_id
* @param array $user_list
* @param int $access_url_id
* */
public static function update_urls_rel_user($user_list, $access_url_id)
{
@ -954,8 +959,8 @@ class UrlManager
/**
* Updates the access_url_rel_course table with a given user list
* @author Julio Montoya
* @param array user list
* @param int access_url_id
* @param array $userGroupList user list
* @param int $urlId
* */
public static function update_urls_rel_usergroup($userGroupList, $urlId)
{
@ -987,8 +992,8 @@ class UrlManager
/**
* Updates the access_url_rel_course_category table with a given list
* @author Julio Montoya
* @param array course category list
* @param int access_url_id
* @param array $list course category list
* @param int $urlId access_url_id
**/
public static function updateUrlRelCourseCategory($list, $urlId)
{
@ -1031,15 +1036,13 @@ class UrlManager
}
}
/**
* Updates the access_url_rel_session table with a given user list
* @author Julio Montoya
* @param array user list
* @param int access_url_id
* @param array $session_list
* @param int $access_url_id
* */
public static function update_urls_rel_session($session_list,$access_url_id)
public static function update_urls_rel_session($session_list, $access_url_id)
{
$table_url_rel_session = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
@ -1072,6 +1075,7 @@ class UrlManager
/**
* @param int $user_id
*
* @return array
*/
public static function get_access_url_from_user($user_id)
@ -1083,6 +1087,7 @@ class UrlManager
WHERE user_id = ".intval($user_id);
$result = Database::query($sql);
$url_list = Database::store_result($result,'ASSOC');
return $url_list;
}
@ -1130,6 +1135,7 @@ class UrlManager
$sql = "SELECT id FROM $table_access_url WHERE url = '".Database::escape_string($url)."'";
$result = Database::query($sql);
$access_url_id = Database::result($result, 0, 0);
return $access_url_id;
}
@ -1167,6 +1173,7 @@ class UrlManager
}
}
$response->addAssign('ajax_list_courses', 'innerHTML', api_utf8_encode($return));
return $response;
}
}

@ -49,7 +49,7 @@ class IndexManager
/**
* @param bool $setLoginForm
*/
function set_login_form($setLoginForm = true)
public function set_login_form($setLoginForm = true)
{
global $loginFailed;
$this->tpl->setLoginForm($setLoginForm);
@ -58,7 +58,7 @@ class IndexManager
/**
* @param array $personal_course_list
*/
function return_exercise_block($personal_course_list)
public function return_exercise_block($personal_course_list)
{
$exercise_list = array();
if (!empty($personal_course_list)) {
@ -286,7 +286,7 @@ class IndexManager
return $html;
}
function return_notice()
public function return_notice()
{
$user_selected_language = api_get_interface_language();
@ -312,7 +312,7 @@ class IndexManager
return $html;
}
function return_help()
public function return_help()
{
$user_selected_language = api_get_interface_language();
$platformLanguage = api_get_setting('platformLanguage');
@ -342,7 +342,10 @@ class IndexManager
return $html;
}
function return_skills_links()
/**
* @return null|string
*/
public function return_skills_links()
{
$content = '';
$content .= '<ul class="nav nav-pills nav-stacked">';
@ -411,7 +414,7 @@ class IndexManager
*
* @version 1.0.1
*/
function handle_login_failed()
public function handle_login_failed()
{
return $this->tpl->handleLoginFailed();
}
@ -424,7 +427,7 @@ class IndexManager
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University - refactoring and code cleaning
* @author Julio Montoya <gugli100@gmail.com>, Beeznest template modifs
*/
function return_courses_in_categories()
public function return_courses_in_categories()
{
$result = '';
$stok = Security::get_token();
@ -489,7 +492,8 @@ class IndexManager
LEFT JOIN $main_category_table t2 ON t1.code=t2.parent_id
LEFT JOIN $main_course_table t3 ON (t3.category_code = t1.code $platform_visible_courses)
WHERE t1.parent_id ". (empty ($category) ? "IS NULL" : "='$category'")."
GROUP BY t1.name,t1.code,t1.parent_id,t1.children_count ORDER BY t1.tree_pos, t1.name";
GROUP BY t1.name,t1.code,t1.parent_id,t1.children_count
ORDER BY t1.tree_pos, t1.name";
// Showing only the category of courses of the current access_url_id
if (api_is_multiple_url_enabled()) {
@ -805,7 +809,7 @@ class IndexManager
public function return_classes_block()
{
$html = '';
if (api_get_setting('show_groups_to_users') == 'true') {
if (api_get_setting('show_groups_to_users') === 'true') {
$usergroup = new UserGroup();
$usergroup_list = $usergroup->get_usergroup_by_user(api_get_user_id());
$classes = '';
@ -955,6 +959,9 @@ class IndexManager
return $html;
}
/**
* @return null|string
*/
public function return_navigation_links()
{
$html = '';
@ -975,10 +982,10 @@ class IndexManager
$content .= '</li>';
}
$content .= '</ul>';
$html = self::show_right_block(get_lang('MainNavigation'), $content, 'navigation_link_block');
}
return $html;
}
@ -1068,6 +1075,7 @@ class IndexManager
'courseCollapse'
);
}
return $html;
}

Loading…
Cancel
Save