From ae2c8c094fc8636f0e99f3767292c008a681aff6 Mon Sep 17 00:00:00 2001 From: Tom Rix Date: Mon, 1 Mar 2010 02:58:38 +0000 Subject: [PATCH] BUGFIX: Fix SubsiteVirtualPages not updating content. (from r84995) --- code/SiteTreeSubsites.php | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/code/SiteTreeSubsites.php b/code/SiteTreeSubsites.php index 80be618..92615ee 100644 --- a/code/SiteTreeSubsites.php +++ b/code/SiteTreeSubsites.php @@ -3,7 +3,7 @@ /** * Extension for the SiteTree object to add subsites support */ -class SiteTreeSubsites extends DataObjectDecorator { +class SiteTreeSubsites extends SiteTreeDecorator { static $template_variables = array( '((Company Name))' => 'Title' ); @@ -107,6 +107,32 @@ class SiteTreeSubsites extends DataObjectDecorator { $this->nextWriteDoesntCustomise = false; } + + function onAfterWrite(&$original) { + // Update any subsite virtual pages that might need updating + Subsite::$disable_subsite_filter = true; + + $linkedPages = DataObject::get("SubsitesVirtualPage", "CopyContentFromID = {$this->owner->ID}"); + if($linkedPages) foreach($linkedPages as $page) { + $page->copyFrom($page->CopyContentFrom()); + $page->write(); + } + + Subsite::$disable_subsite_filter = false; + } + + function onAfterPublish(&$original) { + // Publish any subsite virtual pages that might need publishing + Subsite::$disable_subsite_filter = true; + + $linkedPages = DataObject::get("SubsitesVirtualPage", "CopyContentFromID = {$this->owner->ID}"); + if($linkedPages) foreach($linkedPages as $page) { + $page->copyFrom($page->CopyContentFrom()); + $page->doPublish(); + } + + Subsite::$disable_subsite_filter = false; + } function updateCMSFields(&$fields) { if($this->owner->MasterPageID) {