silverstripe-frameworktest/code/BasicFieldsTestPage.php
Ingo Schommer 65d930d829 Added setDescription() to all fields to test help text support
This support has been added in master, for 3.0 most elements
will simply show the "title" attribute
2012-11-30 12:08:46 +01:00

155 lines
5.2 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",
'TimeDisabled' => 'Time',
'DateTimeDisabled' => 'Datetime',
'DMYCalendarDate' => 'Date',
'DMYDate' => 'Date',
'DateTime' => 'Datetime',
'DateTimeWithCalendar' => 'Datetime',
'Time' => 'Time',
'TimeWithDropdown' => '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',
'File' => 'File',
'Image' => 'Image',
);
static $has_many = array(
'HasManyFiles' => 'File',
);
static $many_many = array(
'ManyManyFiles' => 'File',
);
static $defaults = array(
'Readonly' => 'Default value for \'readonly\'',
"DateDisabled" => "2002-10-23",
"DateTimeDisabled" => "2002-10-23 23:59",
"TimeDisabled" => "23:59",
);
function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldsToTab('Root.Text', array(
new ReadonlyField('Readonly', 'ReadonlyField'),
new TextareaField('Textarea', 'TextareaField - 8 rows', 8),
new TextField('Text', 'TextField'),
new HtmlEditorField('HTMLField', 'HtmlEditorField'),
new EmailField('Email', 'EmailField'),
new PasswordField('Password', 'PasswordField'),
new AjaxUniqueTextField('AjaxUniqueText', 'AjaxUniqueTextField', 'AjaxUniqueText', 'BasicFieldsTestPage'),
));
$fields->addFieldsToTab('Root.Numeric', array(
new NumericField('Number', 'NumericField'),
new CurrencyField('Price', 'CurrencyField'),
new PhoneNumberField('PhoneNumber', 'PhoneNumberField'),
new CreditCardField('CreditCard', 'CreditCardField')
));
$fields->addFieldsToTab('Root.Option', array(
new CheckboxField('Checkbox', 'CheckboxField'),
new CheckboxSetField('CheckboxSet', 'CheckboxSetField', TestCategory::map()),
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.DateTime', array(
$calendarDateField = new DateField('CalendarDate','DateField with calendar'),
new DateField('Date','DateField'),
$dmyDateField = new DateField('DMYDate','DateField with separate fields'),
new TimeField('Time','TimeField'),
$timeFieldDropdown = new TimeField('TimeDropdown','TimeField with dropdown'),
new DatetimeField('DateTime', 'DateTime'),
$dateTimeShowCalendar = new DatetimeField('DateTimeWithCalendar', 'DateTime with calendar')
));
$calendarDateField->setConfig('showcalendar', true);
$dmyDateField->setConfig('dmyfields', true);
$timeFieldDropdown->setConfig('showdropdown', true);
$dateTimeShowCalendar->getDateField()->setConfig('showcalendar', true);
$dateTimeShowCalendar->getTimeField()->setConfig('showdropdown', true);
$fields->addFieldsToTab('Root.File', array(
UploadField::create('File','FileUploadField'),
UploadField::create('Image','ImageUploadField'),
UploadField::create('HasManyFiles','HasManyFilesUploadField'),
UploadField::create('ManyManyFiles','ManyManyFilesUploadField')
));
$tabs = array('Root.Text', 'Root.Numeric', 'Root.Option', 'Root.DateTime', 'Root.File');
foreach($tabs as $tab) {
$tabObj = $fields->fieldByName($tab);
foreach($tabObj->FieldList() as $field) {
$field
->setDescription('This is <strong>bold</strong> help text')
->addExtraClass('cms-help');
// ->addExtraClass('cms-help cms-help-tooltip');
$disabledField = $field->performDisabledTransformation();
$disabledField->setTitle($disabledField->Title() . ' (disabled)');
$disabledField->setName($disabledField->getName() . '_disabled');
$tabObj->insertAfter($disabledField, $field->getName());
$readonlyField = $field->performReadonlyTransformation();
$readonlyField->setTitle($readonlyField->Title() . ' (readonly)');
$readonlyField->setName($readonlyField->getName() . '_readonly');
$tabObj->insertAfter($readonlyField, $field->getName());
}
}
$fields->addFieldToTab('Root.Text', new TextField('Text_NoLabel', false, 'TextField without label'), 'Text_disabled');
return $fields;
}
}
class BasicFieldsTestPage_Controller extends TestPage_Controller {
function AutoCompleteItems() {
$items = array(
'TestItem1',
'TestItem2',
'TestItem3',
'TestItem4',
);
return implode(',', $items);
}
}
?>