Example #1
0
 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');
 }