MINOR when a parent page is unpublished, unpublish all related virtual pages, includes test coverage (from r94777) (from r96771)

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@102399 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Ingo Schommer 2010-04-12 03:19:11 +00:00
parent c0dfaa0b51
commit 31bf50d69d

View File

@ -1997,6 +1997,15 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
$this->write();
// Unpublish all virtual pages that point here
// This coupling to the subsites module is frustrating, but difficult to avoid.
if(class_exists('Subsite')) {
$virtualPages = Subsite::get_from_all_subsites('VirtualPage', "CopyContentFromID = {$this->ID}");
} else {
$virtualPages = DataObject::get('VirtualPage', "CopyContentFromID = {$this->ID}");
}
if ($virtualPages) foreach($virtualPages as $vp) $vp->doUnpublish();
$this->extend('onAfterUnpublish');
}