"gUser")); $group = $form->group(_("User Info")); $group->input("name") ->label(_("Name")) ->id("gName") ->class(null) ->value($user->name); $group->input("display_name") ->label(_("Display Name")) ->id("gDisplayName") ->class(null) ->value($user->display_name); $group->password("password") ->label(_("Password")) ->id("gPassword") ->class(null); $group->input("email") ->label(_("Email")) ->id("gEmail") ->class(null) ->value($user->email); $group->submit(_("Modify")); $this->_add_validation_rules(ORM::factory("user")->validation_rules, $form); return $form; } /** * @todo Refactor this into a more generic location */ private function _add_validation_rules($rules, $form) { foreach ($form->inputs as $name => $input) { if (isset($input->inputs)) { $this->_add_validation_rules($rules, $input); } if (isset($rules[$name])) { $input->rules($rules[$name]); } } } /** * @see Rest_Controller::_get($resource) */ public function _get($user) { $form = $this->_get_form($user); print $form->render("form.html"); } /** * @see Rest_Controller::_put($resource) */ public function _put($resource) { throw new Exception("@todo User_Controller::_put NOT IMPLEMENTED"); } /** * @see Rest_Controller::_post($resource) */ public function _post($user) { $form = $this->_get_form($user); if ($form->validate()) { foreach ($form->as_array() as $key => $value) { $user->$key = $value; } $user->save(); if ($continue = $this->input->get("continue")) { url::redirect($continue); } return; } print $form->render("form.html"); } /** * @see Rest_Controller::_delete($resource) */ public function _delete($resource) { throw new Exception("@todo User_Controller::_delete NOT IMPLEMENTED"); } }