示例#1
0
 /**
  * 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');
 }