mirror of
https://github.com/silverstripe/silverstripe-subsites
synced 2024-10-22 11:05:55 +02:00
Add extension to correctly support element preview
This commit is contained in:
parent
b855a555c8
commit
a052bfd590
@ -64,3 +64,12 @@ SilverStripe\Subsites\Admin\SubsiteAdmin:
|
||||
SilverStripe\SiteConfig\SiteConfigLeftAndMain:
|
||||
extensions:
|
||||
- SilverStripe\Subsites\Extensions\SubsiteMenuExtension
|
||||
|
||||
---
|
||||
Name: subsite-preview-elemental
|
||||
Only:
|
||||
classexists: DNADesign\Elemental\Models\BaseElement
|
||||
---
|
||||
DNADesign\Elemental\Models\BaseElement:
|
||||
extensions:
|
||||
- SilverStripe\Subsites\Extensions\BaseElementSubsites
|
||||
|
33
src/Extensions/BaseElementSubsites.php
Normal file
33
src/Extensions/BaseElementSubsites.php
Normal file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace SilverStripe\Subsites\Extensions;
|
||||
|
||||
use SilverStripe\Control\HTTP;
|
||||
use SilverStripe\ORM\DataExtension;
|
||||
|
||||
/**
|
||||
* Extension for the BaseElement object to add subsites support for CMS previews
|
||||
*/
|
||||
class BaseElementSubsites extends DataExtension
|
||||
{
|
||||
/**
|
||||
* Set SubsiteID to avoid errors when a page doesn't exist on the CMS domain.
|
||||
*
|
||||
* @param string &$link
|
||||
* @param string|null $action
|
||||
* @return string
|
||||
*/
|
||||
public function updatePreviewLink(&$link)
|
||||
{
|
||||
// Get subsite ID from the element or from its page. Defaults to 0 automatically.
|
||||
$subsiteID = $this->owner->SubsiteID;
|
||||
if (is_null($subsiteID)) {
|
||||
$page = $this->owner->getPage();
|
||||
if ($page) {
|
||||
$subsiteID = $page->SubsiteID;
|
||||
}
|
||||
}
|
||||
|
||||
$link = HTTP::setGetVar('SubsiteID', intval($subsiteID), $link);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user