bugfix with pagination in sortable table

skala
Patrick Cool 15 years ago
parent 60eadf9196
commit 0c09148098
  1. 108
      main/user/subscribe_user.php

@ -35,21 +35,23 @@
*/ */
// name of the language file that needs to be included // name of the language file that needs to be included
$language_file = array('registration','admin'); $language_file = array('registration','admin');
// including the global Dokeos file // including the global Dokeos file
include ('../inc/global.inc.php'); include ('../inc/global.inc.php');
// the section (for the tabs) // the section (for the tabs)
$this_section = SECTION_COURSES; $this_section = SECTION_COURSES;
// access restriction // access restriction
if (!api_is_allowed_to_edit()) { if (!api_is_allowed_to_edit()) {
api_not_allowed(true); api_not_allowed(true);
} }
// including additional libraries // including additional libraries
require_once (api_get_path(LIBRARY_PATH).'course.lib.php'); require_once (api_get_path(LIBRARY_PATH).'course.lib.php');
require_once (api_get_path(LIBRARY_PATH).'sortabletable.class.php'); require_once (api_get_path(LIBRARY_PATH).'sortabletable.class.php');
require_once (api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php'); require_once (api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php');
require_once (api_get_path(LIBRARY_PATH).'usermanager.lib.php'); require_once (api_get_path(LIBRARY_PATH).'usermanager.lib.php');
/* /*
============================================================================== ==============================================================================
@ -199,7 +201,7 @@ function get_number_of_users() {
$user_table = Database :: get_main_table(TABLE_MAIN_USER); $user_table = Database :: get_main_table(TABLE_MAIN_USER);
$course_user_table = Database :: get_main_table(TABLE_MAIN_COURSE_USER); $course_user_table = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$table_user_field_values = Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES); $table_user_field_values = Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES);
if (isset($_REQUEST['type']) && $_REQUEST['type']=='teacher') { if (isset($_REQUEST['type']) && $_REQUEST['type']=='teacher') {
$sql = "SELECT u.user_id $sql = "SELECT u.user_id
FROM $user_table u FROM $user_table u
@ -228,7 +230,7 @@ function get_number_of_users() {
LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'"; LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'";
// we change the SQL when we have a filter // we change the SQL when we have a filter
if (isset($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){
$field_identification = explode('*',$_GET['subscribe_user_filter_value']); $field_identification = explode('*',$_GET['subscribe_user_filter_value']);
$sql .= " $sql .= "
LEFT JOIN $table_user_field_values field_values LEFT JOIN $table_user_field_values field_values
@ -262,7 +264,7 @@ function get_number_of_users() {
} }
// when there is a keyword then we are searching and we have to change the SQL statement // when there is a keyword then we are searching and we have to change the SQL statement
if (isset ($_REQUEST['keyword'])) { if (isset ($_GET['keyword']) AND !empty($_GET['keyword'])) {
$keyword = Database::escape_string($_REQUEST['keyword']); $keyword = Database::escape_string($_REQUEST['keyword']);
$sql .= " AND (firstname LIKE '%".$keyword."%' OR lastname LIKE '%".$keyword."%' OR email LIKE '%".$keyword."%' OR username LIKE '%".$keyword."%' OR official_code LIKE '%".$keyword."%')"; $sql .= " AND (firstname LIKE '%".$keyword."%' OR lastname LIKE '%".$keyword."%' OR email LIKE '%".$keyword."%' OR username LIKE '%".$keyword."%' OR official_code LIKE '%".$keyword."%')";
@ -333,7 +335,7 @@ function get_user_data($from, $number_of_items, $column, $direction) {
LEFT JOIN $tbl_session_rel_course_user cu on u.user_id = cu.id_user and course_code='".$_SESSION['_course']['id']."'"; LEFT JOIN $tbl_session_rel_course_user cu on u.user_id = cu.id_user and course_code='".$_SESSION['_course']['id']."'";
// applying the filter of the additional user profile fields // applying the filter of the additional user profile fields
if (isset($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ if (isset($_GET['subscribe_user_filter_value']) !empty($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){
$field_identification = explode('*',$_GET['subscribe_user_filter_value']); $field_identification = explode('*',$_GET['subscribe_user_filter_value']);
$sql .= " $sql .= "
LEFT JOIN $table_user_field_values field_values LEFT JOIN $table_user_field_values field_values
@ -341,8 +343,8 @@ function get_user_data($from, $number_of_items, $column, $direction) {
WHERE cu.user_id IS NULL WHERE cu.user_id IS NULL
AND field_values.field_id = '".Database::escape_string($field_identification[0])."' AND field_values.field_id = '".Database::escape_string($field_identification[0])."'
AND field_values.field_value = '".Database::escape_string($field_identification[1])."'"; AND field_values.field_value = '".Database::escape_string($field_identification[1])."'";
} else { } else {
$sql .= "WHERE cu.user_id IS NULL"; $sql .= "WHERE cu.user_id IS NULL";
} }
} else { } else {
// adding a teacher NOT through a session // adding a teacher NOT through a session
@ -361,7 +363,7 @@ function get_user_data($from, $number_of_items, $column, $direction) {
LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'"; LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'";
// applying the filter of the additional user profile fields // applying the filter of the additional user profile fields
if (isset($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){
$field_identification = explode('*',$_GET['subscribe_user_filter_value']); $field_identification = explode('*',$_GET['subscribe_user_filter_value']);
$sql .= " $sql .= "
LEFT JOIN $table_user_field_values field_values LEFT JOIN $table_user_field_values field_values
@ -374,8 +376,8 @@ function get_user_data($from, $number_of_items, $column, $direction) {
} }
//showing only the courses of the current Dokeos access_url_id //showing only the courses of the current Dokeos access_url_id
global $_configuration; global $_configuration;
// adding a teacher NOT trough a session on a portal with multiple URLs // adding a teacher NOT trough a session on a portal with multiple URLs
if ($_configuration['multiple_access_urls']==true) { if ($_configuration['multiple_access_urls']==true) {
$url_access_id = api_get_current_access_url_id(); $url_access_id = api_get_current_access_url_id();
if ($url_access_id !=-1) { if ($url_access_id !=-1) {
@ -399,7 +401,7 @@ function get_user_data($from, $number_of_items, $column, $direction) {
// applying the filter of the additional user profile fields // applying the filter of the additional user profile fields
if (isset($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){
$field_identification = explode('*',$_GET['subscribe_user_filter_value']); $field_identification = explode('*',$_GET['subscribe_user_filter_value']);
$sql .= " $sql .= "
LEFT JOIN $table_user_field_values field_values LEFT JOIN $table_user_field_values field_values
@ -414,7 +416,7 @@ function get_user_data($from, $number_of_items, $column, $direction) {
} }
} }
} else { } else {
// adding a student // adding a student
if (!empty($_SESSION["id_session"])) { if (!empty($_SESSION["id_session"])) {
$sql = "SELECT $sql = "SELECT
u.user_id AS col0, u.user_id AS col0,
@ -428,20 +430,20 @@ function get_user_data($from, $number_of_items, $column, $direction) {
u.active AS col5, u.active AS col5,
u.user_id AS col6 u.user_id AS col6
FROM $user_table u FROM $user_table u
LEFT JOIN $tbl_session_rel_course_user cu on u.user_id = cu.id_user and course_code='".$_SESSION['_course']['id']."'"; LEFT JOIN $tbl_session_rel_course_user cu on u.user_id = cu.id_user and course_code='".$_SESSION['_course']['id']."'";
// applying the filter of the additional user profile fields // applying the filter of the additional user profile fields
if (isset($_GET['subscribe_user_filter_value'])){ if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value'])){
$field_identification = explode('*',$_GET['subscribe_user_filter_value']); $field_identification = explode('*',$_GET['subscribe_user_filter_value']);
$sql .= " $sql .= "
LEFT JOIN $table_user_field_values field_values LEFT JOIN $table_user_field_values field_values
ON field_values.user_id = u.user_id ON field_values.user_id = u.user_id
WHERE cu.user_id IS NULL WHERE cu.user_id IS NULL
AND field_values.field_id = '".Database::escape_string($field_identification[0])."' AND field_values.field_id = '".Database::escape_string($field_identification[0])."'
AND field_values.field_value = '".Database::escape_string($field_identification[1])."'"; AND field_values.field_value = '".Database::escape_string($field_identification[1])."'";
} else { } else {
$sql .= "WHERE cu.user_id IS NULL"; $sql .= "WHERE cu.user_id IS NULL";
} }
} else { } else {
$sql = "SELECT $sql = "SELECT
u.user_id AS col0, u.user_id AS col0,
@ -455,20 +457,20 @@ function get_user_data($from, $number_of_items, $column, $direction) {
u.active AS col5, u.active AS col5,
u.user_id AS col6 u.user_id AS col6
FROM $user_table u FROM $user_table u
LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'"; LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'";
// applying the filter of the additional user profile fields // applying the filter of the additional user profile fields
if (isset($_GET['subscribe_user_filter_value'])){ if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value'])){
$field_identification = explode('*',$_GET['subscribe_user_filter_value']); $field_identification = explode('*',$_GET['subscribe_user_filter_value']);
$sql .= " $sql .= "
LEFT JOIN $table_user_field_values field_values LEFT JOIN $table_user_field_values field_values
ON field_values.user_id = u.user_id ON field_values.user_id = u.user_id
WHERE cu.user_id IS NULL WHERE cu.user_id IS NULL
AND field_values.field_id = '".Database::escape_string($field_identification[0])."' AND field_values.field_id = '".Database::escape_string($field_identification[0])."'
AND field_values.field_value = '".Database::escape_string($field_identification[1])."'"; AND field_values.field_value = '".Database::escape_string($field_identification[1])."'";
} else { } else {
$sql .= "WHERE cu.user_id IS NULL"; $sql .= "WHERE cu.user_id IS NULL";
} }
//showing only the courses of the current Dokeos access_url_id //showing only the courses of the current Dokeos access_url_id
global $_configuration; global $_configuration;
@ -495,7 +497,7 @@ function get_user_data($from, $number_of_items, $column, $direction) {
// applying the filter of the additional user profile fields // applying the filter of the additional user profile fields
if (isset($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){
$field_identification = explode('*',$_GET['subscribe_user_filter_value']); $field_identification = explode('*',$_GET['subscribe_user_filter_value']);
$sql .= " $sql .= "
LEFT JOIN $table_user_field_values field_values LEFT JOIN $table_user_field_values field_values
@ -615,7 +617,7 @@ $sort_by_first_name = api_sort_by_first_name();
echo '<div class="actions">'; echo '<div class="actions">';
$actions .= '<a href="user.php">'.Display::return_icon('members.gif',get_lang('BackToUserList')).' '.get_lang('BackToUserList').'</a>'; $actions .= '<a href="user.php">'.Display::return_icon('members.gif',get_lang('BackToUserList')).' '.get_lang('BackToUserList').'</a>';
if ($_POST['keyword']) if ($_GET['keyword'] AND !empty($_GET['keyword']))
{ {
$actions .= '<a href="subscribe_user.php?type='.Security::remove_XSS($_GET['type']).'">'.Display::return_icon('clean_group.gif').' '.get_lang('ClearSearchResults').'</a>'; $actions .= '<a href="subscribe_user.php?type='.Security::remove_XSS($_GET['type']).'">'.Display::return_icon('clean_group.gif').' '.get_lang('ClearSearchResults').'</a>';
} }
@ -627,7 +629,7 @@ if (api_get_setting('ProfilingFilterAddingUsers') == 'true') {
display_extra_profile_fields_filter(); display_extra_profile_fields_filter();
} }
$form = new FormValidator('search_user', 'POST',api_get_self().'?type='.$_REQUEST['type'],'',null,false); $form = new FormValidator('search_user', 'GET',api_get_self().'?type='.$_REQUEST['type'],'',null,false);
$renderer = & $form->defaultRenderer(); $renderer = & $form->defaultRenderer();
$renderer->setElementTemplate('<span>{element}</span> '); $renderer->setElementTemplate('<span>{element}</span> ');
$form->add_textfield('keyword', '', false); $form->add_textfield('keyword', '', false);
@ -762,10 +764,4 @@ function display_extra_profile_fields_filter()
echo '<button type="submit" name="submit_filter" id="submit_filter" value="" class="search">'.get_lang('Filter').'</button>'; echo '<button type="submit" name="submit_filter" id="submit_filter" value="" class="search">'.get_lang('Filter').'</button>';
echo '</form>'; echo '</form>';
}
function debug($var) {
echo '<pre>';
print_r($var);
echo '</pre>';
} }
Loading…
Cancel
Save