Adding user_name_order setting does not work in 1.9 + fixing the user list order see BT#6535

1.9.x
Julio Montoya 12 years ago
parent 4c7a86154f
commit d52502795d
  1. 119
      main/admin/access_url_edit_users_to_url.php
  2. 35
      main/inc/lib/internationalization.lib.php

@ -116,7 +116,7 @@ if ($_POST['form_sent']) {
foreach ($result['users_added'] as $user) { foreach ($result['users_added'] as $user) {
$user_info = api_get_user_info($user); $user_info = api_get_user_info($user);
if (!empty($user_info)) { if (!empty($user_info)) {
$user_added_list[] = $i . '. ' . api_get_person_name($user_info['firstname'], $user_info['lastname']); $user_added_list[] = $i . '. ' . api_get_person_name($user_info['firstname'], $user_info['lastname'], null, null, null, null, $user_info['username']);
$i++; $i++;
} }
} }
@ -174,7 +174,7 @@ if ($ajax_search) {
$sessionUsersList[$user['user_id']] = $user; $sessionUsersList[$user['user_id']] = $user;
} }
} }
$order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname, username' : ' ORDER BY lastname, firstname, username'; $order_clause = api_sort_by_first_name() ? ' ORDER BY username, firstname, lastname' : ' ORDER BY username, lastname, firstname';
$sql = "SELECT u.user_id, lastname, firstname, username $sql = "SELECT u.user_id, lastname, firstname, username
FROM $tbl_user u WHERE status <> " . ANONYMOUS . " " . FROM $tbl_user u WHERE status <> " . ANONYMOUS . " " .
$order_clause; $order_clause;
@ -188,7 +188,6 @@ if ($ajax_search) {
} }
} }
if ($add_type == 'multiple') { if ($add_type == 'multiple') {
$link_add_type_unique = '<a href="' . api_get_self() . '?add_type=unique&access_url_id=' . $access_url_id . '">' . get_lang('SessionAddTypeUnique') . '</a>'; $link_add_type_unique = '<a href="' . api_get_self() . '?add_type=unique&access_url_id=' . $access_url_id . '">' . get_lang('SessionAddTypeUnique') . '</a>';
$link_add_type_multiple = get_lang('SessionAddTypeMultiple'); $link_add_type_multiple = get_lang('SessionAddTypeMultiple');
@ -196,7 +195,6 @@ if ($add_type == 'multiple') {
$link_add_type_unique = get_lang('SessionAddTypeUnique'); $link_add_type_unique = get_lang('SessionAddTypeUnique');
$link_add_type_multiple = '<a href="' . api_get_self() . '?add_type=multiple&access_url_id=' . $access_url_id . '">' . get_lang('SessionAddTypeMultiple') . '</a>'; $link_add_type_multiple = '<a href="' . api_get_self() . '?add_type=multiple&access_url_id=' . $access_url_id . '">' . get_lang('SessionAddTypeMultiple') . '</a>';
} }
$url_list = UrlManager::get_url_data(); $url_list = UrlManager::get_url_data();
?> ?>
@ -232,19 +230,19 @@ $url_list = UrlManager::get_url_data();
<input type="hidden" name="form_sent" value="1" /> <input type="hidden" name="form_sent" value="1" />
<input type="hidden" name="add_type" value = "<?php echo $add_type ?>" /> <input type="hidden" name="add_type" value = "<?php echo $add_type ?>" />
<?php <?php
if (!empty($errorMsg)) { if (!empty($errorMsg)) {
Display::display_normal_message($errorMsg); //main API Display::display_normal_message($errorMsg); //main API
} }
?> ?>
<table border="0" cellpadding="5" cellspacing="0" width="100%"> <table border="0" cellpadding="5" cellspacing="0" width="100%">
<tr> <tr>
<td> <td>
<h3> <h3>
<?php <?php
$total_users = count($nosessionUsersList) + count($sessionUsersList); $total_users = count($nosessionUsersList) + count($sessionUsersList);
echo get_lang('TotalAvailableUsers').' '.$total_users; echo get_lang('TotalAvailableUsers').' '.$total_users;
?> ?>
</h3> </h3>
</td> </td>
@ -259,77 +257,61 @@ $url_list = UrlManager::get_url_data();
<tr> <tr>
<td align="center"> <td align="center">
<div id="content_source"> <div id="content_source">
<?php <?php if ($ajax_search) { ?>
if ($ajax_search) { <input type="text" id="user_to_add" onkeyup="xajax_search_users(this.value,document.formulaire.access_url_id.options[document.formulaire.access_url_id.selectedIndex].value)" />
?> <div id="ajax_list_users"></div>
<input type="text" id="user_to_add" onkeyup="xajax_search_users(this.value,document.formulaire.access_url_id.options[document.formulaire.access_url_id.selectedIndex].value)" /> <?php } else { ?>
<div id="ajax_list_users"></div> <select id="origin_users" name="nosessionUsersList[]" multiple="multiple" size="15" style="width:380px;">
<?php <?php
} else { foreach ($nosessionUsersList as $enreg) {
?> ?>
<select id="origin_users" name="nosessionUsersList[]" multiple="multiple" size="15" style="width:380px;"> <option value="<?php echo $enreg['user_id']; ?>"><?php echo $enreg['username'].' - '.api_get_person_name($enreg['firstname'], $enreg['lastname']); ?></option>
<?php <?php
foreach ($nosessionUsersList as $enreg) { }
?> unset($nosessionUsersList);
<option value="<?php echo $enreg['user_id']; ?>"><?php echo api_get_person_name($enreg['firstname'], $enreg['lastname']) . ' (' . $enreg['username'] . ')'; ?></option> ?>
<?php </select>
} <?php
unset($nosessionUsersList); }
?> ?>
</select>
<?php
}
?>
</div> </div>
</td> </td>
<td width="10%" valign="middle" align="center"> <td width="10%" valign="middle" align="center">
<?php <?php if ($ajax_search) { ?>
if ($ajax_search) { <button class="arrowl" type="button" onclick="remove_item(document.getElementById('destination_users'))"> </button>
?> <?php } else { ?>
<button class="arrowl" type="button" onclick="remove_item(document.getElementById('destination_users'))"> </button> <button class="arrowr" type="button" onclick="moveItem(document.getElementById('origin_users'), document.getElementById('destination_users'))" ></button>
<?php <br /><br />
} else { <button class="arrowl" type="button" onclick="moveItem(document.getElementById('destination_users'), document.getElementById('origin_users'))" ></button>
?> <?php } ?>
<button class="arrowr" type="button" onclick="moveItem(document.getElementById('origin_users'), document.getElementById('destination_users'))" ></button>
<br /><br />
<button class="arrowl" type="button" onclick="moveItem(document.getElementById('destination_users'), document.getElementById('origin_users'))" ></button>
<?php
}
?>
<br /><br /><br /><br /><br /><br /> <br /><br /><br /><br /><br /><br />
</td> </td>
<td align="center"> <td align="center">
<select id="destination_users" name="sessionUsersList[]" multiple="multiple" size="15" style="width:380px;"> <select id="destination_users" name="sessionUsersList[]" multiple="multiple" size="15" style="width:380px;">
<?php
<?php foreach ($sessionUsersList as $enreg) {
foreach ($sessionUsersList as $enreg) { ?>
?> <option value="<?php echo $enreg['user_id']; ?>">
<option value="<?php echo $enreg['user_id']; ?>"><?php echo api_get_person_name($enreg['firstname'], $enreg['lastname']) . ' (' . $enreg['username'] . ')'; ?></option> <?php echo $enreg['username'].' - '.api_get_person_name($enreg['firstname'], $enreg['lastname']); ?>
</option>
<?php <?php
} }
unset($sessionUsersList); unset($sessionUsersList);
?> ?>
</select></td> </select></td>
</tr> </tr>
<tr> <tr>
<td colspan="3" align="center"> <td colspan="3" align="center">
<br /> <br />
<?php <?php
if (isset($_GET['add'])) if (isset($_GET['add'])) {
echo '<button class="save" type="button" onclick="valide()" >' . get_lang('AddUsersToURL') . '</button>'; echo '<button class="save" type="button" onclick="valide()" >' . get_lang('AddUsersToURL') . '</button>';
else } else {
echo '<button class="save" type="button" onclick="valide()" >' . get_lang('EditUsersToURL') . '</button>'; echo '<button class="save" type="button" onclick="valide()" >' . get_lang('EditUsersToURL') . '</button>';
?> }
?>
</td> </td>
</tr> </tr>
</table> </table>
</form> </form>
@ -422,7 +404,6 @@ function makepost(select){
} }
--> -->
</script> </script>
<?php <?php
Display::display_footer(); Display::display_footer();

