Internal: Update from 1.11.x + fixes

pull/3466/head
Julio Montoya 5 years ago
parent 54c2b4743a
commit 506c790684
  1. 20
      public/main/admin/dashboard_add_users_to_user.php
  2. 1
      public/main/admin/extra_field_list.php
  3. 7
      public/main/admin/gradebook_list.php
  4. 133
      public/main/admin/statistics/index.php
  5. 31
      public/main/admin/subscribe_user2course.php
  6. 1
      public/main/admin/teacher_time_report.php
  7. 4
      public/main/admin/user_edit.php
  8. 10
      public/main/admin/user_information.php
  9. 24
      public/main/exercise/exercise_result.class.php
  10. 4
      public/main/forum/forumfunction.inc.php
  11. 14
      public/main/gradebook/lib/GradebookUtils.php
  12. 2
      public/main/inc/lib/SurveyTree .php
  13. 9
      public/main/inc/lib/api.lib.php
  14. 28
      public/main/inc/lib/course.lib.php
  15. 4
      public/main/inc/lib/exercise.lib.php
  16. 31
      public/main/inc/lib/sessionmanager.lib.php
  17. 18
      public/main/inc/lib/skill.lib.php
  18. 135
      public/main/inc/lib/statistics.lib.php
  19. 73
      public/main/inc/lib/usermanager.lib.php
  20. 11
      public/main/lp/learnpath.class.php
  21. 4
      public/main/mySpace/admin.php
  22. 4
      public/main/mySpace/coaches.php
  23. 3
      public/main/session/session_list.php
  24. 365
      public/main/session/session_list_custom.php
  25. 4
      public/main/survey/survey.lib.php
  26. 8
      public/main/survey/surveyUtil.class.php
  27. 4
      public/main/template/default/admin/user_information.html.twig
  28. 6
      public/main/tracking/courseLog.php
  29. 4
      public/main/tracking/course_log_resources.php
  30. 6
      public/main/tracking/course_log_tools.php
  31. 2
      public/main/user/resume_session.php
  32. 6
      public/main/user/subscribe_user.php
  33. 12
      public/main/user/user.php
  34. 2
      public/main/webservices/registration.soap.php
  35. 116
      public/main/wiki/wiki.inc.php
  36. 1
      src/CoreBundle/Resources/views/Layout/base-layout.html.twig
  37. 24
      src/CoreBundle/Resources/views/Macros/box.html.twig

