function edit($ID) { $Post = new mBlogPost($ID); if (isset($_POST['delete'])) { $Revision = new mBlogPostRevision($_POST['delete']); if ($Revision->delete()) { $this->output->delete_cache('/'); if (count($Post->revisions) == 0) { redirect('/site-admin/blog/'); } data('info_success', 'Delete Revision'); } else { data('info_errors', 'Couldn\'t delete that :('); } } $Revision = $Post->latest(); if (isset($_POST['action']) && $_POST['action'] !== 'delete') { $Post->__post(); $Revision->__post(); if ($Post->validate() && $Revision->validate()) { if ($Post->save()) { $this->output->delete_cache('/'); switch ($_POST['action']) { case 'publish': if ($Revision->status != mBlogPostRevision::PUBLISHED) { $Post->published = $Revision->id(); $Post->save(); $Result = $Revision->publish(); } else { $Revision = new mBlogPostRevision(); $Revision->__post(); $Revision->status = mBlogPostRevision::DRAFT; $Result = $Post->save($Revision); } if ($Result) { data('info_success', 'Published'); } else { data('info_errors', 'Not published'); } break; case 'update': case 'preview': if ($Revision->status == mBlogPostRevision::PUBLISHED) { $Revision = new mBlogPostRevision(); $Revision->__post(); $Revision->status = mBlogPostRevision::DRAFT; $Result = $Post->save($Revision); } else { $Result = $Revision->save(); } if ($Result) { data('info_success', 'Draft Updated'); } else { data('info_errors', 'Not updated'); } break; } } else { data('info_error', 'Something wen\'t wrong'); } } } else { $Revision = $Post->latest(); } $Post->__toMemory(); $Revision->__toMemory(); data('Revision', $Revision); data('Post', $Post); $this->display('blog/form'); }