mirror of
https://github.com/a2nt/cms-niceties.git
synced 2024-09-28 18:48:59 +02:00
51 lines
1.3 KiB
PHP
51 lines
1.3 KiB
PHP
|
<?php
|
||
|
|
||
|
|
||
|
namespace A2nt\CMSNiceties\Widgets;
|
||
|
|
||
|
|
||
|
use DNADesign\Elemental\Forms\TextCheckboxGroupField;
|
||
|
use SilverStripe\CMS\Model\SiteTree;
|
||
|
use SilverStripe\Forms\FieldList;
|
||
|
use SilverStripe\Forms\TreeDropdownField;
|
||
|
use SilverStripe\ORM\DataExtension;
|
||
|
|
||
|
class WidgetExtension extends DataExtension
|
||
|
{
|
||
|
private static $db = [
|
||
|
'ShowTitle' => 'Boolean(1)',
|
||
|
];
|
||
|
|
||
|
public function updateCMSFields(FieldList $fields)
|
||
|
{
|
||
|
parent::updateCMSFields($fields);
|
||
|
// Add a combined field for "Title" and "Displayed" checkbox in a Bootstrap input group
|
||
|
$fields->removeByName('ShowTitle');
|
||
|
$fields->replaceField(
|
||
|
'Title',
|
||
|
TextCheckboxGroupField::create()
|
||
|
->setName('Title')
|
||
|
);
|
||
|
$fields->push(TreeDropdownField::create(
|
||
|
'MovePageID', 'Move widget to page', SiteTree::class
|
||
|
));
|
||
|
}
|
||
|
|
||
|
public function onBeforeWrite()
|
||
|
{
|
||
|
$obj = $this->owner;
|
||
|
$moveID = $obj->MovePageID;
|
||
|
if ($moveID) {
|
||
|
$page = \Page::get()->byID($moveID);
|
||
|
if($page) {
|
||
|
$sidebarID = $page->getField('SideBarID');
|
||
|
if($sidebarID) {
|
||
|
$obj->setField('ParentID', $sidebarID);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
parent::onBeforeWrite();
|
||
|
}
|
||
|
}
|