function edit($ID) { $Page = new mPage($ID); if (isset($_POST['delete'])) { $Revision = new mPageRevision($_POST['delete']); if ($Revision->delete()) { $this->output->delete_cache('/'); if (count($Page->revisions) == 0) { redirect('/site-admin/pages/'); } data('info_success', 'Delete Revision'); } else { data('info_errors', 'Couldn\'t delete that :('); } } $Revision = $Page->latest(); if (isset($_POST['action']) && $_POST['action'] !== 'delete') { $Page->__post(); $Revision->__post(); if ($Page->validate() && $Revision->validate()) { if ($Page->save()) { $this->output->delete_cache('/'); switch ($_POST['action']) { case 'publish': if ($Revision->status != mPageRevision::PUBLISHED) { $Page->published = $Revision->id(); $Page->save(); $Result = $Revision->publish(); } else { $Revision = new mPageRevision(); $Revision->__post(); $Revision->status = mPageRevision::DRAFT; $Result = $Page->save($Revision); } if ($Result) { data('info_success', 'Published'); } else { data('info_errors', 'Not published'); } break; case 'update': case 'preview': if ($Revision->status == mPageRevision::PUBLISHED) { $Revision = new mPageRevision(); $Revision->__post(); $Revision->status = mPageRevision::DRAFT; $Result = $Page->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 = $Page->latest(); } $Page->__toMemory(); $Revision->__toMemory(); data('Revision', $Revision); data('Page', $Page); $this->display('pages/form'); }