ENH Make ElementalContentExtension MyPage a required field

This commit is contained in:
Steve Boyd 2024-05-02 12:49:44 +12:00
parent 3791f911ac
commit 433028abeb
2 changed files with 7 additions and 2 deletions

View File

@ -6,7 +6,7 @@ use SilverStripe\Registry\RegistryPage;
use SilverStripe\Security\DefaultAdminService; use SilverStripe\Security\DefaultAdminService;
use SilverStripe\Security\Member; use SilverStripe\Security\Member;
if (!class_exists(RegistryPage::class)) { if (class_exists(RegistryPage::class)) {
class TestRegistryPage extends RegistryPage class TestRegistryPage extends RegistryPage
{ {
public function requireDefaultRecords() public function requireDefaultRecords()

View File

@ -2,6 +2,7 @@
namespace SilverStripe\FrameworkTest\Elemental\Extension; namespace SilverStripe\FrameworkTest\Elemental\Extension;
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\Core\Extension; use SilverStripe\Core\Extension;
use SilverStripe\Forms\FieldList; use SilverStripe\Forms\FieldList;
use SilverStripe\ORM\ValidationResult; use SilverStripe\ORM\ValidationResult;
@ -20,6 +21,10 @@ class ElementContentExtension extends Extension
'MyInt' => 'Int', 'MyInt' => 'Int',
]; ];
private static $has_one = [
'MyPage' => SiteTree::class,
];
public function validate(ValidationResult $result) public function validate(ValidationResult $result)
{ {
if ($this->owner->Title == 'x') { if ($this->owner->Title == 'x') {
@ -35,7 +40,7 @@ class ElementContentExtension extends Extension
public function updateCMSCompositeValidator(CompositeValidator $compositeValidator) public function updateCMSCompositeValidator(CompositeValidator $compositeValidator)
{ {
$compositeValidator->addValidator(new RequiredFields(['Title'])); $compositeValidator->addValidator(new RequiredFields(['Title', 'MyPageID']));
} }
public function updateCMSFields(FieldList $fields) public function updateCMSFields(FieldList $fields)