silverstripe-frameworktest/code/BasicFieldsTestPage.php
2010-04-12 05:27:50 +00:00

127 lines
4.4 KiB
PHP

<?php
class BasicFieldsTestPage extends TestPage {
static $db = array(
'Checkbox' => 'Boolean',
'Readonly' => 'Varchar',
'Textarea' => 'Text',
'Text' => 'Varchar',
'CalendarDate' => 'Date',
'CompositeDate' => 'Date',
'Date' => 'Date',
"DateDisabled" => "Date",
'DMYCalendarDate' => 'Date',
'DMYDate' => 'Date',
'DropdownTime' => 'Time',
'PopupDateTime' => 'Datetime',
'Time' => 'Time',
'Number' => 'Int',
'Price' => 'Double',
'Email' => 'Varchar',
'Password' => 'Varchar',
'ConfirmedPassword' => 'Varchar',
'HTMLField' => 'HTMLText',
'HTMLOneLine' => 'HTMLVarchar',
'UniqueText' => 'Varchar',
'AjaxUniqueText' => 'Varchar',
'UniqueRestrictedText' => 'Varchar',
'BankNumber' => 'Varchar',
'PhoneNumber' => 'Varchar',
'Autocomplete' => 'Varchar',
'CreditCard' => 'Varchar',
'GSTNumber' => 'Varchar',
);
static $has_one = array(
'Dropdown' => 'TestCategory',
'OptionSet' => 'TestCategory',
'GroupedDropdown' => 'TestCategory',
'ListboxField' => 'TestCategory',
'Image' => 'Image',
'Image2' => 'Image',
'Image3' => 'Image',
'File' => 'File',
'File2' => 'File',
'File3' => 'File',
);
static $defaults = array(
'Readonly' => 'Default value for \'readonly\'',
"DateDisabled" => "2002-10-23",
);
function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldsToTab('Root.Content.TextTests', array(
new ReadonlyField('Readonly', 'ReadonlyField'),
new TextareaField('Textarea', 'TextareaField - 8 rows', 8),
new TextField('Text', 'TextField'),
new HtmlEditorField('HTMLField', 'HtmlEditorField'),
// new HtmlOneLineField('HTMLOneLine', 'HTMLOneLineField'), // Doesn't work
new EmailField('Email', 'EmailField'),
new PasswordField('Password', 'PasswordField'),
//new ConfirmedPasswordField('ConfirmedPassword', 'ConfirmedPasswordField'),
new UniqueTextField('UniqueText', 'UniqueText', 'BasicFieldsTestPage', 'This field must be unique.', 'UniqueTextField'),
new UniqueRestrictedTextField('UniqueRestrictedText', 'UniqueRestrictedText', 'BasicFieldsTestPage', 'This field must be unique for each page',
'[^A-Za-z0-9-]+', '-', 'This field can only be made up of letters, digits and hyphens.',
'UniqueRestrictedTextField'),
new AjaxUniqueTextField('AjaxUniqueText', 'AjaxUniqueTextField', 'AjaxUniqueText', 'BasicFieldsTestPage'),
// new AutocompleteTextField('Autocomplete', 'AutocompleteTextField', Director::absoluteURL('BasicFieldsTestPage_Controller/AutoCompleteItems')), // Doesn't work
));
$fields->addFieldsToTab('Root.Content.NumericTests', array(
new NumericField('Number', 'NumericField'),
new CurrencyField('Price', 'CurrencyField'),
new PhoneNumberField('PhoneNumber', 'PhoneNumberField'),
new CreditCardField('CreditCard', 'CreditCardField')
));
$fields->addFieldsToTab('Root.Content.OptionTests', array(
new CheckboxField('Checkbox', 'CheckboxField'),
new DropdownField('DropdownID', 'DropdownField', TestCategory::map()),
new GroupedDropdownField('GroupedDropdownID', 'GroupedDropdown', array('Test Categorys' => TestCategory::map())),
new ListboxField('ListboxFieldID', 'ListboxField', TestCategory::map(), array(), 3),
new OptionsetField('OptionSetID', 'OptionSetField', TestCategory::map()),
));
// All these date/time fields generally have issues saving directly in the CMS
$fields->addFieldsToTab('Root.Content.DateTimeTests', array(
new CalendarDateField('CalendarDate','CalendarDateField'),
new CompositeDateField('CompositeDate','CompsiteDateField'),
new DateField('Date','DateField'),
new DateField_Disabled("DateDisabled","DateField_Disabled (should be 2002-10-23)"),
new DMYDateField('DMYDate','DMYDateField'),
new DropdownTimeField('DropdownTime','DropdownTimeField'),
new PopupDateTimeField('PopupDateTime','PopupDateTimeField'),
new TimeField('Time','TimeField')
));
$fields->addFieldsToTab('Root.Content.FileTests', array(
new ImageField('Image','ImageField'),
new SimpleImageField('Image2','SimpleImageField'),
new ImageField('Image3','ImageField'),
new FileIFrameField('File','FileIFrameField'),
new FileField('File2','FileField'),
new FileIFrameField('File3','FileIFrameField'),
));
return $fields;
}
}
class BasicFieldsTestPage_Controller extends TestPage_Controller {
function AutoCompleteItems() {
$items = array(
'TestItem1',
'TestItem2',
'TestItem3',
'TestItem4',
);
return implode(',', $items);
}
}
?>