FIX #58 on page duplicate

Fixing issue #58 where WidgetAreas end up being linked to multiple pages at once
This commit is contained in:
Mark-M 2013-07-08 13:42:54 +01:00
parent c971289104
commit d56c5398ac

View File

@ -47,5 +47,23 @@ class WidgetPageExtension extends DataExtension {
return $this->owner->SideBar();
}
}
public function onBeforeDuplicate($duplicatePage) {
if($this->owner->hasField('SideBarID')) {
$sideBar = $this->owner->getComponent('SideBar');
$duplicateWidgetArea = $sideBar->duplicate();
foreach($sideBar->Items() as $originalWidget) {
$widget = $originalWidget->duplicate(false);
$widget->ParentID = $duplicateWidgetArea->ID;
$widget->write();
}
$duplicatePage->SideBarID = $duplicateWidgetArea->ID;
}
return $duplicatePage;
}
}