@ -1032,7 +1032,7 @@ function api_get_months_long($language = null) {
* @author Carlos Vargas <carlos.vargas@dokeos.com> - initial implementation. * @author Carlos Vargas <carlos.vargas@dokeos.com> - initial implementation.
* @author Ivan Tcholakov * @author Ivan Tcholakov
*/ */
function api_get_person_name($first_name, $last_name, $title = null, $format = null, $language = null, $encoding = null) { function api_get_person_name($first_name, $last_name, $title = null, $format = null, $language = null, $encoding = null, $username = null) {
static $valid = array(); static $valid = array();
if (empty($format)) { if (empty($format)) {
$format = PERSON_NAME_COMMON_CONVENTION; $format = PERSON_NAME_COMMON_CONVENTION;
@ -1051,6 +1051,10 @@ function api_get_person_name($first_name, $last_name, $title = null, $format = n
switch ($format) { switch ($format) {
case PERSON_NAME_COMMON_CONVENTION: case PERSON_NAME_COMMON_CONVENTION:
$valid[$format][$language] = _api_get_person_name_convention($language, 'format'); $valid[$format][$language] = _api_get_person_name_convention($language, 'format');
$usernameOrderFromDatabase = api_get_setting('user_name_order');
if (isset($usernameOrderFromDatabase) && !empty($usernameOrderFromDatabase)) {
$valid[$format][$language] = $usernameOrderFromDatabase;
}
break; break;
case PERSON_NAME_WESTERN_ORDER: case PERSON_NAME_WESTERN_ORDER:
$valid[$format][$language] = '%t %f %l'; $valid[$format][$language] = '%t %f %l';
@ -1069,11 +1073,26 @@ function api_get_person_name($first_name, $last_name, $title = null, $format = n
$valid[$format][$language] = _api_validate_person_name_format($format); $valid[$format][$language] = _api_validate_person_name_format($format);
} }
} }
$format = $valid[$format][$language]; $format = $valid[$format][$language];
$person_name = str_replace(array('%f', '%l', '%t'), array($first_name, $last_name, $title), $format);
if (strpos($format, '%F') !== false || strpos($format, '%L') !== false || strpos($format, '%T') !== false) { $keywords = array('%firstname', '%f', '%F', '%lastname', '%l', '%L', '%title', '%t', '%T', '%username', '%u', '%U');
$person_name = str_replace(array('%F', '%L', '%T'), array(api_strtoupper($first_name, $encoding), api_strtoupper($last_name, $encoding), api_strtoupper($title, $encoding)), $person_name);
} $values = array(
$first_name,
$first_name,
api_strtoupper($first_name, $encoding),
$last_name,
$last_name,
api_strtoupper($last_name, $encoding),
$title,
$title,
api_strtoupper($title, $encoding),
$username,
$username,
api_strtoupper($username, $encoding),
);
$person_name = str_replace($keywords, $values, $format);
return _api_clean_person_name($person_name); return _api_clean_person_name($person_name);
} }
@ -1112,6 +1131,11 @@ function api_is_western_name_order($format = null, $language = null) {
* @author Ivan Tcholakov * @author Ivan Tcholakov
*/ */
function api_sort_by_first_name($language = null) { function api_sort_by_first_name($language = null) {
$userNameSortBy = api_get_setting('user_name_sort_by');
if (!empty($userNameSortBy) && in_array($userNameSortBy, array('firstname', 'lastname'))) {
return $userNameSortBy == 'firstname' ? true : false;
}
static $sort_by_first_name = array(); static $sort_by_first_name = array();
$language_is_supported = api_is_language_supported($language); $language_is_supported = api_is_language_supported($language);
@ -1121,6 +1145,7 @@ function api_sort_by_first_name($language = null) {
if (!isset($sort_by_first_name[$language])) { if (!isset($sort_by_first_name[$language])) {
$sort_by_first_name[$language] = _api_get_person_name_convention($language, 'sort_by'); $sort_by_first_name[$language] = _api_get_person_name_convention($language, 'sort_by');
} }
return $sort_by_first_name[$language]; return $sort_by_first_name[$language];
} }

Loading…
Cancel
Save