diff options
author | Andy Staudacher <andy.st@gmail.com> | 2009-02-10 05:37:42 +0000 |
---|---|---|
committer | Andy Staudacher <andy.st@gmail.com> | 2009-02-10 05:37:42 +0000 |
commit | 62f3724acbdf60b7a17c452e74f099b5236d41cb (patch) | |
tree | bcf7ad27946413681c1774bad65e754001f37777 /modules/user | |
parent | fe5240730a0f281db1ed6ad3be0a3c63c72868bc (diff) |
Adding UI for site language selection and user language preference.
Diffstat (limited to 'modules/user')
-rw-r--r-- | modules/user/controllers/admin_users.php | 4 | ||||
-rw-r--r-- | modules/user/controllers/users.php | 2 | ||||
-rw-r--r-- | modules/user/helpers/user.php | 12 | ||||
-rw-r--r-- | modules/user/models/user.php | 3 |
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) { |