silverstripe-framework/tests/php/ORM/DataExtensionTest/CMSFieldsGrandChild.php

51 lines
1.6 KiB
PHP

<?php
namespace SilverStripe\ORM\Tests\DataExtensionTest;
use SilverStripe\Dev\TestOnly;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\TextField;
use SilverStripe\ORM\Tests\DataExtensionTest\CMSFieldsChild;
/**
* Third level test class, testing that beforeExtendingCMSFields and afterExtendingCMSFields can be nested
*/
class CMSFieldsGrandChild extends CMSFieldsChild implements TestOnly
{
private static $table_name = 'DataExtensionTest_CMSFieldsGrandChild';
private static $db = [
'GrandchildField' => 'Varchar(255)'
];
public function getCMSFields()
{
$this->beforeUpdateCMSFields(
function (FieldList $fields) {
// Remove field from parent's beforeExtendingCMSFields
$fields->removeByName('ChildFieldBeforeExtension', true);
// Adds own pre-extension field
$fields->addFieldToTab('Root.Test', new TextField('GrandchildFieldBeforeExtension'));
}
);
$this->afterUpdateCMSFields(
function (FieldList $fields) {
// Remove field from parent's afterExtendingCMSFields
$fields->removeByName('ChildFieldAfterExtension', true);
// Adds own post-extension field
$fields->addFieldToTab(
'Root.Test',
new TextField('GrandchildFieldAfterExtension', 'GrandchildFieldAfterExtension')
);
}
);
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Test', new TextField('GrandchildField'));
return $fields;
}
}