/** * Email Settings */ public function email() { $this->template->content = new View('admin/settings/email'); $this->template->content->title = Kohana::lang('ui_admin.settings'); // setup and initialize form field names $form = array('email_username' => '', 'email_password' => '', 'email_port' => '', 'email_host' => '', 'email_servertype' => '', 'email_ssl' => ''); // Copy the form as errors, so the errors will be stored with keys // corresponding to the form field names $errors = $form; $form_error = FALSE; $form_saved = FALSE; // check, has the form been submitted, if so, setup validation if ($_POST) { // Instantiate Validation, use $post, so we don't overwrite $_POST // fields with our own things $post = new Validation($_POST); // Add some filters $post->pre_filter('trim', TRUE); // Add some rules, the input field, followed by a list of checks, carried out in order $post->add_rules('email_username', 'required', 'length[3,50]'); $post->add_rules('email_password', 'length[3,100]'); $post->add_rules('email_port', 'numeric[1,100]', 'length[1,20]'); $post->add_rules('email_host', 'required', 'length[3,100]'); $post->add_rules('email_servertype', 'required', 'length[3,100]'); // Test to see if things passed the rule checks if ($post->validate()) { // Yes! everything is valid Settings_Model::save_all($post); // Delete Settings Cache $this->cache->delete('settings'); $this->cache->delete_tag('settings'); // Everything is A-Okay! $form_saved = TRUE; // repopulate the form fields $form = arr::overwrite($form, $post->as_array()); } else { // repopulate the form fields $form = arr::overwrite($form, $post->as_array()); // populate the error fields, if any $errors = arr::overwrite($errors, $post->errors('settings')); $form_error = TRUE; } } else { // Retrieve Current Settings $settings = Settings_Model::get_settings(array_keys($form)); $form = array('email_username' => $settings['email_username'], 'email_password' => $settings['email_password'], 'email_port' => $settings['email_port'], 'email_host' => $settings['email_host'], 'email_servertype' => $settings['email_servertype'], 'email_ssl' => $settings['email_ssl']); } $this->template->content->form = $form; $this->template->content->errors = $errors; $this->template->content->form_error = $form_error; $this->template->content->form_saved = $form_saved; $this->template->content->email_ssl_array = array('1' => Kohana::lang('ui_admin.yes'), '0' => Kohana::lang('ui_admin.no')); // Javascript Header $this->themes->js = new View('admin/settings/email_js'); }