From ce4a8224d84eb0bea7a52bc670b5f4d8feb59138 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Wed, 13 May 2009 21:32:22 +0000 Subject: 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. --- core/controllers/admin_advanced_settings.php | 36 +++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'core/controllers/admin_advanced_settings.php') 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")); + } } -- cgit v1.2.3