summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorAndy Staudacher <andy.st@gmail.com>2009-02-10 05:37:42 +0000
committerAndy Staudacher <andy.st@gmail.com>2009-02-10 05:37:42 +0000
commit62f3724acbdf60b7a17c452e74f099b5236d41cb (patch)
treebcf7ad27946413681c1774bad65e754001f37777 /modules
parentfe5240730a0f281db1ed6ad3be0a3c63c72868bc (diff)
Adding UI for site language selection and user language preference.
Diffstat (limited to 'modules')
-rw-r--r--modules/user/controllers/admin_users.php4
-rw-r--r--modules/user/controllers/users.php2
-rw-r--r--modules/user/helpers/user.php12
-rw-r--r--modules/user/models/user.php3
4 files changed, 20 insertions, 1 deletions
diff --git a/modules/user/controllers/admin_users.php b/modules/user/controllers/admin_users.php
index 38e68d30..14c4c593 100644
--- a/modules/user/controllers/admin_users.php
+++ b/modules/user/controllers/admin_users.php
@@ -41,6 +41,8 @@ class Admin_Users_Controller extends Controller {
$user = user::create(
$name, $form->add_user->full_name->value, $form->add_user->password->value);
$user->email = $form->add_user->email->value;
+ $desired_locale = $form->add_user->locale->value;
+ $user->locale = $desired_locale == "none" ? null : $desired_locale;
$user->save();
message::success(t("Created user %user_name", array("user_name" => $user->name)));
print json_encode(array("result" => "success"));
@@ -111,6 +113,8 @@ class Admin_Users_Controller extends Controller {
$user->full_name = $form->edit_user->full_name->value;
$user->password = $form->edit_user->password->value;
$user->email = $form->edit_user->email->value;
+ $desired_locale = $form->edit_user->locale->value;
+ $user->locale = $desired_locale == "none" ? null : $desired_locale;
$user->save();
message::success(t("Changed user %user_name", array("user_name" => $user->name)));
print json_encode(array("result" => "success"));
diff --git a/modules/user/controllers/users.php b/modules/user/controllers/users.php
index dc6b3b4c..16984edf 100644
--- a/modules/user/controllers/users.php
+++ b/modules/user/controllers/users.php
@@ -35,6 +35,8 @@ class Users_Controller extends REST_Controller {
}
$user->email = $form->edit_user->email->value;
$user->url = $form->edit_user->url->value;
+ $desired_locale = $form->edit_user->locale->value;
+ $user->locale = $desired_locale == "none" ? null : $desired_locale;
$user->save();
print json_encode(
diff --git a/modules/user/helpers/user.php b/modules/user/helpers/user.php
index 4eedae06..c923bab4 100644
--- a/modules/user/helpers/user.php
+++ b/modules/user/helpers/user.php
@@ -29,6 +29,7 @@ class user_Core {
$group = $form->group("edit_user")->label(t("Edit User"));
$group->input("name")->label(t("Name"))->id("gName")->value($user->name);
$group->input("full_name")->label(t("Full Name"))->id("gFullName")->value($user->full_name);
+ self::add_locale_dropdown($group, $user);
$group->password("password")->label(t("Password"))->id("gPassword");
$group->password("password2")->label(t("Confirm Password"))->id("gPassword2")
->matches($group->password);
@@ -47,6 +48,7 @@ class user_Core {
$group->inputs["name"]->error_messages(
"in_use", t("There is already a user with that name"));
$group->input("full_name")->label(t("Full Name"))->id("gFullName")->value($user->full_name);
+ self::add_locale_dropdown($group, $user);
$group->password("password")->label(t("Password"))->id("gPassword");
$group->password("password2")->label(t("Confirm Password"))->id("gPassword2")
->matches($group->password);
@@ -69,12 +71,22 @@ class user_Core {
->matches($group->password);
$group->input("email")->label(t("Email"))->id("gEmail");
$group->input("url")->label(t("URL"))->id("gUrl")->value($user->url);
+ self::add_locale_dropdown($group);
$group->submit("")->value(t("Add User"));
$user = ORM::factory("user");
$form->add_rules_from($user);
return $form;
}
+ private static function add_locale_dropdown(&$form, $user=null) {
+ $available_locales = locale::available();
+ asort($available_locales, SORT_LOCALE_STRING);
+ $locales['none'] = t("Language Preference");
+ $locales = array_merge($locales, $available_locales);
+ $selected_locale = ($user && $user->locale) ? $user->locale : "none";
+ $form->dropdown("locale")->options($locales)->selected($selected_locale);
+ }
+
static function get_delete_form_admin($user) {
$form = new Forge("admin/users/delete_user/$user->id", "", "post", array("id" => "gDeleteUserForm"));
$group = $form->group("delete_user")->label(
diff --git a/modules/user/models/user.php b/modules/user/models/user.php
index 85fa75bb..a2715e00 100644
--- a/modules/user/models/user.php
+++ b/modules/user/models/user.php
@@ -24,7 +24,8 @@ class User_Model extends ORM {
"name" => "required|length[1,32]",
"full_name" => "length[0,255]",
"email" => "valid_email|length[1,255]",
- "password" => "required|length[1,40]");
+ "password" => "required|length[1,40]",
+ "locale" => "length[2,10]");
public function __set($column, $value) {
switch ($column) {