Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Archive /

Our old forums are still available as a read-only archive.

Moderators: martimiz, Sean, biapar, Willr, Ingo, simon_w

Reading of Live pages in CMSMain


Reply


2 Posts   1393 Views

Avatar
xmedeko

Community Member, 94 Posts

2 July 2007 at 12:38pm

Hi,

if the user deletes the page in CMS, he/she can see the readonly version of the Live page. However, it the Page has some relationship (e.g. has_many) to another DataObjects and shows this objects in a tab in CMS, then DataObject::get() does not work well, because the Versioned::$reading_stage is not set to 'Live'. I made the following correction to the CMSMain.php. May it the break something?

--- CMSMain.php.orig   2007-01-31 10:41:47.000000000 +1300
+++ CMSMain.php   2007-07-02 12:26:26.000000000 +1200
@@ -247,9 +254,15 @@
         $record = DataObject::get_one( $treeClass, "`$treeClass`.ID = $id");
         
         if(!$record) {
-            $record = Versioned::get_one_by_stage($treeClass, "Live", "`$treeClass`.ID = $id");
-            
-            if($record) $record->DeletedFromStage = true;
+//            $record = Versioned::get_one_by_stage($treeClass, "Live", "`$treeClass`.ID = $id");
+            Versioned::reading_stage('Live');
+            singleton($treeClass)->flushCache();
+            $record = DataObject::get_one( $treeClass, "`$treeClass`.ID = $id");
+            if($record) {
+               $record->DeletedFromStage = true;
+            } else {
+               Versioned::reading_stage(null);
+            }
         }
         return $record;

Maybe better solution to Versioned::reading_stage('Live'); is
Versioned::reading_stage(Versioned::get_live_stage());

Avatar
Andy

230 Posts

9 July 2007 at 12:48pm

Thanks, I've applied this to the 2.1 code.