Add language selection to user account settings

This commit is contained in:
Mark Crane 2014-05-11 10:31:36 +00:00
parent 03afa17319
commit f541b5bc54
2 changed files with 95 additions and 2 deletions

View File

@ -25,6 +25,16 @@
$text['table-title']['pt-pt'] = "Informações de Utilizador";
$text['table-title']['fr-fr'] = "Informations de l'usager";
$text['label-user_language']['en-us'] = "Language";
$text['label-user_language']['es-cl'] = "Lengua";
$text['label-user_language']['pt-pt'] = "Língua";
$text['label-user_language']['fr-fr'] = "Langue";
$text['description-user_language']['en-us'] = "Select the language.";
$text['description-user_language']['es-cl'] = "Seleccione el idioma.";
$text['description-user_language']['pt-pt'] = "Selecione o idioma.";
$text['description-user_language']['fr-fr'] = "Sélectionnez la langue.";
$text['label-username']['en-us'] = "Username";
$text['label-username']['es-cl'] = "Nombre de Usuario";
$text['label-username']['pt-pt'] = "Nome de Utilizador";
@ -65,7 +75,7 @@
$text['label-status']['pt-pt'] = "Estado";
$text['label-status']['fr-fr'] = "Etat";
$text['description-status']['en-us'] = "Select a the user status.";
$text['description-status']['en-us'] = "Select a user status.";
$text['description-status']['es-cl'] = "Seleccione el estado del usuario.";
$text['description-status']['pt-pt'] = "Escolha um estado para o utilizador.";
$text['description-status']['fr-fr'] = "Sélection de l'état de l'usager.";

View File

@ -38,6 +38,9 @@ else {
//add multi-lingual support
require_once "app_languages.php";
foreach($text['button-save'] as $key => $value) {
$languages[$key] = '';
}
foreach($text as $key => $value) {
$text[$key] = $value[$_SESSION['domain']['language']['code']];
}
@ -84,6 +87,7 @@ if (count($_POST)>0 && $_POST["persistform"] != "1") {
$user_status = check_str($_POST["user_status"]);
$user_template_name = check_str($_POST["user_template_name"]);
$user_time_zone = check_str($_POST["user_time_zone"]);
$user_language = check_str($_POST["user_language"]);
$group_member = check_str($_POST["group_member"]);
$msg = '';
@ -105,7 +109,7 @@ if (count($_POST)>0 && $_POST["persistform"] != "1") {
return;
}
//get the number of rows in v_user_settings
//check to see if user time_zone is set
$sql = "select count(*) as num_rows from v_user_settings ";
$sql .= "where user_setting_category = 'domain' ";
$sql .= "and user_setting_subcategory = 'time_zone' ";
@ -161,6 +165,62 @@ if (count($_POST)>0 && $_POST["persistform"] != "1") {
}
}
//check to see if user language is set
$sql = "select count(*) as num_rows from v_user_settings ";
$sql .= "where user_setting_category = 'domain' ";
$sql .= "and user_setting_subcategory = 'language' ";
$sql .= "and user_uuid = '".$user_uuid."' ";
$prep_statement = $db->prepare(check_sql($sql));
if ($prep_statement) {
$prep_statement->execute();
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
if ($row['num_rows'] == 0) {
$user_setting_uuid = uuid();
$sql = "insert into v_user_settings ";
$sql .= "(";
$sql .= "domain_uuid, ";
$sql .= "user_setting_uuid, ";
$sql .= "user_setting_category, ";
$sql .= "user_setting_subcategory, ";
$sql .= "user_setting_name, ";
$sql .= "user_setting_value, ";
$sql .= "user_setting_enabled, ";
$sql .= "user_uuid ";
$sql .= ") ";
$sql .= "values ";
$sql .= "(";
$sql .= "'".$_SESSION["domain_uuid"]."', ";
$sql .= "'".$user_setting_uuid."', ";
$sql .= "'domain', ";
$sql .= "'language', ";
$sql .= "'code', ";
$sql .= "'".$user_language."', ";
$sql .= "'true', ";
$sql .= "'".$user_uuid."' ";
$sql .= ")";
$db->exec(check_sql($sql));
}
else {
if (strlen($user_time_zone) == 0) {
$sql = "delete from v_user_settings ";
$sql .= "where user_setting_category = 'domain' ";
$sql .= "and user_setting_subcategory = 'language' ";
$sql .= "and user_uuid = '".$user_uuid."' ";
$db->exec(check_sql($sql));
unset($sql);
}
else {
$sql = "update v_user_settings set ";
$sql .= "user_setting_value = '".$user_language."', ";
$sql .= "user_setting_enabled = 'true' ";
$sql .= "where user_setting_category = 'domain' ";
$sql .= "and user_setting_subcategory = 'language' ";
$sql .= "and user_uuid = '".$user_uuid."' ";
$db->exec(check_sql($sql));
}
}
}
//if the template has not been assigned by the superadmin
//if (strlen($_SESSION['domain']['template']['name']) == 0) {
//set the session theme for the active user
@ -361,6 +421,29 @@ else {
}
*/
echo " <tr>\n";
echo " <td width='20%' class=\"vncell\" style='text-align: left;'>\n";
echo " ".$text['label-user_language'].": \n";
echo " </td>\n";
echo " <td class=\"vtable\" align='left'>\n";
echo " <select id='user_language' name='user_language' class='formfld' style=''>\n";
echo " <option value=''></option>\n";
foreach ($languages as $key => $value) {
if ($row['user_language'] == $key) {
echo " <option value='$key' selected='selected'>$key</option>\n";
}
else {
echo " <option value='$key'>$key</option>\n";
}
}
echo " </select>\n";
echo " <br />\n";
echo " ".$text['description-user_language']."<br />\n";
echo " </td>\n";
echo " </tr>\n";
echo " </table>";
echo "<br>";
echo " <tr>\n";
echo " <td width='20%' class=\"vncell\" style='text-align: left;'>\n";
echo " ".$text['label-time'].": \n";