Fix queries.

1.10.x
Julio Montoya 11 years ago
parent 16d222f740
commit 7a48963223
  1. 14
      main/inc/lib/course.lib.php
  2. 35
      main/inc/lib/document.lib.php
  3. 54
      main/user/subscribe_user.php
  4. 9
      main/user/user.php

@ -669,7 +669,7 @@ class CourseManager
* @return boolean true if subscription succeeds, boolean false otherwise.
* @assert ('', '') === false
*/
public static function add_user_to_course($user_id, $course_code, $status = STUDENT)
public static function add_user_to_course($user_id, $course_code, $status = STUDENT, $userCourseCategoryId = 0)
{
$debug = false;
$user_table = Database::get_main_table(TABLE_MAIN_USER);
@ -723,7 +723,8 @@ class CourseManager
'c_id' => $courseId,
'user_id' => $user_id,
'status' => $status,
'sort' => $max_sort + 1
'sort' => $max_sort + 1,
'user_course_cat' => $userCourseCategoryId
];
$insertId = Database::insert($course_user_table, $params);
@ -3743,8 +3744,10 @@ class CourseManager
while ($row = Database::fetch_array($result)) {
// We simply display the title of the category.
$params = array(
'icon' => Display::return_icon('folder_yellow.png', api_htmlentities($row['title']), array(),
ICON_SIZE_LARGE),
'icon' => Display::return_icon(
'folder_yellow.png',
api_htmlentities($row['title']), array(), ICON_SIZE_LARGE
),
'title' => $row['title'],
'class' => 'table_user_course_category'
);
@ -3759,6 +3762,7 @@ class CourseManager
// Step 2: We display the course without a user category.
$courseInCategory = self:: display_courses_in_category(0, $load_dirs);
$html .= $courseInCategory['html'];
$courseCount += $courseInCategory['course_count'];
@ -3809,7 +3813,7 @@ class CourseManager
course.id = course_rel_user.c_id AND
url.c_id = course.id AND
course_rel_user.user_id = '" . $user_id . "' AND
course_rel_user.user_course_cat='" . $user_category_id . "'
course_rel_user.user_course_cat = '" . $user_category_id . "'
$without_special_courses ";
// If multiple URL access mode is enabled, only fetch courses

@ -3184,7 +3184,7 @@ class DocumentManager
$overwrite_url = null,
$showInvisibleFiles = false,
$showOnlyFolders = false,
$folderId = 0
$folderId = false
) {
if (empty($course_info['real_id']) || empty($course_info['code']) || !is_array($course_info)) {
return '';
@ -3231,7 +3231,7 @@ class DocumentManager
$tbl_doc = Database::get_course_table(TABLE_DOCUMENT);
$tbl_item_prop = Database::get_course_table(TABLE_ITEM_PROPERTY);
$condition_session = " AND (session_id = '$session_id' OR session_id = '0' )";
$condition_session = " AND (last.session_id = '$session_id' OR last.session_id = '0' )";
$add_folder_filter = null;
if (!empty($filter_by_folder)) {
@ -3261,7 +3261,8 @@ class DocumentManager
}
}
if ($folderId !== 0) {
$parentData = [];
if ($folderId !== false) {
$parentData = self::get_document_data_by_id($folderId, $course_info['code']);
if (!empty($parentData)) {
$cleanedPath = $parentData['path'];
@ -3285,7 +3286,6 @@ class DocumentManager
}
$levelCondition = null;
if ($folderId === false) {
$levelCondition = " AND docs.path NOT LIKE'/%/%'";
}
@ -3334,6 +3334,7 @@ class DocumentManager
// If you want to debug it, I advise you to do "echo" on the eval statements.
$newResources = array();
if (!empty($resources) && $user_in_course) {
foreach ($resources as $resource) {
$is_visible = self::is_visible_by_id(
@ -3351,16 +3352,20 @@ class DocumentManager
}
$label = get_lang('Documents');
$documents = [];
if ($folderId === false) {
$documents[$label] = array(
'id' => 0,
'files' => $newResources
);
} else {
$documents[$parentData['title']] = array(
'id' => intval($folderId),
'files' => $newResources
);
if (!empty($parentData)) {
$documents[$parentData['title']] = array(
'id' => intval($folderId),
'files' => $newResources
);
}
}
$write_result = self::write_resources_tree(
@ -3618,7 +3623,6 @@ class DocumentManager
}
$return .= '<img style="cursor: pointer;" src="'.$image.'" align="absmiddle" id="img_'.$resource['id'] . '" '.$onclick.'>';
$return .= '<img alt="" src="' . $img_path . 'lp_folder.gif" title="" align="absmiddle" />&nbsp;';
$return .= '<span '.$onclick.' style="cursor: pointer;" >'.$title.'</span>';
$return .= '</li>';
@ -5768,15 +5772,16 @@ class DocumentManager
public static function create_dir_form($dirId)
{
global $document_id;
$form = new FormValidator('create_dir_form', 'post', api_get_self().'?'.api_get_cidreq(), '', null, false);
$form = new FormValidator('create_dir_form', 'post', api_get_self().'?'.api_get_cidreq());
$form->addElement('hidden', 'create_dir', 1);
$form->addElement('hidden', 'dir_id', intval($document_id));
$form->addElement('hidden', 'id', intval($dirId));
$form->addElement('header', '', get_lang('CreateDir'));
$form->addElement('text', 'dirname', get_lang('NewDir'), array('autofocus' => 'autofocus'));
$form->addButtonCreate(get_lang('CreateFolder'), 'submit');
$new_folder_text = $form->returnForm();
return $new_folder_text;
$form->addElement('header', get_lang('CreateDir'));
$form->addText('dirname', get_lang('NewDir'), array('autofocus' => 'autofocus'));
$form->addButtonCreate(get_lang('CreateFolder'));
return $form->returnForm();
}
/**

@ -77,12 +77,20 @@ $list_not_register_user='';
if (isset($_REQUEST['register'])) {
if ($type =='teacher') {
if (!empty($current_session_id)) {
$result_simple_sub = SessionManager::set_coach_to_course_session($_REQUEST['user_id'], $current_session_id, $_course['sysCode']);
$result_simple_sub = SessionManager::set_coach_to_course_session(
$_REQUEST['user_id'],
$current_session_id,
$_course['code']
);
} else {
$result_simple_sub = CourseManager :: subscribe_user($_REQUEST['user_id'], $_course['sysCode'], COURSEMANAGER);
$result_simple_sub = CourseManager:: subscribe_user(
$_REQUEST['user_id'],
$_course['code'],
COURSEMANAGER
);
}
} else {
$result_simple_sub=CourseManager :: subscribe_user($_REQUEST['user_id'], $_course['sysCode']);
$result_simple_sub = CourseManager :: subscribe_user($_REQUEST['user_id'], $_course['code']);
}
$user_id_temp = $_SESSION['session_user_id'];
@ -106,7 +114,7 @@ if (isset($_REQUEST['register'])) {
if (isset ($_POST['action'])) {
switch ($_POST['action']) {
case 'subscribe' :
case 'subscribe':
if (is_array($_POST['user'])) {
foreach ($_POST['user'] as $index => $user_id) {
$user_id=intval($user_id);
@ -118,12 +126,12 @@ if (isset ($_POST['action'])) {
$_course['sysCode']
);
} else {
$is_suscribe[] = CourseManager::subscribe_user($user_id, $_course['sysCode'],COURSEMANAGER);
$is_suscribe[] = CourseManager::subscribe_user($user_id, $_course['code'],COURSEMANAGER);
}
} else {
$is_suscribe[]=CourseManager::subscribe_user($user_id, $_course['sysCode']);
$is_suscribe[] = CourseManager::subscribe_user($user_id, $_course['code']);
}
$is_suscribe_user_id[]=$user_id;
$is_suscribe_user_id[] = $user_id;
}
}
@ -132,8 +140,8 @@ if (isset ($_POST['action'])) {
unset($_SESSION['session_user_id']);
unset($_SESSION['session_user_name']);
$counter=0;
$is_suscribe_counter=count($is_suscribe_user_id);
$counter = 0;
$is_suscribe_counter = count($is_suscribe_user_id);
$list_register_user='';
@ -181,7 +189,12 @@ $is_western_name_order = api_is_western_name_order();
$sort_by_first_name = api_sort_by_first_name();
// Build table
$table = new SortableTable('subscribe_users', 'get_number_of_users', 'get_user_data', ($is_western_name_order xor $sort_by_first_name) ? 3 : 2);
$table = new SortableTable(
'subscribe_users',
'get_number_of_users',
'get_user_data',
($is_western_name_order xor $sort_by_first_name) ? 3 : 2
);
$parameters['keyword'] = $keyword;
$parameters['type'] = $type;
$table->set_additional_parameters($parameters);
@ -247,7 +260,7 @@ function get_number_of_users()
u.status = 1 AND
(u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
if ($_configuration['multiple_access_urls']) {
if (api_is_multiple_url_enabled()) {
$url_access_id = api_get_current_access_url_id();
if ($url_access_id !=-1) {
$tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
@ -257,7 +270,12 @@ function get_number_of_users()
ON u.user_id = cu.user_id and cu.c_id = '".api_get_course_int_id()."' AND session_id ='".api_get_session_id()."'
INNER JOIN $tbl_url_rel_user as url_rel_user
ON (url_rel_user.user_id = u.user_id)
WHERE cu.user_id IS NULL AND access_url_id= $url_access_id AND u.status=1 AND (u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
WHERE
cu.user_id IS NULL AND
access_url_id= $url_access_id AND
u.status = 1 AND
(u.official_code <> 'ADMIN' OR u.official_code IS NULL)
";
}
}
} else {
@ -298,7 +316,7 @@ function get_number_of_users()
u.status<>".DRH." AND
(u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
if ($_configuration['multiple_access_urls']) {
if (api_is_multiple_url_enabled()) {
$url_access_id = api_get_current_access_url_id();
if ($url_access_id !=-1) {
$tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
@ -340,7 +358,7 @@ function get_number_of_users()
$sql .= "WHERE cu.user_id IS NULL AND u.status<>".DRH." ";
}
if (isset($_configuration['multiple_access_urls']) && $_configuration['multiple_access_urls']) {
if (api_is_multiple_url_enabled()) {
$url_access_id = api_get_current_access_url_id();
if ($url_access_id !=-1) {
@ -534,7 +552,7 @@ function get_user_data($from, $number_of_items, $column, $direction)
c_id ='".$courseId."' AND
session_id ='".$session_id."' ";
if (isset($_configuration['multiple_access_urls']) && $_configuration['multiple_access_urls']) {
if (api_is_multiple_url_enabled()) {
$sql .= " INNER JOIN $tbl_url_rel_user as url_rel_user ON (url_rel_user.user_id = u.user_id) ";
}
@ -557,7 +575,7 @@ function get_user_data($from, $number_of_items, $column, $direction)
(u.official_code <> 'ADMIN' OR u.official_code IS NULL) ";
}
if (isset($_configuration['multiple_access_urls']) && $_configuration['multiple_access_urls']) {
if (api_is_multiple_url_enabled()) {
$sql .= "AND access_url_id = $url_access_id";
}
@ -586,10 +604,8 @@ function get_user_data($from, $number_of_items, $column, $direction)
//showing only the courses of the current Chamilo access_url_id
if (isset($_configuration['multiple_access_urls']) && $_configuration['multiple_access_urls']) {
if (api_is_multiple_url_enabled()) {
if ($url_access_id !=-1) {
$sql = "SELECT $select_fields
FROM $user_table u
LEFT JOIN $course_user_table cu

@ -384,14 +384,15 @@ if (api_is_allowed_to_edit(null, true)) {
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$sql = 'SELECT '.$tbl_user.'.user_id
$sql = 'SELECT user.user_id
FROM '.$tbl_user.' user
INNER JOIN '.$tbl_session_rel_user.' reluser
ON user.user_id = reluser.user_id AND reluser.relation_type<>'.SESSION_RELATION_TYPE_RRHH.'
INNER JOIN '.$tbl_session_rel_course.' rel_course
ON rel_course.session_id = reluser.id_session
WHERE user.user_id = "'.$user_id.'"
AND rel_course.c_id = "'.$courseId.'"';
ON rel_course.session_id = reluser.session_id
WHERE
user.user_id = "'.$user_id.'" AND
rel_course.c_id = "'.$courseId.'"';
$result = Database::query($sql);
$row = Database::fetch_array($result, 'ASSOC');

Loading…
Cancel
Save