Settings for the priority of languages

skala
Noel Dieschburg 15 years ago
parent 9c843c898a
commit 5fa8f779db
  1. 68
      main/inc/global.inc.php
  2. 36
      main/inc/lib/main_api.lib.php
  3. 22
      main/install/db_main.sql
  4. 7
      main/install/migrate-db-1.8.6.2-1.8.7-pre.sql
  5. 10
      main/lang/english/admin.inc.php
  6. 10
      main/lang/french/admin.inc.php

@ -414,31 +414,49 @@ $valid_languages = api_get_languages();
if (!empty($valid_languages)) {
if (!in_array($user_language, $valid_languages['folder'])) {
$user_language = api_get_setting('platformLanguage');
}
if (in_array($user_language, $valid_languages['folder']) && (isset($_GET['language']) || isset($_POST['language_list']))) {
$user_selected_language = $user_language; // $_GET['language'];
$_SESSION['user_language_choice'] = $user_selected_language;
$platformLanguage = $user_selected_language;
} else {
$platformLanguage = api_get_setting('platformLanguage');
}
if (isset($_SESSION['user_language_choice'])) {
$language_interface = $_SESSION['user_language_choice'];
} else {
$language_interface = api_get_setting('platformLanguage');
}
if (isset($_user['language'])) {
$language_interface = $_user['language'];
}
if ($_course['language']) {
$language_interface = $_course['language'];
}
if (!in_array($user_language, $valid_languages['folder'])) {
$user_language = api_get_setting('platformLanguage');
}
$language_priority1 = api_get_setting('languagePriority1');
$language_priority2 = api_get_setting('languagePriority2');
$language_priority3 = api_get_setting('languagePriority3');
$language_priority4 = api_get_setting('languagePriority4');
if (in_array($user_language, $valid_languages['folder']) && (isset($_GET['language']) || isset($_POST['language_list']))) {
$user_selected_language = $user_language; // $_GET['language'];
$_SESSION['user_language_choice'] = $user_selected_language;
$platformLanguage = $user_selected_language;
}
if (!empty($language_priority4) && api_get_language_from_type($language_priority4) !== false ) {
$language_interface = api_get_language_from_type($language_priority4);
}
else {
$language_interface = api_get_setting('platformLanguage');
}
if (!empty($language_priority3) && api_get_language_from_type($language_priority3) !== false ) {
$language_interface = api_get_language_from_type($language_priority3);
}else {
if (isset($_SESSION['user_language_choice'])) {
$language_interface = $_SESSION['user_language_choice'];
}
}
if (!empty($language_priority2) && api_get_language_from_type($language_priority2) !== false ) {
$language_interface = api_get_language_from_type($language_priority2);
}else {
if (isset($_user['language'])) {
$language_interface = $_user['language'];
}
}
if (!empty($language_priority1) && api_get_language_from_type($language_priority1) !== false ) {
$language_interface = api_get_language_from_type($language_priority1);
}else {
if ($_course['language']) {
$language_interface = $_course['language'];
}
}
}
// Sometimes the variable $language_interface is changed