@ -93,17 +93,17 @@ function search_users($needle, $type = 'multiple')
}
if (count($assigned_users_id) > 0) {
$without_assigned_users = ' AND user.user_id NOT IN('.implode(',', $assigned_users_id).')';
$without_assigned_users = ' AND user.id NOT IN('.implode(',', $assigned_users_id).')';
}
if (api_is_multiple_url_enabled()) {
$sql = "SELECT user.user_id, username, lastname, firstname
$sql = "SELECT user.id as user_id, username, lastname, firstname
FROM $tbl_user user
LEFT JOIN $tbl_access_url_rel_user au ON (au.user_id = user.user_id)
LEFT JOIN $tbl_access_url_rel_user au ON (au.user_id = user.id)
WHERE
".(api_sort_by_first_name() ? 'firstname' : 'lastname')." LIKE '$needle%' AND
status NOT IN(".DRH.', '.SESSIONADMIN.', '.STUDENT_BOSS.") AND
user.user_id NOT IN ($user_anonymous, $current_user_id, $user_id)
user.id NOT IN ($user_anonymous, $current_user_id, $user_id)
$without_assigned_users AND
access_url_id = ".api_get_current_access_url_id()."
$order_clause
@ -126,9 +126,9 @@ function search_users($needle, $type = 'multiple')
$tbl_user_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$access_url_id = api_get_current_access_url_id();
$sql = 'SELECT user.user_id, username, lastname, firstname
$sql = 'SELECT user.id as user_id, username, lastname, firstname
FROM '.$tbl_user.' user
INNER JOIN '.$tbl_user_rel_access_url.' url_user ON (url_user.user_id=user.user_id)
INNER JOIN '.$tbl_user_rel_access_url.' url_user ON (url_user.user_id=user.id)
WHERE
access_url_id = '.$access_url_id.' AND
(
@ -367,7 +367,7 @@ switch ($userStatus) {
$assigned_users_id = array_keys($assigned_users_to_hrm);
$without_assigned_users = '';
if (count($assigned_users_id) > 0) {
$without_assigned_users = ' user.user_id NOT IN('.implode(',', $assigned_users_id).') AND ';
$without_assigned_users = ' user.id NOT IN('.implode(',', $assigned_users_id).') AND ';
}
$search_user = '';
@ -394,9 +394,9 @@ if (!empty($conditions)) {
}
if (api_is_multiple_url_enabled()) {
$sql = "SELECT user.user_id, username, lastname, firstname
FROM $tbl_user user
LEFT JOIN $tbl_access_url_rel_user au
$sql = "SELECT user.id as user_id, username, lastname, firstname
FROM $tbl_user user
LEFT JOIN $tbl_access_url_rel_user au
ON (au.user_id = user.user_id)
WHERE
$without_assigned_users

@ -1,4 +1,5 @@
<?php
/* For licensing terms, see /license.txt */
require_once __DIR__.'/../inc/global.inc.php';

@ -1,4 +1,5 @@
<?php
/* For licensing terms, see /license.txt */
use Chamilo\CoreBundle\Entity\GradebookCategory;
@ -179,9 +180,9 @@ switch ($action) {
$form->addText('weight', get_lang('Weight'));
$form->addLabel(get_lang('Course'), $category->getCourseCode());
$sql = "SELECT
depends,
minimum_to_validate,
$sql = "SELECT
depends,
minimum_to_validate,
gradebooks_to_validate_in_dependence
FROM $table WHERE id = ".$categoryId;
$result = Database::query($sql);

@ -13,21 +13,23 @@ api_protect_admin_script();
$interbreadcrumb[] = ['url' => '../index.php', 'name' => get_lang('Administration')];
$report = isset($_REQUEST['report']) ? $_REQUEST['report'] : '';
$sessionDuration = isset($_GET['session_duration']) ? (int) $_GET['session_duration'] : '';
$sessionDuration = isset($_GET['session_duration']) ? (int)$_GET['session_duration'] : '';
$validated = false;
if (
in_array(
$report,
['recentlogins', 'tools', 'courses', 'coursebylanguage', 'users', 'users_active', 'session_by_date']
)
) {
in_array(
$report,
['recentlogins', 'tools', 'courses', 'coursebylanguage', 'users', 'users_active', 'session_by_date']
)
) {
$htmlHeadXtra[] = api_get_js('chartjs/Chart.min.js');
// Prepare variables for the JS charts
$url = $reportName = $reportType = $reportOptions = '';
switch ($report) {
case 'recentlogins':
$url = api_get_path(WEB_CODE_PATH).'inc/ajax/statistics.ajax.php?a=recent_logins&session_duration='.$sessionDuration;
$url = api_get_path(
WEB_CODE_PATH
).'inc/ajax/statistics.ajax.php?a=recent_logins&session_duration='.$sessionDuration;
$reportName = '';
$reportType = 'line';
$reportOptions = '';
@ -223,7 +225,7 @@ if (
$dateEnd = Security::remove_XSS($_REQUEST['range_end']);
}
$statusId = (int) $_REQUEST['status_id'];
$statusId = (int)$_REQUEST['status_id'];
$conditions = "&date_start=$dateStart&date_end=$dateEnd&status=$statusId";
@ -270,7 +272,7 @@ if (
$reportType,
$reportOptions3,
'canvas3'
);
);
$reportOptions = '
legend: {
@ -480,10 +482,7 @@ switch ($report) {
$content .= '<div class="row">';
$content .= '<div class="col-md-4"><h4 class="page-header" id="canvas1_title"></h4><div id="canvas1_table"></div></div>';
$content .= '<div class="col-md-4"><h4 class="page-header" id="canvas2_title"></h4><div id="canvas2_table"></div></div>';
if ($sessionStatusAllowed) {
$content .= '<div class="col-md-4"><h4 class="page-header" id="canvas3_title"></h4><div id="canvas3_table"></div></div>';
}
$content .= '<div class="col-md-4"><h4 class="page-header" id="canvas3_title"></h4><div id="canvas3_table"></div></div>';
$content .= '</div>';
$tableCourse = new HTML_Table(['class' => 'table table-responsive']);
@ -506,7 +505,7 @@ switch ($report) {
$courseInfo = api_get_course_info_by_id($courseId);
$tableCourse->setCellContents($row, 0, $courseInfo['name']);
$tableCourse->setCellContents($row, 1, $count);
$row++;
$row++;
}
}
@ -515,10 +514,8 @@ switch ($report) {
$content .= '<div class="row">';
$content .= '<div class="col-md-4"><canvas id="canvas1" style="margin-bottom: 20px"></canvas></div>';
$content .= '<div class="col-md-4"><canvas id="canvas2" style="margin-bottom: 20px"></canvas></div>';
$content .= '<div class="col-md-4"><canvas id="canvas3" style="margin-bottom: 20px"></canvas></div>';
if ($sessionStatusAllowed) {
$content .= '<div class="col-md-4"><canvas id="canvas3" style="margin-bottom: 20px"></canvas></div>';
}
$content .= '</div>';
$content .= '<div class="row">';
@ -526,51 +523,46 @@ switch ($report) {
$content .= '</div>';
}
$table = new HTML_Table(['class' => 'table table-responsive']);
$headers = [
get_lang('Name'),
get_lang('StartDate'),
get_lang('EndDate'),
get_lang('Language'),
];
if ($sessionStatusAllowed) {
$headers[] = get_lang('Status');
}
$table = new HTML_Table(['class' => 'table table-responsive']);
$headers = [
get_lang('Name'),
get_lang('StartDate'),
get_lang('EndDate'),
get_lang('Language'),
get_lang('Status')
];
$headers[] = get_lang('NumberOfStudents');
$row = 0;
$column = 0;
foreach ($headers as $header) {
$table->setHeaderContents($row, $column, $header);
$column++;
}
$row++;
$row = 0;
$column = 0;
foreach ($headers as $header) {
$table->setHeaderContents($row, $column, $header);
$column++;
}
$row++;
foreach ($sessions as $session) {
foreach ($sessions as $session) {
$courseList = SessionManager::getCoursesInSession($session['id']);
$table->setCellContents($row, 0, $session['name']);
$table->setCellContents($row, 1, api_get_local_time($session['display_start_date']));
$table->setCellContents($row, 2, api_get_local_time($session['display_end_date']));
// Get first language.
$language = '';
$courses = SessionManager::getCoursesInSession($session['id']);
if (!empty($courses)) {
$courseId = $courses[0];
$courseInfo = api_get_course_info_by_id($courseId);
$language = $courseInfo['language'];
$table->setCellContents($row, 0, $session['name']);
$table->setCellContents($row, 1, api_get_local_time($session['display_start_date']));
$table->setCellContents($row, 2, api_get_local_time($session['display_end_date']));
// Get first language.
$language = '';
$courses = SessionManager::getCoursesInSession($session['id']);
if (!empty($courses)) {
$courseId = $courses[0];
$courseInfo = api_get_course_info_by_id($courseId);
$language = $courseInfo['language'];
$language = get_lang(ucfirst(str_replace(2, '', $language)));
}
$table->setCellContents($row, 3, $language);
if ($sessionStatusAllowed) {
$table->setCellContents($row, 4, SessionManager::getStatusLabel($session['status']));
}
}
$table->setCellContents($row, 3, $language);
$table->setCellContents($row, 4, SessionManager::getStatusLabel($session['status']));
$studentsCount = SessionManager::get_users_by_session($session['id'], 0, true);
$table->setCellContents($row, 5, $studentsCount);
$row++;
}
$row++;
}
$content .= $table->toHtml();
$content .= $table->toHtml();
if (isset($_REQUEST['action']) && 'export' === $_REQUEST['action']) {
$data = $table->toArray();
@ -602,7 +594,7 @@ switch ($report) {
$form->addHidden('report', 'user_session');
$form->addButtonSearch(get_lang('Search'));
$date = new DateTime($now);
$date = new DateTime();
$startDate = $date->format('Y-m-d').' 00:00:00';
$endDate = $date->format('Y-m-d').' 23:59:59';
$start = $startDate;
@ -660,14 +652,14 @@ switch ($report) {
<script>
$(function() {
'.Display::grid_js(
'user_session_grid',
$url,
$columns,
$columnModel,
$extraParams,
[],
$actionLinks,
true
'user_session_grid',
$url,
$columns,
$columnModel,
$extraParams,
[],
$actionLinks,
true
).';
jQuery("#user_session_grid").jqGrid("navGrid","#user_session_grid_pager",{
@ -798,7 +790,7 @@ switch ($report) {
}
if (isset($_REQUEST['table_users_active_per_page'])) {
$limit = (int) $_REQUEST['table_users_active_per_page'];
$limit = (int)$_REQUEST['table_users_active_per_page'];
}
$users = UserManager::getUserListExtraConditions(
@ -861,7 +853,6 @@ switch ($report) {
$item[] = $certificate ? get_lang('Yes') : get_lang('No');
$item[] = $birthDate;
$data[] = $item;
$row++;
}
if (isset($_REQUEST['action_table']) && 'export' === $_REQUEST['action_table']) {
@ -1016,7 +1007,7 @@ switch ($report) {
// graph 3
$languages = api_get_languages();
$all = [];
foreach ($languages['folder'] as $language) {
foreach ($languages as $language) {
$conditions = ['language' => $language];
$key = $language;
if ('2' === substr($language, -1)) {
@ -1139,7 +1130,7 @@ switch ($report) {
if ($validDate) {
$date1 = new DateTime($row['value']);
$interval = $now->diff($date1);
$years = (int) $interval->y;
$years = (int)$interval->y;
if ($years >= 16 && $years <= 17) {
$all['16-17']++;
@ -1465,7 +1456,11 @@ switch ($report) {
break;
case 'recentlogins':
$content .= '<h2>'.sprintf(get_lang('Last %s days'), '15').'</h2>';
$form = new FormValidator('session_time', 'get', api_get_self().'?report=recentlogins&session_duration='.$sessionDuration);
$form = new FormValidator(
'session_time',
'get',
api_get_self().'?report=recentlogins&session_duration='.$sessionDuration
);
$sessionTimeList = ['', 5 => 5, 15 => 15, 30 => 30, 60 => 60];
$form->addSelect('session_duration', [get_lang('Session min duration'), get_lang('Minutes')], $sessionTimeList);
$form->addButtonSend(get_lang('Filter'));

@ -1,4 +1,5 @@
<?php
/* For licensing terms, see /license.txt */
/**
@ -77,8 +78,8 @@ if (is_array($extra_field_list)) {
/* React on POSTed request */
if (isset($_POST['form_sent']) && $_POST['form_sent']) {
$form_sent = $_POST['form_sent'];
$users = isset($_POST['User list']) && is_array($_POST['User list']) ? $_POST['User list'] : [];
$courses = isset($_POST['Course list']) && is_array($_POST['Course list']) ? $_POST['Course list'] : [];
$users = isset($_POST['UserList']) && is_array($_POST['UserList']) ? $_POST['UserList'] : [];
$courses = isset($_POST['CourseList']) && is_array($_POST['CourseList']) ? $_POST['CourseList'] : [];
$first_letter_user = Database::escape_string($_POST['firstLetterUser']);
$first_letter_course = Database::escape_string($_POST['firstLetterCourse']);
@ -168,17 +169,17 @@ if ($use_extra_fields) {
if (api_is_multiple_url_enabled()) {
if (is_array($final_result) && count($final_result) > 0) {
$where_filter = " AND u.user_id IN ('".implode("','", $final_result)."') ";
$where_filter = " AND u.id IN ('".implode("','", $final_result)."') ";
} else {
//no results
$where_filter = " AND u.user_id = -1";
$where_filter = " AND u.id = -1";
}
} else {
if (is_array($final_result) && count($final_result) > 0) {
$where_filter = " AND user_id IN ('".implode("','", $final_result)."') ";
$where_filter = " AND id IN ('".implode("','", $final_result)."') ";
} else {
//no results
$where_filter = " AND user_id = -1";
$where_filter = " AND id = -1";
}
}
}
@ -192,25 +193,25 @@ if ('true' === $orderListByOfficialCode) {
$orderBy = " official_code, lastname, firstname";
}
$sql = "SELECT user_id, lastname, firstname, username, official_code
$sql = "SELECT id as user_id, lastname, firstname, username, official_code
FROM $tbl_user
WHERE user_id<>2 AND ".$target_name." LIKE '".$first_letter_user."%' $where_filter
ORDER BY ".(count($users) > 0 ? "(user_id IN(".implode(',', $users).")) DESC," : "")." ".$orderBy;
WHERE id <>2 AND ".$target_name." LIKE '".$first_letter_user."%' $where_filter
ORDER BY ".(count($users) > 0 ? "(id IN(".implode(',', $users).")) DESC," : "")." ".$orderBy;
if (api_is_multiple_url_enabled()) {
$tbl_user_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$access_url_id = api_get_current_access_url_id();
if (-1 != $access_url_id) {
$sql = "SELECT u.user_id,lastname,firstname,username, official_code
$sql = "SELECT u.id as user_id,lastname,firstname,username, official_code
FROM $tbl_user u
INNER JOIN $tbl_user_rel_access_url user_rel_url
ON (user_rel_url.user_id = u.user_id)
ON (user_rel_url.user_id = u.id)
WHERE
u.user_id<>2 AND
u.id <> 2 AND
access_url_id = $access_url_id AND
(".$target_name." LIKE '".$first_letter_user."%' )
$where_filter
ORDER BY ".(count($users) > 0 ? "(u.user_id IN(".implode(',', $users).")) DESC," : "")." ".$orderBy;
ORDER BY ".(count($users) > 0 ? "(u.id IN(".implode(',', $users).")) DESC," : "")." ".$orderBy;
}
}
@ -314,7 +315,7 @@ if (is_array($extra_field_list)) {
</tr>
<tr>
<td width="40%" align="center">
<select name="User list[]" multiple="multiple" size="20" style="width:300px;">
<select name="UserList[]" multiple="multiple" size="20" style="width:300px;">
<?php foreach ($db_users as $user) {
?>
<option value="<?php echo $user['user_id']; ?>" <?php if (in_array($user['user_id'], $users)) {
@ -338,7 +339,7 @@ if (is_array($extra_field_list)) {
</button>
</td>
<td width="40%" align="center">
<select name="Course list[]" multiple="multiple" size="20" style="width:300px;">
<select name="CourseList[]" multiple="multiple" size="20" style="width:300px;">
<?php foreach ($db_courses as $course) {
?>
<option value="<?php echo $course['code']; ?>" <?php if (in_array($course['code'], $courses)) {

@ -1,4 +1,5 @@
<?php
/* For licensing terms, see /license.txt */
/**

@ -282,7 +282,7 @@ if (!$user_data['platform_admin']) {
$form->addElement('radio', 'active', get_lang('Account'), get_lang('active'), 1);
$form->addElement('radio', 'active', '', get_lang('inactive'), 0);
}
$studentBossList = UserManager::getStudentBossList($user_data['user_id']);
$studentBossList = UserManager::getStudentBossList($user_id);
$conditions = ['status' => STUDENT_BOSS];
$studentBoss = UserManager::get_user_list($conditions);
@ -306,7 +306,7 @@ $form->addElement('advmultiselect', 'student_boss', get_lang('Superior (n+1)'),
$extraField = new ExtraField('user');
$returnParams = $extraField->addElements(
$form,
$user_data['user_id'],
$user_id,
[],
false,
false,

@ -76,7 +76,8 @@ if (api_can_login_as($userId)) {
[],
ICON_SIZE_MEDIUM
),
api_get_path(WEB_CODE_PATH).'admin/user_list.php?action=login_as&user_id='.$userId.'&sec_token='.Security::getTokenFromSession()
api_get_path(WEB_CODE_PATH).
'admin/user_list.php?action=login_as&user_id='.$userId.'&sec_token='.Security::getTokenFromSession()
);
}
@ -191,7 +192,6 @@ foreach ($data as $label => $item) {
$csvContent[] = [$label, strip_tags($item)];
$row++;
}
//$userInformation = $table->toHtml();
$table = new HTML_Table(['class' => 'data_table']);
$table->setHeaderContents(0, 0, get_lang('Reporting'));
@ -252,7 +252,7 @@ foreach ($data as $label => $item) {
if ('true' === api_get_setting('allow_social_tool')) {
$userObject = api_get_user_entity($userId);
$data = [];
$messagesSent = '';
// Calculate values
if ('true' === api_get_setting('allow_message_tool')) {
$messagesSent = SocialManager::getCountMessagesSent($userId);
@ -277,8 +277,8 @@ if ('true' === api_get_setting('allow_social_tool')) {
'invitation_sent' => $countSent,
'invitation_received' => $countReceived,
'messages_posted' => $wallMessagesPosted,
'message_sent' => $messagesSent,
'message_received' => $messagesReceived,
'messages_sent' => $messagesSent,
'messages_received' => $messagesReceived,
];
}

@ -80,12 +80,12 @@ class ExerciseResult
tlm.name as lp_name,
user.username,
te.status as exstatus
FROM $TBL_EXERCISES AS ce
INNER JOIN $TBL_TRACK_EXERCISES AS te
FROM $TBL_EXERCISES AS ce
INNER JOIN $TBL_TRACK_EXERCISES AS te
ON (te.exe_exo_id = ce.id)
INNER JOIN $TBL_USER AS user
ON (user.user_id = exe_user_id)
LEFT JOIN $TBL_TABLE_LP_MAIN AS tlm
INNER JOIN $TBL_USER AS user
ON (user.id = exe_user_id)
LEFT JOIN $TBL_TABLE_LP_MAIN AS tlm
ON (tlm.id = te.orig_lp_id AND tlm.c_id = ce.c_id)
WHERE
ce.c_id = $course_id AND
@ -112,11 +112,11 @@ class ExerciseResult
user.username,
te.status as exstatus
FROM $TBL_EXERCISES AS ce
INNER JOIN $TBL_TRACK_EXERCISES AS te
INNER JOIN $TBL_TRACK_EXERCISES AS te
ON (te.exe_exo_id = ce.id)
INNER JOIN $TBL_USER AS user
ON (user.user_id = exe_user_id)
LEFT JOIN $TBL_TABLE_LP_MAIN AS tlm
INNER JOIN $TBL_USER AS user
ON (user.id = exe_user_id)
LEFT JOIN $TBL_TABLE_LP_MAIN AS tlm
ON (tlm.id = te.orig_lp_id AND tlm.c_id = ce.c_id)
WHERE
ce.c_id = $course_id AND
@ -184,10 +184,10 @@ class ExerciseResult
$revised = -1;
} else {
//revised or not
$sql_exe = "SELECT exe_id
$sql_exe = "SELECT exe_id
FROM $TBL_TRACK_ATTEMPT_RECORDING
WHERE
author != '' AND
WHERE
author != '' AND
exe_id = ".(int) ($result['exid']).'
LIMIT 1';
$query = Database::query($sql_exe);

@ -5541,11 +5541,11 @@ function get_notifications($content, $id)
$id = (int) $id;
$sql = "SELECT user.user_id, user.firstname, user.lastname, user.email, user.user_id user
$sql = "SELECT user.id as user_id, user.firstname, user.lastname, user.email, user.user_id user
FROM $table_users user, $table_notification notification
WHERE
notification.c_id = $course_id AND user.active = 1 AND
user.user_id = notification.user_id AND
user.id = notification.user_id AND
notification.$field = $id ";
$result = Database::query($sql);

@ -1160,10 +1160,10 @@ class GradebookUtils
$courseId = $courseInfo['real_id'];
if (!empty($current_session)) {
$sql = "SELECT user.user_id, user.username, lastname, firstname, official_code
$sql = "SELECT user.id as user_id, user.username, lastname, firstname, official_code
FROM $tbl_session_course_user as scru
INNER JOIN $tbl_user as user
ON (scru.user_id = user.user_id)
ON (scru.user_id = user.id)
WHERE
scru.status = 0 AND
scru.c_id='$courseId' AND
@ -1171,7 +1171,7 @@ class GradebookUtils
$order_clause
";
} else {
$sql = 'SELECT user.user_id, user.username, lastname, firstname, official_code
$sql = 'SELECT user.id as user_id, user.username, lastname, firstname, official_code
FROM '.$tbl_course_user.' as course_rel_user
INNER JOIN '.$tbl_user.' as user
ON (course_rel_user.user_id = user.id)
@ -1235,11 +1235,11 @@ class GradebookUtils
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$tbl_res = Database::get_main_table(TABLE_MAIN_GRADEBOOK_RESULT);
$sql = 'SELECT user.user_id, lastname, firstname, user.official_code
$sql = 'SELECT user.id as user_id, lastname, firstname, user.official_code
FROM '.$tbl_res.' as res, '.$tbl_user.' as user
WHERE
res.evaluation_id = '.intval($eval->get_id()).' AND
res.user_id = user.user_id
res.user_id = user.id
';
$sql .= ' ORDER BY lastname, firstname';
if (api_is_western_name_order()) {
@ -1283,7 +1283,7 @@ class GradebookUtils
$mask = Database::escape_string($mask);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$tbl_cru = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$sql = 'SELECT DISTINCT user.user_id, user.lastname, user.firstname, user.email, user.official_code
$sql = 'SELECT DISTINCT user.id as user_id, user.lastname, user.firstname, user.email, user.official_code
FROM '.$tbl_user.' user';
if (!api_is_platform_admin()) {
$sql .= ', '.$tbl_cru.' cru';
@ -1294,7 +1294,7 @@ class GradebookUtils
$sql .= ' OR user.firstname LIKE '."'%".$mask."%')";
if (!api_is_platform_admin()) {
$sql .= ' AND user.user_id = cru.user_id AND
$sql .= ' AND user.id = cru.user_id AND
cru.relation_type <> '.COURSE_RELATION_TYPE_RRHH.' AND
cru.c_id in (
SELECT c_id FROM '.$tbl_cru.'

@ -39,7 +39,7 @@ class SurveyTree
WHERE
survey.c_id = $course_id AND
survey_question.c_id = $course_id AND
survey.author = user.user_id
survey.author = user.id
GROUP BY survey.survey_id";
$res = Database::query($sql);

@ -1,4 +1,5 @@
<?php
/* For licensing terms, see /license.txt */
use Chamilo\CoreBundle\Entity\AccessUrl;
@ -1447,24 +1448,29 @@ function _api_format_user($user, $add_password = false, $loadAvatars = true)
$urlImg = api_get_path(WEB_IMG_PATH);
$iconStatus = '';
$iconStatusMedium = '';
$label = '';
switch ($result['status']) {
case STUDENT:
if ($result['has_certificates']) {
$iconStatus = $urlImg.'icons/svg/identifier_graduated.svg';
$label = get_lang('Graduated');
} else {
$iconStatus = $urlImg.'icons/svg/identifier_student.svg';
$label = get_lang('Student');
}
break;
case COURSEMANAGER:
if ($result['is_admin']) {
$iconStatus = $urlImg.'icons/svg/identifier_admin.svg';
$label = get_lang('Admin');
} else {
$iconStatus = $urlImg.'icons/svg/identifier_teacher.svg';
$label = get_lang('Teacher');
}
break;
case STUDENT_BOSS:
$iconStatus = $urlImg.'icons/svg/identifier_teacher.svg';
$label = get_lang('StudentBoss');
break;
}
@ -1474,6 +1480,7 @@ function _api_format_user($user, $add_password = false, $loadAvatars = true)
}
$result['icon_status'] = $iconStatus;
$result['icon_status_label'] = $label;
$result['icon_status_medium'] = $iconStatusMedium;
}

@ -1,4 +1,5 @@
<?php
/* For licensing terms, see /license.txt*/
use Chamilo\CoreBundle\Entity\Course;
@ -360,9 +361,8 @@ class CourseManager
WHERE
c_id = ".intval($courseId)." AND
user_id = ".intval($userId);
$result = Database::fetch_array(Database::query($sql));
return $result;
return Database::fetch_array(Database::query($sql));
}
/**
@ -376,8 +376,8 @@ class CourseManager
{
$table = Database::escape_string(TABLE_MAIN_COURSE_USER);
$courseId = intval($courseId);
$isTutor = intval($isTutor);
$courseId = (int) $courseId;
$isTutor = (int) $isTutor;
$sql = "UPDATE $table SET is_tutor = '".$isTutor."'
WHERE
@ -388,9 +388,9 @@ class CourseManager
if (Database::affected_rows($result) > 0) {
return true;
} else {
return false;
}
return false;
}
/**
@ -1553,7 +1553,7 @@ class CourseManager
if (!empty($sessionId) || !empty($sessionIdList)) {
$sql = 'SELECT DISTINCT
user.user_id,
user.id as user_id,
user.email,
session_course_user.status as status_session,
session_id,
@ -1564,7 +1564,7 @@ class CourseManager
session.name as session_name
';
if ($return_count) {
$sql = ' SELECT COUNT(user.user_id) as count';
$sql = ' SELECT COUNT(user.id) as count';
}
$sessionCondition = " session_course_user.session_id = $sessionId";
@ -1959,7 +1959,7 @@ class CourseManager
if (!empty($session_id)) {
$sql .= "
LEFT JOIN $tblSessionCourseUser as session_course_user
ON user.user_id = session_course_user.user_id
ON user.id = session_course_user.user_id
AND session_course_user.c_id = $courseId
AND session_course_user.session_id = $session_id
";
@ -1968,7 +1968,7 @@ class CourseManager
} else {
$sql .= "
LEFT JOIN $tblCourseUser as course_rel_user
ON user.user_id = course_rel_user.user_id
ON user.id = course_rel_user.user_id
AND course_rel_user.relation_type <> ".COURSE_RELATION_TYPE_RRHH."
AND course_rel_user.c_id = $courseId
";
@ -1977,7 +1977,7 @@ class CourseManager
$multiple_access_url = api_get_multiple_access_url();
if ($multiple_access_url) {
$sql .= " LEFT JOIN $tblUrlUser au ON (au.user_id = user.user_id) ";
$sql .= " LEFT JOIN $tblUrlUser au ON (au.user_id = user.id) ";
}
$sql .= ' WHERE '.implode(' OR ', $where);
@ -2104,7 +2104,7 @@ class CourseManager
$sql = "SELECT $select
FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)." cu
INNER JOIN $userTable u
ON cu.user_id = u.user_id
ON cu.user_id = u.id
WHERE c_id = $courseId AND cu.status = ".STUDENT;
if (!$includeInvitedUsers) {
@ -2147,8 +2147,8 @@ class CourseManager
FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)." scu
$joinSession
INNER JOIN $userTable u
ON scu.user_id = u.user_id
WHERE scu.c_id = $courseId AND scu.status <> 2";
ON scu.user_id = u.id
WHERE scu.c_id = $courseId AND scu.status <> 2";
if (!empty($date_from) && !empty($date_to)) {
$date_from = Database::escape_string($date_from);

@ -1987,7 +1987,7 @@ HOTSPOT;
}
$sqlFromOption = " , $TBL_GROUP_REL_USER AS gru ";
$sqlWhereOption = " AND gru.c_id = $course_id AND gru.user_id = user.user_id ";
$sqlWhereOption = " AND gru.c_id = $course_id AND gru.user_id = user.id ";
$first_and_last_name = api_is_western_name_order() ? "firstname, lastname" : "lastname, firstname";
if ($get_count) {
@ -2024,7 +2024,7 @@ HOTSPOT;
INNER JOIN $sql_inner_join_tbl_track_exercices AS te
ON (te.exe_exo_id = ce.id)
INNER JOIN $sql_inner_join_tbl_user AS user
ON (user.user_id = exe_user_id)
ON (user.id = exe_user_id)
WHERE
te.c_id = $course_id $session_id_and AND
ce.active <> -1 AND

@ -1314,8 +1314,8 @@ class SessionManager
$wiki_progress = 0;
}
//Surveys
$surveys_done = (isset($survey_user_list[$user['user_id']]) ? $survey_user_list[$user['user_id']] : 0);
// Surveys
$surveys_done = isset($survey_user_list[$user['user_id']]) ? $survey_user_list[$user['user_id']] : 0;
$surveys_left = $surveys_total - $surveys_done;
if (!empty($surveys_total)) {
$surveys_progress = round((($surveys_done * 100) / $surveys_total), 2);
@ -3501,7 +3501,7 @@ class SessionManager
// check if user is a teacher
$sql = "SELECT * FROM $tblUser
WHERE status = 1 AND user_id = $userId";
WHERE status = 1 AND id = $userId";
$rsCheckUser = Database::query($sql);
@ -6163,11 +6163,11 @@ class SessionManager
}
$select = 'SELECT DISTINCT u.* ';
$masterSelect = 'SELECT DISTINCT user_id FROM ';
$masterSelect = 'SELECT DISTINCT id FROM ';
if ($getCount) {
$select = 'SELECT DISTINCT u.id as user_id ';
$masterSelect = 'SELECT COUNT(DISTINCT(user_id)) as count FROM ';
$masterSelect = 'SELECT COUNT(DISTINCT(id)) as count FROM ';
}
if (!empty($filterByStatus)) {
@ -6201,7 +6201,8 @@ class SessionManager
UNION (
$select
FROM $tbl_user u
INNER JOIN $tbl_user_rel_access_url url ON (url.user_id = u.id)
INNER JOIN $tbl_user_rel_access_url url
ON (url.user_id = u.id)
$where
$userConditionsFromDrh
)";
@ -6210,18 +6211,24 @@ class SessionManager
$sql = "$masterSelect (
($select
FROM $tbl_session s
INNER JOIN $tbl_session_rel_access_url url ON (url.session_id = s.id)
INNER JOIN $tbl_session_rel_course_rel_user su ON (s.id = su.session_id)
INNER JOIN $tbl_user u ON (u.id = su.user_id)
INNER JOIN $tbl_session_rel_access_url url
ON (url.session_id = s.id)
INNER JOIN $tbl_session_rel_course_rel_user su
ON (s.id = su.session_id)
INNER JOIN $tbl_user u
ON (u.id = su.user_id)
$where
$sessionConditions
$userConditionsFromDrh
) UNION (
$select
FROM $tbl_course c
INNER JOIN $tbl_course_rel_access_url url ON (url.c_id = c.id)
INNER JOIN $tbl_course_user cu ON (cu.c_id = c.id)
INNER JOIN $tbl_user u ON (u.id = cu.user_id)
INNER JOIN $tbl_course_rel_access_url url
ON (url.c_id = c.id)
INNER JOIN $tbl_course_user cu
ON (cu.c_id = c.id)
INNER JOIN $tbl_user u
ON (u.id = cu.user_id)
$where
$courseConditions
$userConditionsFromDrh

@ -1862,9 +1862,11 @@ class Skill extends Model
/* ORDER BY $sidx $sord */
$sql = "SELECT *, @rownum:=@rownum+1 rank FROM (
SELECT u.user_id, firstname, lastname, count(username) skills_acquired
FROM {$this->table} s INNER JOIN {$this->table_skill_rel_user} su ON (s.id = su.skill_id)
INNER JOIN {$this->table_user} u ON u.user_id = su.user_id, (SELECT @rownum:=0) r
SELECT u.id as user_id, firstname, lastname, count(username) skills_acquired
FROM {$this->table} s INNER JOIN {$this->table_skill_rel_user} su
ON (s.id = su.skill_id)
INNER JOIN {$this->table_user} u
ON u.id = su.user_id, (SELECT @rownum:=0) r
WHERE 1=1 $where_condition
GROUP BY username
ORDER BY skills_acquired desc
@ -1888,7 +1890,7 @@ class Skill extends Model
INNER JOIN {$this->table_skill_rel_user} su
ON (s.id = su.skill_id)
INNER JOIN {$this->table_user} u
ON u.user_id = su.user_id
ON u.id = su.user_id
GROUP BY username
) as T1";
$result = Database::query($sql);
@ -2049,7 +2051,7 @@ class Skill extends Model
course.id c_id,
course.title c_name,
course.directory c_directory,
user.user_id,
user.id as user_id,
user.lastname,
user.firstname,
user.username,
@ -2060,7 +2062,7 @@ class Skill extends Model
INNER JOIN {$this->table_course}
ON sru.course_id = course.id
INNER JOIN {$this->table_user}
ON sru.user_id = user.user_id
ON sru.user_id = user.id
INNER JOIN {$this->table}
ON sru.skill_id = skill.id
WHERE course.id = $courseId";
@ -2095,7 +2097,7 @@ class Skill extends Model
course.id c_id,
course.title c_name,
course.directory c_directory,
user.user_id,
user.id as user_id,
user.lastname,
user.firstname,
user.username,
@ -2106,7 +2108,7 @@ class Skill extends Model
INNER JOIN {$this->table_course}
ON sru.course_id = course.id
INNER JOIN {$this->table_user}
ON sru.user_id = user.user_id
ON sru.user_id = user.id
INNER JOIN {$this->table}
ON sru.skill_id = skill.id
WHERE skill.id = $skillId ";

@ -1,6 +1,8 @@
<?php
/* For licensing terms, see /license.txt */
use Chamilo\CoreBundle\Component\Utils\ChamiloApi;
/**
* This class provides some functions for statistics.
*/
@ -135,10 +137,10 @@ class Statistics
$status_filter = isset($status) ? ' AND status = '.intval($status) : '';
if (api_is_multiple_url_enabled()) {
$sql = "SELECT COUNT(DISTINCT(u.user_id)) AS number
$sql = "SELECT COUNT(DISTINCT(u.id)) AS number
FROM $user_table as u, $access_url_rel_user_table as url
WHERE
u.user_id = url.user_id AND
u.id = url.user_id AND
access_url_id = '".$urlId."'
$status_filter $active_filter";
if (isset($categoryCode)) {
@ -153,7 +155,7 @@ class Statistics
$status_filter $active_filter";
}
} else {
$sql = "SELECT COUNT(DISTINCT(user_id)) AS number
$sql = "SELECT COUNT(DISTINCT(id)) AS number
FROM $user_table
WHERE 1=1 $status_filter $active_filter";
if (isset($categoryCode)) {
@ -224,13 +226,13 @@ class Statistics
$sql = "SELECT count(default_id) AS total_number_of_items
FROM $track_e_default, $table_user user, $access_url_rel_user_table url
WHERE
default_user_id = user.user_id AND
user.user_id=url.user_id AND
default_user_id = user.id AND
user.id=url.user_id AND
access_url_id = '".$urlId."'";
} else {
$sql = "SELECT count(default_id) AS total_number_of_items
FROM $track_e_default, $table_user user
WHERE default_user_id = user.user_id ";
WHERE default_user_id = user.id ";
}
if (!empty($courseId)) {
@ -242,9 +244,9 @@ class Statistics
if (isset($_GET['keyword'])) {
$keyword = Database::escape_string(trim($_GET['keyword']));
$sql .= " AND (
user.username LIKE '%".$keyword."%' OR
default_event_type LIKE '%".$keyword."%' OR
default_value_type LIKE '%".$keyword."%' OR
user.username LIKE '%".$keyword."%' OR
default_event_type LIKE '%".$keyword."%' OR
default_value_type LIKE '%".$keyword."%' OR
default_value LIKE '%".$keyword."%') ";
}
$res = Database::query($sql);
@ -294,14 +296,14 @@ class Statistics
c_id as col3,
session_id as col4,
user.username as col5,
user.user_id as col6,
user.id as col6,
default_date as col7
FROM $track_e_default as track_default,
$table_user as user,
$access_url_rel_user_table as url
WHERE
track_default.default_user_id = user.user_id AND
url.user_id = user.user_id AND
track_default.default_user_id = user.id AND
url.user_id = user.id AND
access_url_id= $urlId ";
} else {
$sql = "SELECT
@ -311,10 +313,10 @@ class Statistics
c_id as col3,
session_id as col4,
user.username as col5,
user.user_id as col6,
user.id as col6,
default_date as col7
FROM $track_e_default track_default, $table_user user
WHERE track_default.default_user_id = user.user_id ";
WHERE track_default.default_user_id = user.id ";
}
if (!empty($_GET['keyword'])) {
@ -420,7 +422,7 @@ class Statistics
public static function getCourseCategories()
{
$categoryTable = Database::get_main_table(TABLE_MAIN_CATEGORY);
$sql = "SELECT code, name
$sql = "SELECT code, name
FROM $categoryTable
ORDER BY tree_pos";
$res = Database::query($sql);
@ -534,8 +536,8 @@ class Statistics
$period = get_lang('Month');
$periodCollection = api_get_months_long();
$sql = "SELECT
DATE_FORMAT( login_date, '%Y-%m' ) AS stat_date ,
$sql = "SELECT
DATE_FORMAT( login_date, '%Y-%m' ) AS stat_date ,
count( login_id ) AS number_of_logins
FROM $table $table_url $where_url
GROUP BY stat_date
@ -545,32 +547,32 @@ class Statistics
switch ($type) {
case 'hour':
$period = get_lang('Hour');
$sql = "SELECT
DATE_FORMAT( login_date, '%H') AS stat_date,
count( login_id ) AS number_of_logins
FROM $table $table_url $where_url
GROUP BY stat_date
$sql = "SELECT
DATE_FORMAT( login_date, '%H') AS stat_date,
count( login_id ) AS number_of_logins
FROM $table $table_url $where_url
GROUP BY stat_date
ORDER BY stat_date ";
$sql_last_x = "SELECT
DATE_FORMAT( login_date, '%H' ) AS stat_date,
count( login_id ) AS number_of_logins
FROM $table $table_url $where_url ".sprintf($where_url_last, 'DAY')."
GROUP BY stat_date
$sql_last_x = "SELECT
DATE_FORMAT( login_date, '%H' ) AS stat_date,
count( login_id ) AS number_of_logins
FROM $table $table_url $where_url ".sprintf($where_url_last, 'DAY')."
GROUP BY stat_date
ORDER BY stat_date ";
break;
case 'day':
$periodCollection = api_get_week_days_long();
$period = get_lang('Day');
$sql = "SELECT DATE_FORMAT( login_date, '%w' ) AS stat_date ,
count( login_id ) AS number_of_logins
FROM $table $table_url $where_url
GROUP BY stat_date
$sql = "SELECT DATE_FORMAT( login_date, '%w' ) AS stat_date ,
count( login_id ) AS number_of_logins
FROM $table $table_url $where_url
GROUP BY stat_date
ORDER BY DATE_FORMAT( login_date, '%w' ) ";
$sql_last_x = "SELECT
DATE_FORMAT( login_date, '%w' ) AS stat_date,
count( login_id ) AS number_of_logins
FROM $table $table_url $where_url ".sprintf($where_url_last, 'WEEK')."
GROUP BY stat_date
$sql_last_x = "SELECT
DATE_FORMAT( login_date, '%w' ) AS stat_date,
count( login_id ) AS number_of_logins
FROM $table $table_url $where_url ".sprintf($where_url_last, 'WEEK')."
GROUP BY stat_date
ORDER BY DATE_FORMAT( login_date, '%w' ) ";
break;
}
@ -661,8 +663,8 @@ class Statistics
$label = get_lang('Today');
}
$label .= " <span class=\"muted right\" style=\"float: right; margin-right: 5px;\">[$localDate - $localEndDate]</span>";
$sql = "SELECT count($field) AS number
FROM $table $table_url
$sql = "SELECT count($field) AS number
FROM $table $table_url
WHERE ";
if ($sessionDuration == 0) {
$sql .= " logout_date != login_date AND ";
@ -674,7 +676,7 @@ class Statistics
$sqlList[$label] = $sql;
}
$sql = "SELECT count($field) AS number
$sql = "SELECT count($field) AS number
FROM $table $table_url ";
if ($sessionDuration == 0) {
$sql .= " WHERE logout_date != login_date $where_url";
@ -734,7 +736,7 @@ class Statistics
$sessionDuration = (int) $sessionDuration * 60; //Convert from minutes to seconds
$sql = "SELECT count($field) AS number, date(login_date) as login_date
FROM $table $table_url
FROM $table $table_url
WHERE ";
if ($sessionDuration == 0) {
$sql .= " logout_date != login_date AND ";
@ -862,8 +864,8 @@ class Statistics
$url_condition2 = null;
$table = null;
if (api_is_multiple_url_enabled()) {
$url_condition = ", $access_url_rel_user_table as url WHERE url.user_id=u.user_id AND access_url_id='".$urlId."'";
$url_condition2 = " AND url.user_id=u.user_id AND access_url_id='".$urlId."'";
$url_condition = ", $access_url_rel_user_table as url WHERE url.user_id=u.id AND access_url_id='".$urlId."'";
$url_condition2 = " AND url.user_id=u.id AND access_url_id='".$urlId."'";
$table = ", $access_url_rel_user_table as url ";
}
$sql = "SELECT COUNT(*) AS n FROM $user_table as u ".$url_condition;
@ -1048,16 +1050,16 @@ class Statistics
}
if (api_is_multiple_url_enabled()) {
$sql = "SELECT lastname, firstname, username, COUNT($field) AS count_message
FROM $access_url_rel_user_table as url, $message_table m
LEFT JOIN $user_table u ON m.$field = u.user_id
WHERE url.user_id = m.$field AND access_url_id='".$urlId."'
GROUP BY m.$field
$sql = "SELECT lastname, firstname, username, COUNT($field) AS count_message
FROM $access_url_rel_user_table as url, $message_table m
LEFT JOIN $user_table u ON m.$field = u.id
WHERE url.user_id = m.$field AND access_url_id='".$urlId."'
GROUP BY m.$field
ORDER BY count_message DESC ";
} else {
$sql = "SELECT lastname, firstname, username, COUNT($field) AS count_message
FROM $message_table m
LEFT JOIN $user_table u ON m.$field = u.user_id
$sql = "SELECT lastname, firstname, username, COUNT($field) AS count_message
FROM $message_table m
LEFT JOIN $user_table u ON m.$field = u.id
GROUP BY m.$field ORDER BY count_message DESC ";
}
$res = Database::query($sql);
@ -1087,23 +1089,23 @@ class Statistics
$urlId = api_get_current_access_url_id();
if (api_is_multiple_url_enabled()) {
$sql = "SELECT lastname, firstname, username, COUNT(friend_user_id) AS count_friend
FROM $access_url_rel_user_table as url, $user_friend_table uf
LEFT JOIN $user_table u
ON (uf.user_id = u.user_id)
WHERE
uf.relation_type <> '".USER_RELATION_TYPE_RRHH."' AND
uf.user_id = url.user_id AND
access_url_id = '".$urlId."'
GROUP BY uf.user_id
$sql = "SELECT lastname, firstname, username, COUNT(friend_user_id) AS count_friend
FROM $access_url_rel_user_table as url, $user_friend_table uf
LEFT JOIN $user_table u
ON (uf.user_id = u.id)
WHERE
uf.relation_type <> '".USER_RELATION_TYPE_RRHH."' AND
uf.user_id = url.user_id AND
access_url_id = '".$urlId."'
GROUP BY uf.user_id
ORDER BY count_friend DESC ";
} else {
$sql = "SELECT lastname, firstname, username, COUNT(friend_user_id) AS count_friend
FROM $user_friend_table uf
LEFT JOIN $user_table u
ON (uf.user_id = u.user_id)
WHERE uf.relation_type <> '".USER_RELATION_TYPE_RRHH."'
GROUP BY uf.user_id
$sql = "SELECT lastname, firstname, username, COUNT(friend_user_id) AS count_friend
FROM $user_friend_table uf
LEFT JOIN $user_table u
ON (uf.user_id = u.id)
WHERE uf.relation_type <> '".USER_RELATION_TYPE_RRHH."'
GROUP BY uf.user_id
ORDER BY count_friend DESC ";
}
$res = Database::query($sql);
@ -1462,7 +1464,8 @@ class Statistics
u.username,
SUM(TIMESTAMPDIFF(SECOND, l.login_date, l.logout_date)) AS time_count
FROM $tblUser u
INNER JOIN $tblLogin l ON u.id = l.login_user_id
INNER JOIN $tblLogin l
ON u.id = l.login_user_id
$urlJoin
WHERE l.login_date BETWEEN '$startDate' AND '$endDate'
$urlWhere

@ -1653,7 +1653,7 @@ class UserManager
$user_table = Database::get_main_table(TABLE_MAIN_USER);
$userUrlTable = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$return_array = [];
$sql = "SELECT user.* FROM $user_table user ";
$sql = "SELECT user.*, user.id as user_id FROM $user_table user ";
if (api_is_multiple_url_enabled()) {
if ($idCampus) {
@ -1662,7 +1662,7 @@ class UserManager
$urlId = api_get_current_access_url_id();
}
$sql .= " INNER JOIN $userUrlTable url_user
ON (user.user_id = url_user.user_id)
ON (user.id = url_user.user_id)
WHERE url_user.access_url_id = $urlId";
} else {
$sql .= " WHERE 1=1 ";
@ -1694,6 +1694,75 @@ class UserManager
return $return_array;
}
public static function getUserListExtraConditions(
$conditions = [],
$order_by = [],
$limit_from = false,
$limit_to = false,
$idCampus = null,
$extraConditions = '',
$getCount = false
) {
$user_table = Database::get_main_table(TABLE_MAIN_USER);
$userUrlTable = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$return_array = [];
$sql = "SELECT user.*, user.id as user_id FROM $user_table user ";
if ($getCount) {
$sql = "SELECT count(user.id) count FROM $user_table user ";
}
if (api_is_multiple_url_enabled()) {
if ($idCampus) {
$urlId = $idCampus;
} else {
$urlId = api_get_current_access_url_id();
}
$sql .= " INNER JOIN $userUrlTable url_user
ON (user.user_id = url_user.user_id)
WHERE url_user.access_url_id = $urlId";
} else {
$sql .= " WHERE 1=1 ";
}
$sql .= " AND status <> ".ANONYMOUS." ";
if (count($conditions) > 0) {
foreach ($conditions as $field => $value) {
$field = Database::escape_string($field);
$value = Database::escape_string($value);
$sql .= " AND $field = '$value'";
}
}
$sql .= str_replace("\'", "'", Database::escape_string($extraConditions));
if (!empty($order_by) && count($order_by) > 0) {
$sql .= ' ORDER BY '.Database::escape_string(implode(',', $order_by));
}
if (is_numeric($limit_from) && is_numeric($limit_from)) {
$limit_from = (int) $limit_from;
$limit_to = (int) $limit_to;
$sql .= " LIMIT $limit_from, $limit_to";
}
$sql_result = Database::query($sql);
if ($getCount) {
$result = Database::fetch_array($sql_result);
return $result['count'];
}
while ($result = Database::fetch_array($sql_result)) {
$result['complete_name'] = api_get_person_name($result['firstname'], $result['lastname']);
$return_array[] = $result;
}
return $return_array;
}
/**
* Get a list of users of which the given conditions match with a LIKE '%cond%'.
*

@ -10191,6 +10191,17 @@ EOD;
}
}
public static function getLpList($courseId)
{
$table = Database::get_course_table(TABLE_LP_MAIN);
$courseId = (int) $courseId;
$sql = "SELECT * FROM $table WHERE c_id = $courseId";
$result = Database::query($sql);
return Database::store_result($result, 'ASSOC');
}
/**
* @param int $courseId
*

@ -32,9 +32,9 @@ if (isset($_POST['export'])) {
} else {
$order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname' : ' ORDER BY lastname, firstname';
}
$sql = "SELECT user.user_id,lastname,firstname,email
$sql = "SELECT user.id as user_id,lastname,firstname,email
FROM $tbl_user as user, $tbl_admin as admin
WHERE admin.user_id=user.user_id".$order_clause;
WHERE admin.user_id=user.id".$order_clause;
$result_admins = Database::query($sql);
if (api_is_western_name_order()) {

@ -54,7 +54,7 @@ if (isset($_GET["id_student"])) {
srcru.user_id=user_id AND
srcru.status=2 ".$order_clause;
} else {
$sql_coachs = "SELECT DISTINCT user_id as id_coach, user.user_id, lastname, firstname
$sql_coachs = "SELECT DISTINCT user_id as id_coach, user.id as user_id, lastname, firstname
FROM
$tbl_user as user,
$tbl_session_rel_course_user as srcu,
@ -65,7 +65,7 @@ if (isset($_GET["id_student"])) {
c.id = srcu.c_id AND
course_rel_user.status='1' AND
course_rel_user.user_id='".api_get_user_id()."' AND
srcu.user_id = user.user_id AND
srcu.user_id = user.id AND
srcu.status = 2
".$order_clause;
}

@ -246,7 +246,8 @@ $orderUrl = api_get_path(WEB_AJAX_PATH).'session.ajax.php?a=order';
?>
setSearchSelect("status");
var grid = $("#sessions"),
var grid = $("#sessions");
var prmSearch = {
multipleSearch : true,
overlay : false,

@ -0,0 +1,365 @@
<?php
/* For licensing terms, see /license.txt */
/**
* List sessions in an efficient and usable way.
*/
$cidReset = true;
require_once __DIR__.'/../inc/global.inc.php';
$this_section = SECTION_PLATFORM_ADMIN;
SessionManager::protectSession(null, false);
// Add the JS needed to use the jqgrid
$htmlHeadXtra[] = api_get_jqgrid_js();
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null;
$idChecked = isset($_REQUEST['idChecked']) ? $_REQUEST['idChecked'] : null;
$listType = isset($_REQUEST['list_type']) ? Security::remove_XSS($_REQUEST['list_type']) : SessionManager::getDefaultSessionTab();
$tool_name = get_lang('SessionList');
Display::display_header($tool_name);
$courseId = isset($_GET['course_id']) ? $_GET['course_id'] : null;
$sessionFilter = new FormValidator(
'course_filter',
'get',
'',
'',
[],
FormValidator::LAYOUT_INLINE
);
$courseSelect = $sessionFilter->addElement(
'select_ajax',
'course_name',
get_lang('SearchCourse'),
null,
['url' => api_get_path(WEB_AJAX_PATH).'course.ajax.php?a=search_course']
);
if (!empty($courseId)) {
$courseInfo = api_get_course_info_by_id($courseId);
$parents = CourseCategory::getParentsToString($courseInfo['categoryCode']);
$courseSelect->addOption($parents.$courseInfo['title'], $courseInfo['code'], ['selected' => 'selected']);
}
$url = api_get_self();
$actions = '
<script>
$(function() {
$("#course_name").on("change", function() {
var courseId = $(this).val();
if (!courseId) {
return;
}
window.location = "'.$url.'?course_id="+courseId;
});
});
</script>';
// jqgrid will use this URL to do the selects
if (!empty($courseId)) {
$url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_sessions&course_id='.$courseId;
} else {
$url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_sessions';
}
if (isset($_REQUEST['keyword'])) {
//Begin with see the searchOper param
$filter = new stdClass();
$filter->groupOp = 'OR';
$rule = new stdClass();
$rule->field = 'category_name';
$rule->op = 'in';
$rule->data = Security::remove_XSS($_REQUEST['keyword']);
$filter->rules[] = $rule;
$filter->groupOp = 'OR';
$filter = json_encode($filter);
$url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_sessions&_force_search=true&rows=20&page=1&sidx=&sord=asc&filters='.$filter.'&searchField=s.name&searchString='.Security::remove_XSS($_REQUEST['keyword']).'&searchOper=in';
}
if (isset($_REQUEST['id_category'])) {
$sessionCategory = SessionManager::get_session_category($_REQUEST['id_category']);
if (!empty($sessionCategory)) {
//Begin with see the searchOper param
$url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_sessions&_force_search=true&rows=20&page=1&sidx=&sord=asc&filters=&searchField=sc.name&searchString='.Security::remove_XSS($sessionCategory['name']).'&searchOper=in';
}
}
$url .= '&list_type='.$listType;
$result = SessionManager::getGridColumns($listType);
$columns = $result['columns'];
$column_model = $result['column_model'];
// Autowidth
$extra_params['autowidth'] = 'true';
// height auto
$extra_params['height'] = 'auto';
// Custom params
$extra_params['sortname'] = 'display_end_date';
$extra_params['sortorder'] = 'desc';
if (!isset($_GET['keyword'])) {
$extra_params['postData'] = [
'filters' => [
'groupOp' => 'AND',
'rules' => $result['rules'],
],
];
}
$hideSearch = api_get_configuration_value('hide_search_form_in_session_list');
//With this function we can add actions to the jgrid (edit, delete, etc)
$action_links = 'function action_formatter(cellvalue, options, rowObject) {
return \'<a href="session_edit.php?page=resume_session.php&id=\'+options.rowId+\'">'.
Display::return_icon('edit.png', get_lang('Edit'), '', ICON_SIZE_SMALL).'</a>'.
'&nbsp;<a href="add_users_to_session.php?page=session_list.php&id_session=\'+options.rowId+\'">'.
Display::return_icon('user_subscribe_session.png', get_lang('SubscribeUsersToSession'), '', ICON_SIZE_SMALL).'</a>'.
'&nbsp;<a href="add_courses_to_session.php?page=session_list.php&id_session=\'+options.rowId+\'">'.
Display::return_icon('courses_to_session.png', get_lang('SubscribeCoursesToSession'), '', ICON_SIZE_SMALL).'</a>'.
'&nbsp;<a onclick="javascript:if(!confirm('."\'".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"), ENT_QUOTES))."\'".')) return false;" href="session_list.php?list_type='.$listType.'&action=copy&idChecked=\'+options.rowId+\'">'.
Display::return_icon('copy.png', get_lang('Copy'), '', ICON_SIZE_SMALL).'</a>'.
'&nbsp;<a onclick="javascript:if(!confirm('."\'".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"), ENT_QUOTES))."\'".')) return false;" href="session_list.php?list_type='.$listType.'&action=delete&idChecked=\'+options.rowId+\'">'.
Display::return_icon('delete.png', get_lang('Delete'), '', ICON_SIZE_SMALL).'</a>'.
'\';
}';
$urlAjaxExtraField = api_get_path(WEB_AJAX_PATH).'extra_field.ajax.php?1=1';
$allowOrder = api_get_configuration_value('session_list_order');
$orderUrl = api_get_path(WEB_AJAX_PATH).'session.ajax.php?a=order';
?>
<script>
function setSearchSelect(columnName) {
$("#sessions").jqGrid('setColProp', columnName, {});
}
var added_cols = [];
var original_cols = [];
function clean_cols(grid, added_cols) {
// Cleaning
for (key in added_cols) {
grid.hideCol(key);
}
grid.showCol('name');
grid.showCol('display_start_date');
grid.showCol('display_end_date');
grid.showCol('course_title');
}
function show_cols(grid, added_cols) {
grid.showCol('name').trigger('reloadGrid');
for (key in added_cols) {
grid.showCol(key);
};
}
var second_filters = [];
$(function() {
date_pick_today = function(elem) {
$(elem).datetimepicker({dateFormat: "yy-mm-dd"});
$(elem).datetimepicker('setDate', (new Date()));
}
date_pick_one_month = function(elem) {
$(elem).datetimepicker({dateFormat: "yy-mm-dd"});
next_month = Date.today().next().month();
$(elem).datetimepicker('setDate', next_month);
}
//Great hack
register_second_select = function(elem) {
second_filters[$(elem).val()] = $(elem);
}
fill_second_select = function(elem) {
$(elem).on("change", function() {
composed_id = $(this).val();
field_id = composed_id.split("#")[0];
id = composed_id.split("#")[1];
$.ajax({
url: "<?php echo $urlAjaxExtraField; ?>&a=get_second_select_options",
dataType: "json",
data: "type=session&field_id="+field_id+"&option_value_id="+id,
success: function(data) {
my_select = second_filters[field_id];
my_select.empty();
$.each(data, function(index, value) {
my_select.append($("<option/>", {
value: index,
text: value
}));
});
}
});
});
}
<?php
echo Display::grid_js(
'sessions',
$url,
$columns,
$column_model,
$extra_params,
[],
$action_links,
true
);
?>
setSearchSelect("status");
var grid = $("#sessions"),
prmSearch = {
multipleSearch : true,
overlay : false,
width: 'auto',
caption: '<?php echo addslashes(get_lang('Search')); ?>',
formclass:'data_table',
onSearch : function() {
var postdata = grid.jqGrid('getGridParam', 'postData');
if (postdata && postdata.filters) {
filters = jQuery.parseJSON(postdata.filters);
clean_cols(grid, added_cols);
added_cols = [];
$.each(filters, function(key, value) {
if (key == 'rules') {
$.each(value, function(subkey, subvalue) {
if (subvalue.data == undefined) {
}
added_cols[subvalue.field] = subvalue.field;
});
}
});
show_cols(grid, added_cols);
}
},
onReset: function() {
clean_cols(grid, added_cols);
}
};
original_cols = grid.jqGrid('getGridParam', 'colModel');
<?php if ($allowOrder) {
?>
options = {
update: function (e, ui) {
var rowNum = jQuery("#sessions").getGridParam('rowNum');
var page = jQuery("#sessions").getGridParam('page');
page = page - 1;
var start = rowNum * page;
var list = jQuery('#sessions').jqGrid('getRowData');
var orderList = [];
$(list).each(function(index, e) {
index = index + start;
orderList.push({'order':index, 'id': e.id});
});
orderList = JSON.stringify(orderList);
$.get("<?php echo $orderUrl; ?>", "order="+orderList, function (result) {
});
}
};
// Sortable rows
grid.jqGrid('sortableRows', options);
<?php
} ?>
grid.jqGrid('navGrid','#sessions_pager',
{edit:false,add:false,del:false},
{height:280,reloadAfterSubmit:false}, // edit options
{height:280,reloadAfterSubmit:false}, // add options
{reloadAfterSubmit:false},// del options
prmSearch
);
<?php
// Create the searching dialog.
if ($hideSearch !== true) {
echo 'grid.searchGrid(prmSearch);';
}
?>
// Fixes search table.
var searchDialogAll = $("#fbox_"+grid[0].id);
searchDialogAll.addClass("table");
var searchDialog = $("#searchmodfbox_"+grid[0].id);
searchDialog.addClass("ui-jqgrid ui-widget ui-widget-content ui-corner-all");
searchDialog.css({position:"absolute", "z-index":"100", "float":"left", "top":"55%", "left" : "25%", "padding" : "5px", "border": "1px solid #CCC"})
var gbox = $("#gbox_"+grid[0].id);
gbox.before(searchDialog);
gbox.css({clear:"left"});
// Select first elements by default
$('.input-elm').each(function(){
$(this).find('option:first').attr('selected', 'selected');
});
$('.delete-rule').each(function(){
$(this).click(function(){
$('.input-elm').each(function(){
$(this).find('option:first').attr('selected', 'selected');
});
});
});
});
</script>
<div class="actions">
<?php
echo '<a href="'.api_get_path(WEB_CODE_PATH).'session/session_add.php">'.
Display::return_icon('new_session.png', get_lang('AddSession'), '', ICON_SIZE_MEDIUM).'</a>';
if (api_is_platform_admin()) {
echo '<a href="'.api_get_path(WEB_CODE_PATH).'session/add_many_session_to_category.php">'.
Display::return_icon('session_to_category.png', get_lang('AddSessionsInCategories'), '', ICON_SIZE_MEDIUM).'</a>';
echo '<a href="'.api_get_path(WEB_CODE_PATH).'session/session_category_list.php">'.
Display::return_icon('folder.png', get_lang('ListSessionCategory'), '', ICON_SIZE_MEDIUM).'</a>';
}
echo $actions;
if (api_is_platform_admin()) {
echo '<div class="pull-right">';
// Create a search-box
$form = new FormValidator(
'search_simple',
'get',
'',
'',
[],
FormValidator::LAYOUT_INLINE
);
$form->addElement(
'text',
'keyword',
null,
[
'aria-label' => get_lang('Search'),
]
);
$form->addButtonSearch(get_lang('Search'));
$form->display();
echo '</div>';
echo '<div class="pull-right">';
echo $sessionFilter->returnForm();
echo '</div>';
}
echo '</div>';
echo SessionManager::getSessionListTabs($listType);
echo '<div id="session-table" class="table-responsive">';
echo Display::grid_html('sessions');
echo '</div>';
Display::display_footer();

@ -1904,9 +1904,9 @@ class SurveyManager
answered_user.user as invited_user,
user.firstname,
user.lastname,
user.user_id
user.id as user_id
FROM $table_survey_answer answered_user
LEFT JOIN $table_user as user ON answered_user.user = user.user_id
LEFT JOIN $table_user as user ON answered_user.user = user.id
WHERE
answered_user.c_id = $course_id AND
survey_id= '".$survey_id."' ".

@ -148,8 +148,8 @@ class SurveyUtil
WHERE iid = $insertId";
Database::query($sql);
return true;
}
return true;
}
return false;
}
@ -3363,7 +3363,7 @@ class SurveyUtil
LEFT JOIN $table_survey_question survey_question
ON (survey.survey_id = survey_question.survey_id AND survey_question.c_id = $course_id)
LEFT JOIN $table_user user
ON (survey.author = user.user_id)
ON (survey.author = user.id)
WHERE survey.c_id = $course_id
$search_restriction
$condition_session
@ -3513,7 +3513,7 @@ class SurveyUtil
LEFT JOIN $table_survey_question survey_question
ON (survey.survey_id = survey_question.survey_id AND survey.c_id = survey_question.c_id),
$table_user user
WHERE survey.author = user.user_id AND survey.c_id = $course_id $list_condition
WHERE survey.author = user.id AND survey.c_id = $course_id $list_condition
";
$sql .= ' GROUP BY survey.survey_id';
$sql .= " ORDER BY col$column $direction ";

@ -9,7 +9,7 @@
<div class="list-card">
{{ display.card_widget('FirstLoginInPlatform'|get_lang, user.first_connection, 'calendar') }}
{{ display.card_widget('LatestLoginInPlatform'|get_lang, user.last_connection, 'calendar') }}
{% if user.legal %}
{% if user.legal is defined %}
{{ display.card_widget('LegalAccepted'|get_lang, user.legal.datetime, 'gavel', user.legal.icon) }}
{% endif %}
</div>
@ -20,7 +20,7 @@
{{ display.box_widget('InvitationReceived'|get_lang, user.social.invitation_received, 'smile-o') }}
{{ display.box_widget('WallMessagesPosted'|get_lang, user.social.messages_posted, 'comments') }}
{{ display.box_widget('MessagesSent'|get_lang, user.social.messages_sent, 'envelope') }}
{{ display.box_widget('MessagesReceived'|get_lang, user.social.message_received, 'envelope-open-o') }}
{{ display.box_widget('MessagesReceived'|get_lang, user.social.messages_received, 'envelope-open-o') }}
</div>
{% endif %}
</div>

@ -526,10 +526,7 @@ if ($nbStudents > 0) {
$tpl->assign('number_students', $nbStudents);
$tpl->assign('top_students', $userScoreList);
$trackingSummaryLayout = $tpl->get_template('tracking/tracking_course_log.tpl');
$content = $tpl->fetch($trackingSummaryLayout);
echo $content;
echo $tpl->fetch($tpl->get_template('tracking/tracking_course_log.tpl'));
}
}
@ -894,6 +891,7 @@ if (!empty($groupList)) {
$sessionId
);
$averageTime = null;
$time = null;
if (!empty($timeInSeconds)) {
$time = api_time_to_hms($timeInSeconds);
$averageTime = $timeInSeconds / $nbStudents;

@ -10,10 +10,10 @@ $from = isset($_GET['from']) ? $_GET['from'] : null;
// Starting the output buffering when we are exporting the information.
$export_csv = isset($_GET['export']) && 'csv' == $_GET['export'] ? true : false;
$exportXls = isset($_GET['export']) && 'xls' == $_GET['export'] ? true : false;
$session_id = intval($_REQUEST['id_session']);
$session_id = api_get_session_id();
$this_section = SECTION_COURSES;
if ('myspace' == $from) {
if ('myspace' === $from) {
$from_myspace = true;
$this_section = 'session_my_space';
}

@ -8,12 +8,13 @@ require_once __DIR__.'/../inc/global.inc.php';
$current_course_tool = TOOL_TRACKING;
$course_info = api_get_course_info();
$groupId = isset($_REQUEST['gidReq']) ? intval($_REQUEST['gidReq']) : 0;
$groupId = api_get_group_id();
$session_id = api_get_session_id();
$from_myspace = false;
$from = isset($_GET['from']) ? $_GET['from'] : null;
$this_section = SECTION_COURSES;
if ('myspace' == $from) {
if ('myspace' === $from) {
$from_myspace = true;
$this_section = 'session_my_space';
}
@ -46,7 +47,6 @@ $TABLEQUIZ = Database::get_course_table(TABLE_QUIZ_TEST);
// Starting the output buffering when we are exporting the information.
$export_csv = isset($_GET['export']) && 'csv' == $_GET['export'] ? true : false;
$session_id = intval($_REQUEST['id_session']);
if ($export_csv) {
if (!empty($session_id)) {

@ -254,7 +254,7 @@ if ('true' === $allowTutors) {
$sql = "SELECT user.lastname,user.firstname,user.username
FROM $tbl_session_rel_course_rel_user session_rcru, $tbl_user user
WHERE
session_rcru.user_id = user.user_id AND
session_rcru.user_id = user.id AND
session_rcru.session_id = '".intval($id_session)."' AND
session_rcru.c_id ='".Database::escape_string($course['id'])."' AND
session_rcru.status=2";

@ -784,16 +784,16 @@ function search_additional_profile_fields($keyword)
// getting all the user ids of the users who have chosen on of the predefined fields that contain the keyword
// or all the users who have entered the keyword in a free-form field
$sql = "SELECT
user.user_id as col0,
user.id as col0,
user.official_code as col1,
user.lastname as col2,
user.firstname as col3,
user.email as col4,
user.active as col5,
user.user_id as col6
user.id as col6
FROM $table_user user, $table_user_field_values user_values, $tableExtraField e
WHERE
user.user_id = user_values.item_id AND
user.id = user_values.item_id AND
user_values.field_id = e.id AND
e.extra_field_type = $extraFieldType AND
(value LIKE '%".$keyword."%'".$profiling_field_options_exact_values_sql.")";

@ -208,7 +208,7 @@ if (isset($_GET['action'])) {
if (api_get_session_id()) {
$table_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$sql = "SELECT DISTINCT
user.user_id, ".($is_western_name_order ? "user.firstname, user.lastname" : "user.lastname, user.firstname").",
user.id as user_id, ".($is_western_name_order ? "user.firstname, user.lastname" : "user.lastname, user.firstname").",
user.username,
$select_email_condition
phone,
@ -222,12 +222,12 @@ if (isset($_GET['action'])) {
}
$sql .= "
WHERE c_id = $courseId
AND session_course_user.user_id = user.user_id
AND session_course_user.user_id = user.id
AND session_id = $sessionId
";
if (api_is_multiple_url_enabled()) {
$sql .= " AND user.user_id = au.user_id AND access_url_id = $current_access_url_id ";
$sql .= " AND user.id = au.user_id AND access_url_id = $current_access_url_id ";
}
// only users no coaches/teachers
@ -298,7 +298,7 @@ if (isset($_GET['action'])) {
// users directly subscribed to the course
$table_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$sql = "SELECT DISTINCT
user.user_id, ".($is_western_name_order ? "user.firstname, user.lastname" : "user.lastname, user.firstname").",
user.id as user_id, ".($is_western_name_order ? "user.firstname, user.lastname" : "user.lastname, user.firstname").",
user.username,
$select_email_condition
phone,
@ -311,10 +311,10 @@ if (isset($_GET['action'])) {
$sql .= " WHERE
c_id = '$courseId' AND
course_user.relation_type <> ".COURSE_RELATION_TYPE_RRHH." AND
course_user.user_id = user.user_id ";
course_user.user_id = user.id ";
if (api_is_multiple_url_enabled()) {
$sql .= " AND user.user_id = au.user_id AND access_url_id = $current_access_url_id ";
$sql .= " AND user.id = au.user_id AND access_url_id = $current_access_url_id ";
}
// only users no teachers/coaches

@ -6769,7 +6769,7 @@ function WSCertificatesList($startingDate = '', $endingDate = '')
certificate.path_certificate
FROM $certificateTable AS certificate
JOIN $userTable AS user
ON certificate.user_id = user.user_id
ON certificate.user_id = user.id
JOIN $categoryTable AS category
ON certificate.cat_id = category.id";

@ -1580,7 +1580,7 @@ class Wiki
$status_editlock = 0;
}
$sql = 'UPDATE '.$tbl_wiki.' SET
$sql = 'UPDATE '.$tbl_wiki.' SET
editlock="'.Database::escape_string($status_editlock).'"
WHERE c_id = '.$course_id.' AND page_id="'.$id.'"';
Database::query($sql);
@ -1639,11 +1639,11 @@ class Wiki
$status_visibility = 0;
}
$sql = 'UPDATE '.$tbl_wiki.' SET
$sql = 'UPDATE '.$tbl_wiki.' SET
visibility = "'.Database::escape_string($status_visibility).'"
WHERE
c_id = '.$course_id.' AND
reflink="'.Database::escape_string($page).'" AND
WHERE
c_id = '.$course_id.' AND
reflink="'.Database::escape_string($page).'" AND
'.$groupfilter.$condition_session;
Database::query($sql);
@ -1711,7 +1711,7 @@ class Wiki
$status_visibility_disc = 0;
}
$sql = 'UPDATE '.$tbl_wiki.' SET
$sql = 'UPDATE '.$tbl_wiki.' SET
visibility_disc="'.Database::escape_string($status_visibility_disc).'"
WHERE
c_id = '.$course_id.' AND
@ -1889,9 +1889,9 @@ class Wiki
$userId = api_get_user_id();
$sql = 'SELECT * FROM '.$tbl_wiki.'
WHERE
c_id = '.$course_id.' AND
reflink="'.$reflink.'" AND
WHERE
c_id = '.$course_id.' AND
reflink="'.$reflink.'" AND
'.$groupfilter.$condition_session.'
ORDER BY id ASC';
$result = Database::query($sql);
@ -1899,9 +1899,9 @@ class Wiki
$id = $row['id'];
$sql = 'SELECT * FROM '.$tbl_wiki_mailcue.'
WHERE
c_id = '.$course_id.' AND
id="'.$id.'" AND
user_id="'.api_get_user_id().'" AND
c_id = '.$course_id.' AND
id="'.$id.'" AND
user_id="'.api_get_user_id().'" AND
type="P"';
$result = Database::query($sql);
$row = Database::fetch_array($result);
@ -1937,10 +1937,10 @@ class Wiki
1 == $status_notify
) {
$sql = 'DELETE FROM '.$tbl_wiki_mailcue.'
WHERE
id="'.$id.'" AND
user_id="'.api_get_user_id().'" AND
type="P" AND
WHERE
id="'.$id.'" AND
user_id="'.api_get_user_id().'" AND
type="P" AND
c_id = '.$course_id;
Database::query($sql);
$status_notify = 0;
@ -1970,16 +1970,16 @@ class Wiki
$session_id = api_get_session_id();
$sql = 'SELECT * FROM '.$tbl_wiki.'
WHERE
c_id = '.$course_id.' AND
reflink="'.$reflink.'" AND
WHERE
c_id = '.$course_id.' AND
reflink="'.$reflink.'" AND
'.$groupfilter.$condition_session.'
ORDER BY id ASC';
$result = Database::query($sql);
$row = Database::fetch_array($result);
$id = $row['id'];
$sql = 'SELECT * FROM '.$tbl_wiki_mailcue.'
WHERE
WHERE
c_id = '.$course_id.' AND id="'.$id.'" AND user_id="'.api_get_user_id().'" AND type="D"';
$result = Database::query($sql);
$row = Database::fetch_array($result);
@ -2006,11 +2006,11 @@ class Wiki
1 == $status_notify_disc
) {
$sql = 'DELETE FROM '.$tbl_wiki_mailcue.'
WHERE
c_id = '.$course_id.' AND
id="'.$id.'" AND
user_id="'.api_get_user_id().'" AND
type="D" AND
WHERE
c_id = '.$course_id.' AND
id="'.$id.'" AND
user_id="'.api_get_user_id().'" AND
type="D" AND
c_id = '.$course_id;
Database::query($sql);
$status_notify_disc = 0;
@ -2120,9 +2120,9 @@ class Wiki
//second, extract data from first reg
$sql = 'SELECT * FROM '.$tbl_wiki.'
WHERE
c_id = '.$course_id.' AND
reflink="'.$id_or_ref.'" AND
WHERE
c_id = '.$course_id.' AND
reflink="'.$id_or_ref.'" AND
'.$groupfilter.$condition_session.'
ORDER BY id ASC';
$result = Database::query($sql);
@ -2223,10 +2223,10 @@ class Wiki
$sql = 'SELECT * FROM '.$tbl_wiki_mailcue.'
WHERE
c_id = '.$course_id.' AND
id="'.$id.'" AND
type="F" AND
group_id="'.$groupId.'" AND
c_id = '.$course_id.' AND
id="'.$id.'" AND
type="F" AND
group_id="'.$groupId.'" AND
session_id="'.$session_id.'"';
//type: P=page, D=discuss, F=full
@ -3464,9 +3464,9 @@ class Wiki
// Total hidden pages
$total_hidden = 0;
$sql = 'SELECT * FROM '.$tbl_wiki.'
WHERE
c_id = '.$course_id.' AND
visibility = 0 AND
WHERE
c_id = '.$course_id.' AND
visibility = 0 AND
'.$groupfilter.$condition_session.'
GROUP BY reflink';
// or group by page_id. As the mark of hidden places it in all
@ -3479,8 +3479,8 @@ class Wiki
//Total protect pages
$total_protected = 0;
$sql = 'SELECT * FROM '.$tbl_wiki.'
WHERE
c_id = '.$course_id.' AND
WHERE
c_id = '.$course_id.' AND
editlock = 1 AND
'.$groupfilter.$condition_session.'
GROUP BY reflink';
@ -3509,10 +3509,10 @@ class Wiki
$sql = 'SELECT * FROM '.$tbl_wiki.' s1
WHERE s1.c_id = '.$course_id.' AND content="" AND id=(
SELECT MAX(s2.id) FROM '.$tbl_wiki.' s2
WHERE
s1.c_id = '.$course_id.' AND
s1.reflink = s2.reflink AND
'.$groupfilter.' AND
WHERE
s1.c_id = '.$course_id.' AND
s1.reflink = s2.reflink AND
'.$groupfilter.' AND
session_id='.$session_id.'
)';
$allpages = Database::query($sql);
@ -3584,9 +3584,9 @@ class Wiki
WHERE s1.c_id = '.$course_id.' AND assignment=1 AND id=(
SELECT MAX(s2.id)
FROM '.$tbl_wiki.' s2
WHERE
WHERE
s2.c_id = '.$course_id.' AND
s1.reflink = s2.reflink AND
s1.reflink = s2.reflink AND
'.$groupfilter.' AND
session_id='.$session_id.'
)';
@ -3601,10 +3601,10 @@ class Wiki
$sql = 'SELECT * FROM '.$tbl_wiki.' s1
WHERE s1.c_id = '.$course_id.' AND assignment=2 AND
id = (SELECT MAX(s2.id) FROM '.$tbl_wiki.' s2
WHERE
s2.c_id = '.$course_id.' AND
s1.reflink = s2.reflink AND
'.$groupfilter.' AND
WHERE
s2.c_id = '.$course_id.' AND
s1.reflink = s2.reflink AND
'.$groupfilter.' AND
session_id='.$session_id.'
)';
//mark all versions, but do not use group by reflink because y want the pages not versions
@ -3633,7 +3633,7 @@ class Wiki
$first_wiki_date = null;
$sql = 'SELECT * FROM '.$tbl_wiki.'
WHERE c_id = '.$course_id.' AND '.$groupfilter.$condition_session.'
ORDER BY dtime ASC
ORDER BY dtime ASC
LIMIT 1';
$allpages = Database::query($sql);
while ($row = Database::fetch_array($allpages)) {
@ -3645,7 +3645,7 @@ class Wiki
$last_wiki_date = null;
$sql = 'SELECT * FROM '.$tbl_wiki.'
WHERE c_id = '.$course_id.' AND '.$groupfilter.$condition_session.'
ORDER BY dtime DESC
ORDER BY dtime DESC
LIMIT 1';
$allpages = Database::query($sql);
while ($row = Database::fetch_array($allpages)) {
@ -4276,7 +4276,7 @@ class Wiki
WHERE
reviews.c_id = $course_id AND
reviews.publication_id='".$id."' AND
user.user_id='".$firstuserid."'
user.id ='".$firstuserid."'
ORDER BY reviews.id DESC";
$result = Database::query($sql);
@ -4460,19 +4460,19 @@ class Wiki
WHERE s1.c_id = '.$course_id.' AND id=(
SELECT MAX(s2.id) FROM '.$tbl_wiki.' s2
WHERE
s2.c_id = '.$course_id.' AND
s1.reflink = s2.reflink AND
'.$groupfilter.' AND
s2.c_id = '.$course_id.' AND
s1.reflink = s2.reflink AND
'.$groupfilter.' AND
session_id='.$session_id.')';
} else {
// warning don't use group by reflink because does not return the last version
$sql = 'SELECT * FROM '.$tbl_wiki.' s1
WHERE visibility=1 AND s1.c_id = '.$course_id.' AND id=(
SELECT MAX(s2.id) FROM '.$tbl_wiki.' s2
WHERE
s2.c_id = '.$course_id.' AND
WHERE
s2.c_id = '.$course_id.' AND
s1.reflink = s2.reflink AND
'.$groupfilter.' AND
'.$groupfilter.' AND
session_id='.$session_id.')';
}
@ -6769,8 +6769,8 @@ class Wiki
}
$sql_new = "SELECT * FROM $tbl_wiki
WHERE
c_id = $course_id AND
WHERE
c_id = $course_id AND
id = '".Database::escape_string($_POST['new'])."'";
$result_new = Database::query($sql_new);
$version_new = Database::fetch_array($result_new);

@ -17,7 +17,6 @@
{% endblock %}
<body
class="{{ section_name }} "
{# {{ sonata_seo_html_attributes() }}#}
data-in-course="{{ course ? 'true' : 'false' }}"
data-course-code="{{ course ? course.code : '' }}"
data-session-id="{{ session ? session.id : '' }}"

@ -441,16 +441,20 @@
{% endif %}
<dt>{{ 'OfficialCode'|trans }}</dt>
<dd>{{ user.code == '' ? 'NoOfficialCode'|trans : user.code }}</dd>
{% if user.official_code is defined %}
<dd>{{ user.official_code }}</dd>
{% else %}
<dd>{{ 'NoOfficialCode'|trans }}</dd>
{% endif %}
<dt>{{ 'OnLine'|trans }}</dt>
<dd>
{{ user.user_is_online }}
{{ user.online }}
{# {{ user.online }}#}
</dd>
<dt>{{ 'Tel'|trans }}</dt>
<dd>{{ user.phone == '' ? 'NoTel'|trans : user.phone }}</dd>
{% if user.timezone %}
{% if user.timezone is defined %}
<dt>{{ 'Timezone'|trans }}</dt>
<dd>{{ user.timezone }}</dd>
{% endif %}
@ -460,12 +464,12 @@
<div class="create">{{ user.created }}</div>
{% endif %}
{% if user.url_access or user.legal.url_send %}
<div class="access">
{{ user.url_access }}
{{ user.legal.url_send }}
</div>
{% endif %}
{# {% if user.url_access or user.legal.url_send %}#}
{# <div class="access">#}
{# {{ user.url_access }}#}
{# {{ user.legal.url_send }}#}
{# </div>#}
{# {% endif %}#}
</div>
{% endautoescape %}
{% endmacro %}
@ -479,7 +483,7 @@
</div>
<div class="name">
<h3>
{% if user.complete_name_link %}
{% if user.complete_name_link is defined %}
{{ user.complete_name_link }}
{% else %}
{{ user.complete_name }}

Loading…
Cancel
Save