Adding a validation in the api_get_interface_language() file in order to check sub_language parent settings (firstname, lastname order) see BT#1598

skala
Julio Montoya 15 years ago
parent 80e4de1623
commit a4347cfb06
  1. 16
      main/admin/access_url_add_users_to_url.php
  2. 41
      main/inc/lib/internationalization.lib.php
  3. 22
      main/inc/lib/main_api.lib.php

@ -92,7 +92,8 @@ if(empty($first_letter_user)) {
}
$first_letter_user = Database::escape_string($first_letter_user);
$target_name = api_sort_by_first_name() ? 'firstname' : 'lastname';
//$target_name = api_sort_by_first_name() ? 'firstname' : 'lastname';
$target_name = 'lastname';
$sql = "SELECT user_id,lastname,firstname,username FROM $tbl_user
WHERE ".$target_name." LIKE '".$first_letter_user."%' OR ".$target_name." LIKE '".api_strtolower($first_letter_user)."%'
ORDER BY ". (count($users) > 0 ? "(user_id IN(".implode(',', $users).")) DESC," : "")." ".$target_name;
@ -128,11 +129,13 @@ unset($result);
</tr>
<tr>
<td width="40%" align="center">
<select name="user_list[]" multiple="multiple" size="20" style="width:250px;">
<select name="user_list[]" multiple="multiple" size="20" style="width:380px;">
<?php
foreach ($db_users as $user) {
?>
<option value="<?php echo $user['user_id']; ?>" <?php if(in_array($user['user_id'],$users)) echo 'selected="selected"'; ?>><?php echo api_get_person_name($user['firstname'], $user['lastname']).' ('.$user['username'].')'; ?></option>
<option value="<?php echo $user['user_id']; ?>" <?php if(in_array($user['user_id'], $users)) echo 'selected="selected"'; ?>>
<?php echo api_get_person_name($user['firstname'], $user['lastname']).' ('.$user['username'].')'; ?>
</option>
<?php
}
?>
@ -146,7 +149,9 @@ unset($result);
<?php
foreach ($db_urls as $url_obj) {
?>
<option value="<?php echo $url_obj['id']; ?>" <?php if(in_array($url_obj['id'],$url_list)) echo 'selected="selected"'; ?>><?php echo $url_obj['url']; ?></option>
<option value="<?php echo $url_obj['id']; ?>" <?php if(in_array($url_obj['id'],$url_list)) echo 'selected="selected"'; ?>>
<?php echo $url_obj['url']; ?>
</option>
<?php
}
?>
@ -157,5 +162,4 @@ unset($result);
</form>
<?php
/* FOOTER */
Display :: display_footer();
?>
Display :: display_footer();

@ -248,9 +248,39 @@ function api_is_translated($variable, $language = null) {
* @param bool $purified (optional) When it is true, a purified (refined) language value will be returned, for example 'french' instead of 'french_unicode'.
* @return string The current language of the interface.
*/
function api_get_interface_language($purified = false) {
function api_get_interface_language($purified = false, $check_sub_language = false) {
global $language_interface;
return empty($language_interface) ? 'english' : ($purified ? api_purify_language_id($language_interface) : $language_interface);
if (empty($language_interface)) {
return 'english';
}
//1. Checking if current language is supported
$language_is_supported = api_is_language_supported($language_interface);
if ($check_sub_language && !$language_is_supported) {
static $parent_language_name = null;
if (!isset($parent_language_name)) {
//2. The current language is a sub language so we grab the father's setting according to the internalization_database/name_order_convetions.php file
$language_id = api_get_language_id($language_interface);
$language_info = api_get_language_info($language_id);
if (!empty($language_id) && !empty($language_info)) {
$language_info = api_get_language_info($language_info['parent_id']);
$parent_language_name = $language_info['english_name'];
if (!empty($parent_language_name)) {
return $parent_language_name;
}
}
return 'english';
} else {
return $parent_language_name;
}
} else {
//2. Normal way
$interface_language = $purified ? api_purify_language_id($language_interface) : $language_interface;
}
return $interface_language;
}
/**
@ -260,7 +290,7 @@ function api_get_interface_language($purified = false) {
*/
function api_is_language_supported($language) {
static $supported = array();
if (!isset($supported[$language])) {
if (!isset($supported[$language])) {
$supported[$language] = in_array(api_purify_language_id($language), array_keys(_api_non_utf8_encodings()));
}
return $supported[$language];
@ -334,6 +364,7 @@ function api_get_language_isocode($language = null, $default_code = 'en') {
return $iso_code[$language];
}
/**
* Gets language isocode column from the language table
*
@ -888,9 +919,11 @@ function api_get_person_name($first_name, $last_name, $title = null, $format = n
if (empty($format)) {
$format = PERSON_NAME_COMMON_CONVENTION;
}
if (empty($language)) {
$language = api_get_interface_language();
$language = api_get_interface_language(false, true);
}
if (empty($encoding)) {
$encoding = _api_mb_internal_encoding();
}

@ -2803,18 +2803,32 @@ function api_get_languages() {
/**
* Returns the id (the database id) of a language
* @param string language name (the corresponding name of the language-folder in the filesystem)
* @return int id of the language
* @param string language name (the corresponding name of the language-folder in the filesystem)
* @return int id of the language
*/
function api_get_language_id($language) {
$tbl_language = Database::get_main_table(TABLE_MAIN_LANGUAGE);
if (empty($language)) {
return null;
}
$language = Database::escape_string($language);
$sql = "SELECT id FROM $tbl_language WHERE available='1' AND dokeos_folder = '$language' ORDER BY dokeos_folder ASC";
$sql = "SELECT id FROM $tbl_language WHERE available='1' AND dokeos_folder = '$language' LIMIT 1";
$result = Database::query($sql);
$row = Database::fetch_array($result);
$row = Database::fetch_array($result);
return $row['id'];
}
function api_get_language_info($language_id) {
$tbl_admin_languages = Database :: get_main_table(TABLE_MAIN_LANGUAGE);
$sql = 'SELECT * FROM '.$tbl_admin_languages.' WHERE id = "'.intval($language_id).'"';
$rs = Database::query($sql);
$language_info = array();
if (Database::num_rows($rs)) {
$language_info = Database::fetch_array($rs,'ASSOC');
}
return $language_info;
}
/**
* Returns the name of the visual (CSS) theme to be applied on the current page.
* The returned name depends on the platform, course or user -wide settings.

Loading…
Cancel
Save