Esempio n. 1
0
File: blog.php Progetto: anqh/anqh
 /**
  * Edit entry
  *
  * @param   integer  $entry_id
  *
  * @throws  Model_Exception
  */
 protected function _edit_entry($entry_id = null)
 {
     $this->history = false;
     if ($entry_id) {
         // Editing old
         $entry = new Model_Blog_Entry($entry_id);
         if (!$entry->loaded()) {
             throw new Model_Exception($entry, $entry_id);
         }
         Permission::required($entry, Model_Blog_Entry::PERMISSION_UPDATE);
         $cancel = Route::model($entry);
         $this->view->title = __('Edit blog entry');
         $entry->modified = time();
         $entry->modify_count++;
     } else {
         // Creating new
         $entry = new Model_Blog_Entry();
         Permission::required($entry, Model_Blog_Entry::PERMISSION_CREATE);
         $cancel = Request::back(Route::get('blogs')->uri(), true);
         $newsfeed = true;
         $this->view->title = __('New blog entry');
         $entry->author_id = Visitor::$user->id;
         $entry->created = time();
     }
     // Handle post
     $errors = array();
     if ($_POST && Security::csrf_valid()) {
         try {
             $entry->name = Arr::get($_POST, 'name');
             $entry->content = Arr::get($_POST, 'content');
             $entry->save();
             // Newsfeed
             if (isset($newsfeed) && $newsfeed) {
                 NewsfeedItem_Blog::entry(Visitor::$user, $entry);
             }
             $this->request->redirect(Route::model($entry));
         } catch (Validation_Exception $e) {
             $errors = $e->array->errors('validation');
         }
     }
     // Form
     $section = $this->section_entry_edit($entry);
     $section->cancel = $cancel;
     $section->errors = $errors;
     $this->view->add(View_Page::COLUMN_CENTER, $section);
 }