mirror of
https://github.com/silverstripe/silverstripe-frameworktest
synced 2024-10-22 11:06:02 +02:00
Merge pull request #169 from creative-commoners/pulls/1/elemental
NEW Extensions for elemental
This commit is contained in:
commit
3791f911ac
47
code/elemental/ElementContentExtension.php
Normal file
47
code/elemental/ElementContentExtension.php
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace SilverStripe\FrameworkTest\Elemental\Extension;
|
||||||
|
|
||||||
|
use SilverStripe\Core\Extension;
|
||||||
|
use SilverStripe\Forms\FieldList;
|
||||||
|
use SilverStripe\ORM\ValidationResult;
|
||||||
|
use SilverStripe\Forms\CompositeValidator;
|
||||||
|
use SilverStripe\Forms\NumericField;
|
||||||
|
use SilverStripe\Forms\RequiredFields;
|
||||||
|
use SilverStripe\Forms\TextField;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @extends Extension<ElementContent>
|
||||||
|
*/
|
||||||
|
class ElementContentExtension extends Extension
|
||||||
|
{
|
||||||
|
private static $db = [
|
||||||
|
'MyField' => 'Varchar',
|
||||||
|
'MyInt' => 'Int',
|
||||||
|
];
|
||||||
|
|
||||||
|
public function validate(ValidationResult $result)
|
||||||
|
{
|
||||||
|
if ($this->owner->Title == 'x') {
|
||||||
|
$result->addFieldError('Title', 'Title cannot be x');
|
||||||
|
}
|
||||||
|
if ($this->owner->MyField == 'x') {
|
||||||
|
$result->addFieldError('MyField', 'MyField cannot be x');
|
||||||
|
}
|
||||||
|
if ($this->owner->Title == 'z' && $this->owner->MyField == 'z') {
|
||||||
|
$result->addError('This is a general error message');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateCMSCompositeValidator(CompositeValidator $compositeValidator)
|
||||||
|
{
|
||||||
|
$compositeValidator->addValidator(new RequiredFields(['Title']));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateCMSFields(FieldList $fields)
|
||||||
|
{
|
||||||
|
$fields->removeByName('HTML');
|
||||||
|
$fields->addFieldToTab('Root.Main', TextField::create('MyField', 'My Field'));
|
||||||
|
$fields->addFieldToTab('Root.Main', NumericField::create('MyInt', 'My Int'));
|
||||||
|
}
|
||||||
|
}
|
19
code/elemental/NumericFieldExtension.php
Normal file
19
code/elemental/NumericFieldExtension.php
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace SilverStripe\FrameworkTest\Elemental\Extension;
|
||||||
|
|
||||||
|
use SilverStripe\Forms\NumericField;
|
||||||
|
use SilverStripe\Core\Extension;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @extends Extension<NumericField>
|
||||||
|
*/
|
||||||
|
class NumericFieldExtension extends Extension
|
||||||
|
{
|
||||||
|
public function updateValidationResult($result, $validator)
|
||||||
|
{
|
||||||
|
if ($this->owner->Value() == 1) {
|
||||||
|
$validator->validationError($this->owner->getName(), 'This field cannot be 1');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user