@ -2646,6 +2646,42 @@ function api_get_language_id($language) {
$row = Database::fetch_array($result);
return $row['id'];
}
/**
* Gets language of the requested type for the current user. Types are :
* user_profil_lang : profile language of current user
* user_select_lang : language selected by user at login
* course_lang : language of the current course
* platform_lang : default platform language
* @param string lang_type
* @param return language of the requested type or false if the language is not available
**/
function api_get_language_from_type($lang_type){
global $_user;
$toreturn = false;
switch ($lang_type) {
case 'platform_lang' :
$temp_lang = api_get_setting('platformLanguage');
if (!empty($temp_lang))
$toreturn = $temp_lang;
break;
case 'user_profil_lang' :
if (isset($_user['language']))
$toreturn = $_user['language'];
break;
case 'user_selected_lang' :
if (isset($_SESSION['user_language_choice']))
$toreturn = ($_SESSION['user_language_choice']);
break;
case 'course_lang' :
if ($_course['language'])
$language_interface = $_course['language'];
break;
default :
$toreturn = false;
break;
}
return $toreturn;
}
/**
* Returns a list of CSS themes currently available in the CSS folder

@ -791,6 +791,10 @@ VALUES
('custom_tab_2_url', NULL, 'textfield', 'Platform', '', 'CustomTab2URLTitle', 'CustomTab2URLComment', NULL, NULL, 0),
('custom_tab_3_name', NULL, 'textfield', 'Platform', '', 'CustomTab3NameTitle', 'CustomTab3NameComment', NULL, NULL, 0),
('custom_tab_3_url', NULL, 'textfield', 'Platform', '', 'CustomTab3URLTitle', 'CustomTab3URLComment', NULL, NULL, 0);
('languagePriority1', NULL, 'radio', 'Languages', 'LanguagePriority1Title', 'LanguagePriority1Comment', NULL, NULL, 0);
('languagePriority2', NULL, 'radio', 'Languages', 'LanguagePriority2Title', 'LanguagePriority2Comment', NULL, NULL, 0);
('languagePriority3', NULL, 'radio', 'Languages', 'LanguagePriority3Title', 'LanguagePriority3Comment', NULL, NULL, 0);
('languagePriority4', NULL, 'radio', 'Languages', 'LanguagePriority4Title', 'LanguagePriority4Comment', NULL, NULL, 0);
UNLOCK TABLES;
@ -1013,7 +1017,23 @@ VALUES
('cas_add_user_activate', 'true', 'Yes'),
('cas_add_user_activate', 'false', 'No'),
('use_custom_pages','true','Yes'),
('use_custom_pages','false','No');
('use_custom_pages','false','No'),
('languagePriority1','platform_lang','PlatformLanguage'),
('languagePriority1','user_profil_lang','UserLanguage'),
('languagePriority1','user_selected_lang','UserSelectedLanguage'),
('languagePriority1','course_lang','CourseLanguage'),
('languagePriority2','platform_lang','PlatformLanguage'),
('languagePriority2','user_profil_lang','UserLanguage'),
('languagePriority2','user_selected_lang','UserSelectedLanguage'),
('languagePriority2','course_lang','CourseLanguage'),
('languagePriority3','platform_lang','PlatformLanguage'),
('languagePriority3','user_profil_lang','UserLanguage'),
('languagePriority3','user_selected_lang','UserSelectedLanguage'),
('languagePriority3','course_lang','CourseLanguage'),
('languagePriority4','platform_lang','PlatformLanguage'),
('languagePriority4','user_profil_lang','UserLanguage'),
('languagePriority4','user_selected_lang','UserSelectedLanguage'),
('languagePriority4','course_lang','CourseLanguage');
UNLOCK TABLES;

@ -136,6 +136,13 @@ INSERT INTO `event_type` VALUES (1, 'course_deleted','courseDeletedTitle','cours
INSERT INTO `event_type_message` (`id`,`event_type_id`, `language_id`, `message`,`subject`) VALUES (1,4,10,'Bonjour, \r\n\r\nL\'utilisateur %username% (%firstname% %lastname%) a é créé.\r\nEmail : %mail%\r\n\r\nBien à vous.',''),(2,1,10,'Delete formation',''),(3,2,10,'Create formation',''),(4,3,10,'Bonjour, \r\n\r\nL\'utilisateur %username% (%firstname% %lastname%) a été supprimé.\r\n\r\nBien à vous.',''),(6,5,10,'Create session test',''),(7,6,10,'Delete session',''),(8,7,10,'Create category session',''),(9,8,10,'Delete category session',''),(10,9,10,'Change setting',''),(11,10,10,'Subscribe',''),(12,11,10,'Unsubscribe','');
CREATE TABLE announcement_rel_group (group_id int NOT NULL, announcement_id int NOT NULL, PRIMARY KEY (group_id, announcement_id));
INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('languagePriority1', NULL, 'radio', 'Languages', 'LanguagePriority1Title', 'LanguagePriority1Comment', NULL, NULL, 0);
INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('languagePriority2', NULL, 'radio', 'Languages', 'LanguagePriority2Title', 'LanguagePriority2Comment', NULL, NULL, 0);
INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('languagePriority3', NULL, 'radio', 'Languages', 'LanguagePriority3Title', 'LanguagePriority3Comment', NULL, NULL, 0);
INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('languagePriority4', NULL, 'radio', 'Languages', 'LanguagePriority4Title', 'LanguagePriority4Comment', NULL, NULL, 0);
INSERT INTO settings_options (variable, value, display_text) VALUES ('languagePriority1','platform_lang','PlatformLanguage'), ('languagePriority1','user_profil_lang','UserLanguage'), ('languagePriority1','user_selected_lang','UserSelectedLanguage'), ('languagePriority1','course_lang','CourseLanguage'), ('languagePriority2','platform_lang','PlatformLanguage'), ('languagePriority2','user_profil_lang','UserLanguage'), ('languagePriority2','user_selected_lang','UserSelectedLanguage'), ('languagePriority2','course_lang','CourseLanguage'), ('languagePriority3','platform_lang','PlatformLanguage'), ('languagePriority3','user_profil_lang','UserLanguage'), ('languagePriority3','user_selected_lang','UserSelectedLanguage'), ('languagePriority3','course_lang','CourseLanguage'), ('languagePriority4','platform_lang','PlatformLanguage'), ('languagePriority4','user_profil_lang','UserLanguage'), ('languagePriority4','user_selected_lang','UserSelectedLanguage'), ('languagePriority4','course_lang','CourseLanguage');
--
-- Table structure for LP custom storage API
--

@ -1331,4 +1331,14 @@ $GroupParentship = 'Parent group';
$NoParentship = 'No parent group';
$HumanResourcesManager = "Human resources manager";
$IamAHRM = "I am a human resources manager";
$UserLanguage = 'User profile language';
$UserSelectedLanguage = 'Language chosen by the user at login';
$LanguagePriority1Title = 'First priority language';
$LanguagePriority2Title = 'Second priority language';
$LanguagePriority3Title = 'Third priority language';
$LanguagePriority4Title = 'Fourth priority language';
$LanguagePriority1Comment = '';
$LanguagePriority2Comment = '';
$LanguagePriority3Comment = '';
$LanguagePriority4Comment = '';
?>

@ -1308,4 +1308,14 @@ $GroupParentship = 'Groupe parent';
$NoParentship = 'Aucun groupe parent';
$HumanResourcesManager = "Gestionnaire des ressources humaines";
$IamAHRM = "Je suis un gestionnaire des ressources humaines";
$UserLanguage = 'Langue du profil utilisateur';
$UserSelectedLanguage = 'Langue sélectionnée par l\'utilisateur lors du login';
$LanguagePriority1Title = 'Langue à choisir en première priorité';
$LanguagePriority2Title = 'Langue à choisir en deuxième priorité';
$LanguagePriority3Title = 'Langue à choisir en troisième priorité';
$LanguagePriority4Title = 'Langue à choisir en quatrième priorité';
$LanguagePriority1Comment = '';
$LanguagePriority2Comment = '';
$LanguagePriority3Comment = '';
$LanguagePriority4Comment = '';
?>

Loading…
Cancel
Save