[svn r18449] Filter students by the extra_fields when adding users to a session (see FS#3462)

skala
Julio Montoya 16 years ago
parent f411f963ba
commit bf629047d2
  1. 159
      main/admin/add_users_to_session.php
  2. 108
      main/admin/user_fields.php
  3. 10
      main/auth/profile.php
  4. 106
      main/inc/lib/usermanager.lib.php

@ -49,7 +49,7 @@ api_protect_admin_script(true);
// setting breadcrumbs
$interbreadcrumb[]=array('url' => 'index.php','name' => get_lang('PlatformAdmin'));
$interbreadcrumb[]=array('url' => "session_list.php","name" => get_lang('SessionList'));
$interbreadcrumb[]=array('url' => 'session_list.php','name' => get_lang('SessionList'));
// Database Table Definitions
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
@ -68,8 +68,8 @@ $tool_name=get_lang('SubscribeUsersToSession');
$id_session=intval($_GET['id_session']);
$add_type = 'unique';
if(isset($_GET['add_type']) && $_GET['add_type']!=''){
$add_type = $_GET['add_type'];
if(isset($_REQUEST['add_type']) && $_REQUEST['add_type']!=''){
$add_type = $_REQUEST['add_type'];
}
if(!api_is_platform_admin()) {
@ -80,6 +80,19 @@ if(!api_is_platform_admin()) {
}
}
//checking for extra field with filter on
include_once (api_get_path(LIBRARY_PATH).'usermanager.lib.php');
$extra_field_list= UserManager::get_extra_fields();
$new_field_list = array();
if (is_array($extra_field_list)) {
foreach ($extra_field_list as $extra_field) {
//if is enabled to filter and is a "<select>" field type
if ($extra_field[8]==1 && $extra_field[2]==4 ) {
$new_field_list[] = array('name'=> $extra_field[1], 'variable'=>$extra_field[1], 'data'=> $extra_field[9]);
}
}
}
function search_users($needle)
{
@ -165,17 +178,28 @@ function remove_item(origin)
}
}
}
function validate_filter() {
document.formulaire.add_type.value = \''.$add_type.'\';
document.formulaire.form_sent.value=0;
document.formulaire.submit();
}
</script>';
$formSent=0;
$form_sent=0;
$errorMsg=$firstLetterUser=$firstLetterSession='';
$UserList=$SessionList=array();
$users=$sessions=array();
$noPHP_SELF=true;
if($_POST['formSent']) {
$formSent=$_POST['formSent'];
if($_POST['form_sent']) {
$form_sent=$_POST['form_sent'];
$firstLetterUser=$_POST['firstLetterUser'];
$firstLetterSession=$_POST['firstLetterSession'];
$UserList=$_POST['sessionUsersList'];
@ -184,7 +208,7 @@ if($_POST['formSent']) {
$UserList=array();
}
if ($formSent == 1) {
if ($form_sent == 1) {
$sql = "SELECT id_user FROM $tbl_session_rel_user WHERE id_session='$id_session'";
$result = api_sql_query($sql,__FILE__,__LINE__);
$existingUsers = array();
@ -256,7 +280,6 @@ if($_POST['formSent']) {
//header('Location: '.$_GET['page'].'?id_session='.$id_session);
//else
header('Location: resume_session.php?id_session='.$id_session);
}
}
@ -268,6 +291,7 @@ $nosessionUsersList = $sessionUsersList = array();
$rs = api_sql_query($sql, __FILE__, __LINE__);
$count_courses = Database::result($rs, 0, 0);*/
$ajax_search = $add_type == 'unique' ? true : false;
global $_configuration;
if ($ajax_search) {
$sql="SELECT user_id, lastname, firstname, username, id_session
@ -276,8 +300,7 @@ if ($ajax_search) {
ON $tbl_session_rel_user.id_user = $tbl_user.user_id
AND $tbl_session_rel_user.id_session = ".intval($id_session)."
ORDER BY lastname,firstname,username";
global $_configuration;
if ($_configuration['multiple_access_urls']==true) {
$tbl_user_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$access_url_id = api_get_current_access_url_id();
@ -291,23 +314,78 @@ if ($ajax_search) {
WHERE access_url_id = $access_url_id
ORDER BY lastname,firstname,username";
}
}
}
$result=api_sql_query($sql,__FILE__,__LINE__);
$Users=api_store_result($result);
foreach($Users as $user) {
$Users=api_store_result($result);
foreach ($Users as $user) {
$sessionUsersList[$user['user_id']] = $user ;
}
} else {
$use_extra_fields = false;
if (is_array($extra_field_list)) {
if (is_array($new_field_list) && count($new_field_list)>0 ) {
$result_list=array();
foreach ($new_field_list as $new_field) {
$varname = 'field_'.$new_field['variable'];
if (Usermanager::is_extra_field_available($new_field['variable'])) {
if (isset($_POST[$varname]) && $_POST[$varname]!='0') {
$use_extra_fields = true;
$extra_field_result[]= Usermanager::get_extra_user_data_by_value($new_field['variable'], $_POST[$varname]);
}
}
}
}
}
if ($use_extra_fields) {
$final_result = array();
if (count($extra_field_result)>1) {
for($i=0;$i<count($extra_field_result)-1;$i++) {
if (is_array($extra_field_result[$i+1])) {
$final_result = array_intersect($extra_field_result[$i],$extra_field_result[$i+1]);
}
}
} else {
$final_result = $extra_field_result[0];
}
$where_filter ='';
if ($_configuration['multiple_access_urls']==true) {
if (is_array($final_result) && count($final_result)>0) {
$where_filter = " AND u.user_id IN ('".implode("','",$final_result)."') ";
} else {
//no results
$where_filter = " AND u.user_id = -1";
}
} else {
if (is_array($final_result) && count($final_result)>0) {
$where_filter = " WHERE u.user_id IN ('".implode("','",$final_result)."') ";
} else {
//no results
$where_filter = " WHERE u.user_id = -1";
}
}
}
$sql="SELECT user_id, lastname, firstname, username, id_session
FROM $tbl_user
$table_user_field = Database::get_main_table(TABLE_MAIN_USER_FIELD);
$table_user_field_values = Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES);
if ($use_extra_fields) {
$sql="SELECT user_id, lastname, firstname, username, id_session
FROM $tbl_user u
LEFT JOIN $tbl_session_rel_user
ON $tbl_session_rel_user.id_user = $tbl_user.user_id AND id_session = '$id_session'
ON $tbl_session_rel_user.id_user = $tbl_user.user_id AND id_session = '$id_session'
$where_filter
ORDER BY lastname,firstname,username";
global $_configuration;
} else {
$sql="SELECT user_id, lastname, firstname, username, id_session
FROM $tbl_user u
LEFT JOIN $tbl_session_rel_user
ON $tbl_session_rel_user.id_user = $tbl_user.user_id AND id_session = '$id_session'
ORDER BY lastname,firstname,username";
}
if ($_configuration['multiple_access_urls']==true) {
$tbl_user_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$access_url_id = api_get_current_access_url_id();
@ -317,11 +395,11 @@ if ($ajax_search) {
LEFT JOIN $tbl_session_rel_user
ON $tbl_session_rel_user.id_user = u.user_id AND id_session = '$id_session'
INNER JOIN $tbl_user_rel_access_url url_user ON (url_user.user_id=u.user_id)
WHERE access_url_id = $access_url_id
WHERE access_url_id = $access_url_id $where_filter
ORDER BY lastname,firstname,username";
}
}
$result=api_sql_query($sql,__FILE__,__LINE__);
$Users=api_store_result($result);
//var_dump($_REQUEST['id_session']);
@ -333,7 +411,6 @@ if ($ajax_search) {
}
}
if ($add_type == 'multiple') {
$link_add_type_unique = '<a href="'.api_get_self().'?id_session='.$id_session.'&add='.$_GET['add'].'&add_type=unique">'.get_lang('SessionAddTypeUnique').'</a>';
$link_add_type_multiple = get_lang('SessionAddTypeMultiple');
@ -351,7 +428,37 @@ if ($add_type == 'multiple') {
<br><br>
<form name="formulaire" method="post" action="<?php echo api_get_self(); ?>?page=<?php echo $_GET['page'] ?>&id_session=<?php echo $id_session; ?><?php if(!empty($_GET['add'])) echo '&add=true' ; ?>" style="margin:0px;">
<input type="hidden" name="formSent" value="1" />
<?php
if ($add_type=='multiple') {
if (is_array($extra_field_list)) {
if (is_array($new_field_list) && count($new_field_list)>0 ) {
foreach ($new_field_list as $new_field) {
echo $new_field['name'];
$varname = 'field_'.$new_field['variable'];
echo '&nbsp;<select name="'.$varname.'">';
echo '<option value="0">--'.get_lang('Select').'--</option>';
foreach ($new_field['data'] as $option) {
$checked='';
if (isset($_POST[$varname])) {
if ($_POST[$varname]==$option[1]) {
$checked = 'selected="true"';
}
}
echo '<option value="'.$option[1].'" '.$checked.'>'.$option[1].'</option>';
}
echo '</select>';
echo '&nbsp;&nbsp;';
}
echo '<input type="button" value="'.get_lang('Filter').'" onclick="validate_filter()" />';
echo '<br /><br />';
}
}
}
?>
<input type="hidden" name="form_sent" value="1" />
<input type="hidden" name="add_type" />
<?php
if(!empty($errorMsg)) {
@ -360,8 +467,6 @@ if(!empty($errorMsg)) {
?>
<table border="0" cellpadding="5" cellspacing="0" width="100%">
<!-- Users -->
<tr>
<td align="center"><b><?php echo get_lang('UserListInPlatform') ?> :</b>
@ -380,10 +485,8 @@ if(!empty($errorMsg)) {
<div id="ajax_list_users"></div>
<?php
} else {
?>
?>
<select id="origin_users" name="nosessionUsersList[]" multiple="multiple" size="15" style="width:300px;">
<?php
foreach($nosessionUsersList as $enreg) {
?>

@ -57,88 +57,77 @@ if(1)
if (isset ($_GET['action']))
{
$check = Security::check_token('get');
if($check)
{
switch ($_GET['action'])
{
if($check) {
switch ($_GET['action']) {
case 'show_message' :
Display :: display_normal_message($_GET['message']);
break;
break;
case 'show_field' :
if (api_is_platform_admin() && !empty($_GET['field_id']) && UserManager :: update_extra_field($_GET['field_id'],array('field_visible'=>'1')))
{
if (api_is_platform_admin() && !empty($_GET['field_id']) && UserManager :: update_extra_field($_GET['field_id'],array('field_visible'=>'1'))) {
Display :: display_confirmation_message(get_lang('FieldShown'));
}
else
{
} else {
Display :: display_error_message(get_lang('CannotShowField'));
}
break;
case 'hide_field' :
if (api_is_platform_admin() && !empty($_GET['field_id']) && UserManager :: update_extra_field($_GET['field_id'],array('field_visible'=>'0')))
{
if (api_is_platform_admin() && !empty($_GET['field_id']) && UserManager :: update_extra_field($_GET['field_id'],array('field_visible'=>'0'))) {
Display :: display_confirmation_message(get_lang('FieldHidden'));
}
else
{
} else {
Display :: display_error_message(get_lang('CannotHideField'));
}
break;
case 'thaw_field' :
if (api_is_platform_admin() && !empty($_GET['field_id']) && UserManager :: update_extra_field($_GET['field_id'],array('field_changeable'=>'1')))
{
if (api_is_platform_admin() && !empty($_GET['field_id']) && UserManager :: update_extra_field($_GET['field_id'],array('field_changeable'=>'1'))) {
Display :: display_confirmation_message(get_lang('FieldMadeChangeable'));
}
else
{
} else {
Display :: display_error_message(get_lang('CannotMakeFieldChangeable'));
}
break;
case 'freeze_field' :
if (api_is_platform_admin() && !empty($_GET['field_id']) && UserManager :: update_extra_field($_GET['field_id'],array('field_changeable'=>'0')))
{
if (api_is_platform_admin() && !empty($_GET['field_id']) && UserManager :: update_extra_field($_GET['field_id'],array('field_changeable'=>'0'))) {
Display :: display_confirmation_message(get_lang('FieldMadeUnchangeable'));
}
else
{
} else {
Display :: display_error_message(get_lang('CannotMakeFieldUnchangeable'));
}
break;
case 'moveup' :
if (api_is_platform_admin() && !empty($_GET['field_id']))
{
if (move_user_field('moveup', $_GET['field_id']))
{
if (api_is_platform_admin() && !empty($_GET['field_id'])) {
if (move_user_field('moveup', $_GET['field_id'])) {
Display :: display_confirmation_message(get_lang('FieldMovedUp'));
}
else
{
} else {
Display :: display_error_message(get_lang('CannotMoveField'));
}
}
break;
case 'movedown' :
if (api_is_platform_admin() && !empty($_GET['field_id']))
{
if (move_user_field('movedown', $_GET['field_id']))
{
if (api_is_platform_admin() && !empty($_GET['field_id'])) {
if (move_user_field('movedown', $_GET['field_id'])) {
Display :: display_confirmation_message(get_lang('FieldMovedDown'));
}
else
{
} else {
Display :: display_error_message(get_lang('CannotMoveField'));
}
}
break;
case 'filter_on' :
if (api_is_platform_admin() && !empty($_GET['field_id']) && UserManager :: update_extra_field($_GET['field_id'],array('field_filter'=>'1'))) {
Display :: display_confirmation_message(get_lang('FieldShown'));
} else {
Display :: display_error_message(get_lang('CannotShowField'));
}
break;
case 'filter_off' :
if (api_is_platform_admin() && !empty($_GET['field_id']) && UserManager :: update_extra_field($_GET['field_id'],array('field_filter'=>'0'))) {
Display :: display_confirmation_message(get_lang('FieldShown'));
} else {
Display :: display_error_message(get_lang('CannotShowField'));
}
break;
case 'delete':
if (api_is_platform_admin() && !empty($_GET['field_id']))
{
if (delete_user_fields($_GET['field_id']))
{
if (api_is_platform_admin() && !empty($_GET['field_id'])) {
if (delete_user_fields($_GET['field_id'])) {
Display :: display_confirmation_message(get_lang('FieldDeleted'));
}
else
{
} else {
Display :: display_error_message(get_lang('CannotDeleteField'));
}
}
@ -147,13 +136,10 @@ if(1)
Security::clear_token();
}
}
if (isset ($_POST['action']))
{
if (isset ($_POST['action'])) {
$check = Security::check_token('get');
if($check)
{
switch ($_POST['action'])
{
if($check) {
switch ($_POST['action']) {
default:
break;
}
@ -177,11 +163,11 @@ if(1)
// Create a sortable table with user-data
$parameters['sec_token'] = Security::get_token();
$column_show = array(1,1,1,1,1,1,1,1,0,0);
$column_order = array(1,2,3,4,5,6,7,8,9,10);
$column_show = array(1,1,1,1,1,1,1,1,1,0,0);
$column_order = array(1,2,3,4,5,6,7,8,9,10,11);
$extra_fields = UserManager::get_extra_fields(0,100,5,'ASC');
$number_of_extra_fields = count($extra_fields);
$table = new SortableTableFromArrayConfig($extra_fields, 5, 50, '', $column_show, $column_order, 'ASC');
$table->set_additional_parameters($parameters);
@ -193,11 +179,13 @@ if(1)
$table->set_header(5, get_lang('FieldOrder'));
$table->set_header(6, get_lang('FieldVisibility'));
$table->set_header(7, get_lang('FieldChangeability'));
$table->set_header(8, get_lang('Modify'));
$table->set_header(8, get_lang('FieldFilter'));
$table->set_header(9, get_lang('Modify'));
$table->set_column_filter(5, 'order_filter');
$table->set_column_filter(6, 'modify_visibility');
$table->set_column_filter(7, 'modify_changeability');
$table->set_column_filter(8, 'edit_filter');
$table->set_column_filter(8, 'modify_field_filter');
$table->set_column_filter(9, 'edit_filter');
$table->set_column_filter(2, 'type_filter');
$table->display();
}
@ -302,6 +290,12 @@ function modify_changeability($changeability,$url_params,$row)
return ($changeability?'<a href="'.api_get_self().'?action=freeze_field&field_id='.$row[0].'&sec_token='.$_SESSION['sec_token'].'">'.Display::return_icon('right.gif', get_lang('MakeUnchangeable')).'</a>':'<a href="'.api_get_self().'?action=thaw_field&field_id='.$row[0].'&sec_token='.$_SESSION['sec_token'].'">'.Display::return_icon('wrong.gif', get_lang('MakeChangeable')).'</a>');
}
function modify_field_filter ($changeability,$url_params,$row)
{
return ($changeability?'<a href="'.api_get_self().'?action=filter_off&field_id='.$row[0].'&sec_token='.$_SESSION['sec_token'].'">'.Display::return_icon('right.gif', get_lang('FilterOff')).'</a>':'' .
'<a href="'.api_get_self().'?action=filter_on&field_id='.$row[0].'&sec_token='.$_SESSION['sec_token'].'">'.Display::return_icon('wrong.gif', get_lang('FilterOn')).'</a>');
}
function edit_filter($id,$url_params,$row)
{
global $charset;

@ -1,4 +1,4 @@
<?php // $Id: profile.php 18425 2009-02-10 22:29:20Z iflorespaz $
<?php // $Id: profile.php 18449 2009-02-11 21:16:29Z juliomontoya $
/* For licensing terms, see /dokeos_license.txt */
/**
==============================================================================
@ -316,7 +316,7 @@ foreach($extra as $id => $field_details)
break;
case USER_FIELD_TYPE_RADIO:
$group = array();
foreach($field_details[8] as $option_id => $option_details)
foreach($field_details[9] as $option_id => $option_details)
{
$options[$option_details[1]] = $option_details[2];
$group[] =& HTML_QuickForm::createElement('radio', 'extra_'.$field_details[1], $option_details[1],$option_details[2].'<br />',$option_details[1]);
@ -326,7 +326,7 @@ foreach($extra as $id => $field_details)
break;
case USER_FIELD_TYPE_SELECT:
$options = array();
foreach($field_details[8] as $option_id => $option_details)
foreach($field_details[9] as $option_id => $option_details)
{
$options[$option_details[1]] = $option_details[2];
}
@ -335,7 +335,7 @@ foreach($extra as $id => $field_details)
break;
case USER_FIELD_TYPE_SELECT_MULTIPLE:
$options = array();
foreach($field_details[8] as $option_id => $option_details)
foreach($field_details[9] as $option_id => $option_details)
{
$options[$option_details[1]] = $option_details[2];
}
@ -359,7 +359,7 @@ foreach($extra as $id => $field_details)
$form -> setDefaults($defaults);
break;
case USER_FIELD_TYPE_DOUBLE_SELECT:
foreach ($field_details[8] as $key=>$element)
foreach ($field_details[9] as $key=>$element)
{
if ($element[2][0] == '*')
{

@ -1,4 +1,4 @@
<?php // $Id: usermanager.lib.php 18174 2009-02-02 23:36:04Z iflorespaz $
<?php // $Id: usermanager.lib.php 18449 2009-02-11 21:16:29Z juliomontoya $
/*
==============================================================================
Dokeos - elearning and course management software
@ -705,18 +705,16 @@ class UserManager
* @param array Database columns and their new value
* @return boolean true if field updated, false otherwise
*/
function update_extra_field($fid,$columns)
function update_extra_field($fid,$columns)
{
//TODO check that values added are values proposed for enumerated field types
$t_uf = Database::get_main_table(TABLE_MAIN_USER_FIELD);
$fid = Database::escape_string($fid);
$t_uf = Database::get_main_table(TABLE_MAIN_USER_FIELD);
$fid = Database::escape_string($fid);
$sqluf = "UPDATE $t_uf SET ";
$known_fields = array('id','field_variable','field_type','field_display_text','field_default_value','field_order','field_visible','field_changeable');
$known_fields = array('id','field_variable','field_type','field_display_text','field_default_value','field_order','field_visible','field_changeable','field_filter');
$safecolumns = array();
foreach($columns as $index => $newval)
{
if(in_array($index,$known_fields))
{
foreach ($columns as $index => $newval) {
if (in_array($index,$known_fields)) {
$safecolumns[$index] = Database::escape_string($newval);
$sqluf .= $index." = '".$safecolumns[$index]."', ";
}
@ -861,29 +859,25 @@ class UserManager
{
$fields = array();
$t_uf = Database :: get_main_table(TABLE_MAIN_USER_FIELD);
$t_ufo = Database :: get_main_table(TABLE_MAIN_USER_FIELD_OPTIONS);
$columns = array('id','field_variable','field_type','field_display_text','field_default_value','field_order','tms');
$t_ufo = Database :: get_main_table(TABLE_MAIN_USER_FIELD_OPTIONS);
$columns = array('id','field_variable','field_type','field_display_text','field_default_value','field_order','field_filter','tms');
$sort_direction = '';
if(in_array(strtoupper($direction),array('ASC','DESC')))
{
if (in_array(strtoupper($direction),array('ASC','DESC'))) {
$sort_direction = strtoupper($direction);
}
$sqlf = "SELECT * FROM $t_uf ";
if($all_visibility==false)
{
if ($all_visibility==false) {
$sqlf .= " WHERE field_visible = 1 ";
}
$sqlf .= " ORDER BY ".$columns[$column]." $sort_direction " ;
if($number_of_items != 0)
{
if ($number_of_items != 0) {
$sqlf .= " LIMIT ".Database::escape_string($from).','.Database::escape_string($number_of_items);
}
}
$resf = api_sql_query($sqlf,__FILE__,__LINE__);
if(Database::num_rows($resf)>0)
{
while($rowf = Database::fetch_array($resf))
{
if(Database::num_rows($resf)>0) {
while($rowf = Database::fetch_array($resf)) {
$fields[$rowf['id']] = array(
0=>$rowf['id'],
1=>$rowf['field_variable'],
@ -895,15 +889,15 @@ class UserManager
5=>$rowf['field_order'],
6=>$rowf['field_visible'],
7=>$rowf['field_changeable'],
8=>array()
);
8=>$rowf['field_filter'],
9=>array()
);
$sqlo = "SELECT * FROM $t_ufo WHERE field_id = ".$rowf['id']." ORDER BY option_order ASC";
$reso = api_sql_query($sqlo,__FILE__,__LINE__);
if(Database::num_rows($reso)>0)
{
while($rowo = Database::fetch_array($reso))
{
$fields[$rowf['id']][8][$rowo['id']] = array(
if (Database::num_rows($reso)>0) {
while ($rowo = Database::fetch_array($reso)) {
$fields[$rowf['id']][9][$rowo['id']] = array(
0=>$rowo['id'],
1=>$rowo['option_value'],
//2=>(empty($rowo['option_display_text'])?'':get_lang($rowo['option_display_text'],'')),
@ -1181,7 +1175,7 @@ class UserManager
/**
* Check if a field is available
* @param string the wanted username
* @param string the wanted fieldname
* @return boolean true if the wanted username is available
*/
function is_extra_field_available($fieldname)
@ -1189,7 +1183,7 @@ class UserManager
$t_uf = Database :: get_main_table(TABLE_MAIN_USER_FIELD);
$sql = "SELECT * FROM $t_uf WHERE field_variable = '".Database::escape_string($fieldname)."'";
$res = api_sql_query($sql,__FILE__,__LINE__);
return Database::num_rows($res) <= 0;
return Database::num_rows($res) > 0;
}
/**
* Gets user extra fields data
@ -1315,10 +1309,7 @@ class UserManager
}
return $extra_data;
}
/**
* Get all the extra field information of a certain field (also the options)
*
@ -1378,6 +1369,49 @@ class UserManager
}
function get_extra_user_data_by_value($field_variable, $field_value, $all_visibility = true)
{
$extra_data = array();
$table_user_field = Database::get_main_table(TABLE_MAIN_USER_FIELD);
$table_user_field_values = Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES);
$table_user_field_options= Database::get_main_table(TABLE_MAIN_USER_FIELD_OPTIONS);
$where='';
/*
if (is_array($field_variable_array) && is_array($field_value_array)) {
if (count($field_variable_array) == count($field_value_array)) {
$field_var_count = count($field_variable_array);
for ($i = 0; $i<$field_var_count ; $i++) {
if ($i!=0 && $i!=$field_var_count){
$where.= ' AND ';
}
$where.= "field_variable='".Database::escape_string($field_variable_array[$i])."' AND user_field_options.id='".Database::escape_string($field_value_array[$i])."'";
}
}
}*/
$where= "field_variable='".Database::escape_string($field_variable)."' AND field_value='".Database::escape_string($field_value)."'";
$sql = "SELECT user_id FROM $table_user_field user_field INNER JOIN $table_user_field_values user_field_values
ON (user_field.id = user_field_values.field_id)
WHERE $where";
if($all_visibility == true) {
$sql .= " AND user_field.field_visible = 1 ";
} else {
$sql .= " AND user_field.field_visible = 0 ";
}
$res = api_sql_query($sql,__FILE__,__LINE__);
$result_data = array();
if (Database::num_rows($res)>0) {
while ($row = Database::fetch_array($res)) {
$result_data[]=$row['user_id'];
}
}
return $result_data;
}
/**
* Gives a list of [session_id-course_code] => [status] for the current user.

Loading…
Cancel
Save