From 833560e57cc835bc29eb7255dd24fc310183ac96 Mon Sep 17 00:00:00 2001 From: Mark Crane Date: Tue, 13 May 2014 05:41:44 +0000 Subject: [PATCH] Add user language to accounts -> user manager -> edit user --- core/user_settings/app_languages.php | 20 ++-- core/user_settings/user_edit.php | 161 ++++++++++++++------------- core/users/app_languages.php | 10 ++ core/users/usersupdate.php | 136 +++++++++++++++++----- 4 files changed, 210 insertions(+), 117 deletions(-) diff --git a/core/user_settings/app_languages.php b/core/user_settings/app_languages.php index 829573450e..96c6cea6d1 100644 --- a/core/user_settings/app_languages.php +++ b/core/user_settings/app_languages.php @@ -25,16 +25,6 @@ $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"; @@ -105,6 +95,16 @@ $text['check-do-not-disturb-status']['pt-pt'] = "Não Perturbar"; $text['check-do-not-disturb-status']['fr-fr'] = "Ne pas déranger"; + $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-time']['en-us'] = "Time Zone"; $text['label-time']['es-cl'] = "Zona Horaria"; $text['label-time']['pt-pt'] = "Fuso Horário"; diff --git a/core/user_settings/user_edit.php b/core/user_settings/user_edit.php index e7c364a630..a0371b395e 100644 --- a/core/user_settings/user_edit.php +++ b/core/user_settings/user_edit.php @@ -82,87 +82,32 @@ else { if (count($_POST)>0 && $_POST["persistform"] != "1") { - $password = check_str($_POST["password"]); - $confirm_password = check_str($_POST["confirm_password"]); - $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"]); + //get the HTTP values and set as variables + $password = check_str($_POST["password"]); + $confirm_password = check_str($_POST["confirm_password"]); + $user_status = check_str($_POST["user_status"]); + $user_template_name = check_str($_POST["user_template_name"]); + $user_language = check_str($_POST["user_language"]); + $user_time_zone = check_str($_POST["user_time_zone"]); + $group_member = check_str($_POST["group_member"]); - $msg = ''; - //if (strlen($password) == 0) { $msg .= "Password cannot be blank.
\n"; } - if ($password != $confirm_password) { $msg .= "".$text['confirm-password']."
\n"; } - //if (strlen($user_time_zone) == 0) { $msg .= "Please provide an time zone.
\n"; } - - if (strlen($msg) > 0) { - require_once "resources/header.php"; - echo "
"; - echo "
"; - echo $msg; - echo "
"; - echo "
\n"; - require_once "resources/persist_form.php"; - echo persistform($_POST); - echo "
"; - require_once "resources/footer.php"; - return; - } - - //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' "; - $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 .= "'time_zone', "; - $sql .= "'name', "; - $sql .= "'".$user_time_zone."', "; - $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 = 'time_zone' "; - $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_time_zone."', "; - $sql .= "user_setting_enabled = 'true' "; - $sql .= "where user_setting_category = 'domain' "; - $sql .= "and user_setting_subcategory = 'time_zone' "; - $sql .= "and user_uuid = '".$user_uuid."' "; - $db->exec(check_sql($sql)); - } - } + //set the required values + $msg = ''; + //if (strlen($password) == 0) { $msg .= "Password cannot be blank.
\n"; } + if ($password != $confirm_password) { $msg .= "".$text['confirm-password']."
\n"; } + //if (strlen($user_time_zone) == 0) { $msg .= "Please provide an time zone.
\n"; } + if (strlen($msg) > 0) { + require_once "resources/header.php"; + echo "
"; + echo "
"; + echo $msg; + echo "
"; + echo "
\n"; + require_once "resources/persist_form.php"; + echo persistform($_POST); + echo "
"; + require_once "resources/footer.php"; + return; } //check to see if user language is set @@ -221,6 +166,62 @@ if (count($_POST)>0 && $_POST["persistform"] != "1") { } } + //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' "; + $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 .= "'time_zone', "; + $sql .= "'name', "; + $sql .= "'".$user_time_zone."', "; + $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 = 'time_zone' "; + $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_time_zone."', "; + $sql .= "user_setting_enabled = 'true' "; + $sql .= "where user_setting_category = 'domain' "; + $sql .= "and user_setting_subcategory = 'time_zone' "; + $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 diff --git a/core/users/app_languages.php b/core/users/app_languages.php index 46066bbc53..9969b3be9d 100644 --- a/core/users/app_languages.php +++ b/core/users/app_languages.php @@ -162,6 +162,16 @@ $text['label-status']['pt-pt'] = "Estado"; $text['label-status']['fr-fr'] = "Etat"; + $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-time_zone']['en-us'] = "Time Zone"; $text['label-time_zone']['es-cl'] = "Zona Horaria"; $text['label-time_zone']['pt-pt'] = "Fuso Horário"; diff --git a/core/users/usersupdate.php b/core/users/usersupdate.php index 627ecf6cfa..3d6af57221 100644 --- a/core/users/usersupdate.php +++ b/core/users/usersupdate.php @@ -113,35 +113,94 @@ else { } if (count($_POST) > 0 && $_POST["persistform"] != "1") { - $user_uuid = $_REQUEST["id"]; - $password = check_str($_POST["password"]); - $confirm_password = check_str($_POST["confirm_password"]); - $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"]); - $contact_uuid = check_str($_POST["contact_uuid"]); - $group_member = check_str($_POST["group_member"]); - $user_enabled = check_str($_POST["user_enabled"]); - $api_key = check_str($_POST["api_key"]); - if ($password != $confirm_password) { $msg_error .= $text['message-password_mismatch']."
\n"; } - //if (strlen($contact_uuid) == 0) { $msg_error .= $text['message-required'].$text['label-email']."
\n"; } - //if (strlen($user_time_zone) == 0) { $msg_error .= $text['message-required'].$text['label-time_zone']."
\n"; } - if (strlen($user_enabled) == 0) { $msg_error .= $text['message-required'].$text['label-enabled']."
\n"; } + //get the HTTP values and set as variables + $user_uuid = $_REQUEST["id"]; + $password = check_str($_POST["password"]); + $confirm_password = check_str($_POST["confirm_password"]); + $user_status = check_str($_POST["user_status"]); + //$user_template_name = check_str($_POST["user_template_name"]); + $user_language = check_str($_POST["user_language"]); + $user_time_zone = check_str($_POST["user_time_zone"]); + $contact_uuid = check_str($_POST["contact_uuid"]); + $group_member = check_str($_POST["group_member"]); + $user_enabled = check_str($_POST["user_enabled"]); + $api_key = check_str($_POST["api_key"]); - if ($msg_error) { - require_once "resources/header.php"; - echo "
"; - echo "
"; - echo $msg_error; - echo "
"; - echo "
\n"; - require_once "resources/persist_form.php"; - echo persistform($_POST); - echo "
"; - require_once "resources/footer.php"; - return; - } + //set the required values + if ($password != $confirm_password) { $msg_error .= $text['message-password_mismatch']."
\n"; } + //if (strlen($contact_uuid) == 0) { $msg_error .= $text['message-required'].$text['label-email']."
\n"; } + //if (strlen($user_time_zone) == 0) { $msg_error .= $text['message-required'].$text['label-time_zone']."
\n"; } + if (strlen($user_enabled) == 0) { $msg_error .= $text['message-required'].$text['label-enabled']."
\n"; } + if ($msg_error) { + require_once "resources/header.php"; + echo "
"; + echo "
"; + echo $msg_error; + echo "
"; + echo "
\n"; + require_once "resources/persist_form.php"; + echo persistform($_POST); + echo "
"; + require_once "resources/footer.php"; + return; + } + + //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_language) == 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)); + } + } + } //get the number of rows in v_user_settings $sql = "select count(*) as num_rows from v_user_settings "; @@ -564,6 +623,29 @@ else { } */ + echo " \n"; + echo " \n"; + echo " ".$text['label-user_language'].": \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "
\n"; + echo " ".$text['description-user_language']."
\n"; + echo " \n"; + echo " \n"; + echo " "; + echo "
"; + echo " \n"; echo " \n"; echo " ".$text['label-time_zone'].": \n";