diff options
author | Bharat Mediratta <bharat@menalto.com> | 2009-05-13 21:32:22 +0000 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2009-05-13 21:32:22 +0000 |
commit | ce4a8224d84eb0bea7a52bc670b5f4d8feb59138 (patch) | |
tree | d019f4f403121fd2ddb554c61eb8655c41f48891 /core/controllers/admin_advanced_settings.php | |
parent | 58a11e3f7c1503a418880cf0898951830e40d6b9 (diff) |
Allow admins to modify variables. This way when something goes wrong,
we can tell them what to do in the forums and we don't have to build
super smart admin UIs to help users with weird edge cases.
This plus r20789 is probably a good enough fix for #232.
Diffstat (limited to 'core/controllers/admin_advanced_settings.php')
-rw-r--r-- | core/controllers/admin_advanced_settings.php | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/core/controllers/admin_advanced_settings.php b/core/controllers/admin_advanced_settings.php index 5a22ba58..1797b162 100644 --- a/core/controllers/admin_advanced_settings.php +++ b/core/controllers/admin_advanced_settings.php @@ -21,7 +21,41 @@ class Admin_Advanced_Settings_Controller extends Admin_Controller { public function index() { $view = new Admin_View("admin.html"); $view->content = new View("admin_advanced_settings.html"); - $view->content->vars = ORM::factory("var")->find_all(); + $view->content->vars = ORM::factory("var")->orderby("module_name", "name")->find_all(); print $view; } + + public function edit($module_name, $var_name) { + $value = module::get_var($module_name, $var_name); + $form = new Forge("admin/advanced_settings/save/$module_name/$var_name", "", "post"); + $group = $form->group("edit_var")->label( + t("Edit %var (%module_name)", + array("module_name" => $module_name, "var" => $var_name))); + $group->input("module_name")->label(t("Module"))->value($module_name)->disabled(1); + $group->input("var_name")->label(t("Setting"))->value($var_name)->disabled(1); + $group->textarea("value")->label(t("Value"))->value($value); + $group->submit("")->value(t("Save")); + print $form; + } + + public function save($module_name, $var_name) { + access::verify_csrf(); + + $var = ORM::factory("var") + ->where("module_name", $module_name) + ->where("name", $var_name) + ->find(); + if (!$var->loaded) { + kohana::show_404(); + } + + $var->value = Input::instance()->post("value"); + $var->save(); + + message::success( + t("Saved value for %var (%module_name)", + array("var" => $var->name, "module_name" => $var->module_name))); + + print json_encode(array("result" => "success")); + } } |