Example #1
0
    protected function _edit_article($tok, $author, $id=False) {
        $t = \Plugins\Articles\Plugin::get_template('admin/edit.php');
        $t->admin_url = "/admin";
        $t->tok = $tok;
        try {
            if($id) {
                $t->title = "Edit Article";
                $article = \Plugins\Articles\Article::container()
                    ->get_by_id($id);
            } else {
                $t->title = "Create Article";
                $t->new = True;
                $article = \Plugins\Articles\Article::create($_POST, True);
            }

            if($_POST['_do'] == '1' && $this->_confirmed_request) {
                $article->overwrite($_POST);
                $article->form_values();
                $validator = \Core\Validator::validator('\Plugins\Articles\Article');
                $validator->validate($_POST, \Plugins\Articles\Article::validation());
                
                if($t->new) {
                    $article->author = $author;
                }

                \Core\Storage::container()
                    ->get_storage('Article')
                    ->save($article);
            }

            $t->article = $article;
                
        } catch(\Core\ValidationError $e) {
            return $this->_return_message("Fail",
                "Validation error(s):",
                $e->get_errors(), $t);
        }

        return $t->render();
    }