Beispiel #1
0
 public function action_edit($name = '')
 {
     $page = Model_Page::get_by_title($name);
     $new_page = !$page;
     if (Input::method() == 'POST') {
         $val = Model_Page::validate($new_page ? 'create' : 'edit');
         if ($val->run(array('title' => $name))) {
             $page = $page ?: Model_Page::forge();
             $page->title = $val->validated('title');
             $page->body = $val->validated('body');
             $page->brief = $val->validated('brief');
             if (!Input::post('preview')) {
                 if ($page->save()) {
                     Session::set_flash('success', $new_page ? 'Added page.' : 'Updated page.');
                     Response::redirect($name);
                 } else {
                     Session::set_flash('error', $new_page ? 'Could not save page.' : 'Could not update page.');
                 }
             }
         } else {
             Session::set_flash('error', $val->error());
         }
         $this->template->set_global('body_html', Model_Page::parse_markdown(Input::post('body')), false);
     } else {
         if ($page) {
             $page->brief = '';
         }
     }
     $this->template->set_global('page', $page, false);
     $this->template->title = ($new_page ? 'Creating ' : 'Editing ') . (empty($name) ? '(top)' : $name);
     $this->template->name = $name;
     $this->template->content = View::forge('page/edit');
 }