content = new View("server_add_admin.html"); $view->content->add_form = $this->_get_admin_form(); $view->content->path_list = new View("server_add_dir_list.html"); $paths = unserialize(module::get_var("server_add", "authorized_paths", "a:0:{}")); $view->content->path_list->paths = array_keys($paths); print $view; } public function add_path() { access::verify_csrf(); $form = $this->_get_admin_form(); $paths = unserialize(module::get_var("server_add", "authorized_paths", "a:0:{}")); if ($form->validate()) { if (is_readable($form->add_path->path->value)) { $paths[$form->add_path->path->value] = 1; module::set_var("server_add", "authorized_paths", serialize($paths)); $view = new View("server_add_dir_list.html"); $view->paths = array_keys($paths); $form->add_path->inputs["path"]->value(""); print json_encode( array("result" => "success", "paths" => $view->__toString(), "form" => $form->__toString())); } else { $form->add_path->inputs["path"]->error("not_readable"); print json_encode(array("result" => "error", "form" => $form->__toString())); } } else { print json_encode(array("result" => "error", "form" => $form->__toString())); } } public function remove_path() { access::verify_csrf(); $path = $this->input->post("path"); $paths = unserialize(module::get_var("server_add", "authorized_paths")); unset($paths[$path]); module::set_var("server_add", "authorized_paths", serialize($paths)); $view = new View("server_add_dir_list.html"); $view->paths = array_keys($paths); print $view; } public function autocomplete() { $directories = array(); $path_prefix = $this->input->get("q"); foreach (glob("{$path_prefix}*") as $file) { if (is_dir($file)) { $directories[] = $file; } } print implode("\n", $directories); } private function _get_admin_form() { $form = new Forge("admin/server_add/add_path", "", "post", array("id" => "gServerAddAdminForm")); $add_path = $form->group("add_path"); $add_path->input("path")->label(t("Path"))->rules("required") ->error_messages("not_readable", t("The directory is not readable by the webserver")); $add_path->submit("add")->value(t("Add Path")); return $form; } }