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. 55
      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) {
$user_info = api_get_user_info($user);
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++;
}
}
@ -174,7 +174,7 @@ if ($ajax_search) {
$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
FROM $tbl_user u WHERE status <> " . ANONYMOUS . " " .
$order_clause;
@ -188,7 +188,6 @@ if ($ajax_search) {
}
}
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_multiple = get_lang('SessionAddTypeMultiple');
@ -196,7 +195,6 @@ if ($add_type == 'multiple') {
$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>';
}
$url_list = UrlManager::get_url_data();
?>
@ -232,11 +230,11 @@ $url_list = UrlManager::get_url_data();
<input type="hidden" name="form_sent" value="1" />
<input type="hidden" name="add_type" value = "<?php echo $add_type ?>" />
<?php
if (!empty($errorMsg)) {
<?php
if (!empty($errorMsg)) {
Display::display_normal_message($errorMsg); //main API
}
?>
}
?>
<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tr>
@ -259,24 +257,19 @@ $url_list = UrlManager::get_url_data();
<tr>
<td align="center">
<div id="content_source">
<?php
if ($ajax_search) {
?>
<?php 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>
<?php
} else {
?>
<?php } else { ?>
<select id="origin_users" name="nosessionUsersList[]" multiple="multiple" size="15" style="width:380px;">
<?php
foreach ($nosessionUsersList as $enreg) {
?>
<option value="<?php echo $enreg['user_id']; ?>"><?php echo api_get_person_name($enreg['firstname'], $enreg['lastname']) . ' (' . $enreg['username'] . ')'; ?></option>
<option value="<?php echo $enreg['user_id']; ?>"><?php echo $enreg['username'].' - '.api_get_person_name($enreg['firstname'], $enreg['lastname']); ?></option>
<?php
}
unset($nosessionUsersList);
?>
</select>
<?php
}
@ -284,52 +277,41 @@ $url_list = UrlManager::get_url_data();
</div>
</td>
<td width="10%" valign="middle" align="center">
<?php
if ($ajax_search) {
?>
<?php if ($ajax_search) { ?>
<button class="arrowl" type="button" onclick="remove_item(document.getElementById('destination_users'))"> </button>
<?php
} else {
?>
<?php } else { ?>
<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
}
?>
<?php } ?>
<br /><br /><br /><br /><br /><br />
</td>
<td align="center">
<select id="destination_users" name="sessionUsersList[]" multiple="multiple" size="15" style="width:380px;">
<?php
foreach ($sessionUsersList as $enreg) {
?>
<option value="<?php echo $enreg['user_id']; ?>"><?php echo api_get_person_name($enreg['firstname'], $enreg['lastname']) . ' (' . $enreg['username'] . ')'; ?></option>
<option value="<?php echo $enreg['user_id']; ?>">
<?php echo $enreg['username'].' - '.api_get_person_name($enreg['firstname'], $enreg['lastname']); ?>
</option>
<?php
}
unset($sessionUsersList);
?>
</select></td>
</tr>
<tr>
<td colspan="3" align="center">
<br />
<?php
if (isset($_GET['add']))
if (isset($_GET['add'])) {
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>';
}
?>
</td>
</tr>
</table>
</form>
@ -422,7 +404,6 @@ function makepost(select){
}
-->
</script>
<?php
Display::display_footer();

@ -1032,7 +1032,7 @@ function api_get_months_long($language = null) {
* @author Carlos Vargas <carlos.vargas@dokeos.com> - initial implementation.
* @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();
if (empty($format)) {
$format = PERSON_NAME_COMMON_CONVENTION;
@ -1051,6 +1051,10 @@ function api_get_person_name($first_name, $last_name, $title = null, $format = n
switch ($format) {
case PERSON_NAME_COMMON_CONVENTION:
$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;
case PERSON_NAME_WESTERN_ORDER:
$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);
}
}
$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) {
$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);
}
$keywords = array('%firstname', '%f', '%F', '%lastname', '%l', '%L', '%title', '%t', '%T', '%username', '%u', '%U');
$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);
}
@ -1112,6 +1131,11 @@ function api_is_western_name_order($format = null, $language = null) {
* @author Ivan Tcholakov
*/
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();
$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])) {
$sort_by_first_name[$language] = _api_get_person_name_convention($language, 'sort_by');
}
return $sort_by_first_name[$language];
}

Loading…
Cancel
Save