SilverStripe 2.4 API Docs
  • Package
  • Class
  • Tree
  • Deprecated
Version: master
  • master
  • 3.1
  • 3.0
  • 2.4
  • tagfield

Packages

  • cms
    • assets
    • batchaction
    • batchactions
    • bulkloading
    • comments
    • content
    • core
    • export
    • publishers
    • reports
    • security
    • tasks
  • forms
    • actions
    • core
    • fields-basic
    • fields-dataless
    • fields-datetime
    • fields-files
    • fields-formatted
    • fields-formattedinput
    • fields-relational
    • fields-structural
    • transformations
    • validators
  • installer
  • None
  • PHP
  • sapphire
    • api
    • bulkloading
    • control
    • core
    • cron
    • dev
    • email
    • fields-formattedinput
    • filesystem
    • formatters
    • forms
    • i18n
    • integration
    • misc
    • model
    • parsers
    • search
    • security
    • tasks
    • testing
    • tools
    • validation
    • view
    • widgets

Classes

  • CheckboxField
  • CheckboxField_Disabled
  • CheckboxField_Readonly
  • CheckboxSetField
  • DropdownField
  • GroupedDropdownField
  • ListboxField
  • LookupField
  • NullableField
  • OptionsetField
  • ReadonlyField
  • TextareaField
  • TextField

Class DropdownField

Dropdown field, created from a <select> tag.

Setting a $has_one relation

Using here an example of an art gallery, with Exhibition pages, each of which has a Gallery they belong to. The Gallery class is also user-defined.

static $has_one = array(
        'Gallery' => 'Gallery',
);

public function getCMSFields() {
        $fields = parent::getCMSFields();
        $galleries = DataObject::get('Gallery');
        if ($galleries) {
                $galleries = $galleries->toDropdownMap('ID', 'Title', '(Select one)', true);
        }
        $fields->addFieldToTab('Root.Content.Main', new DropdownField('GalleryID', 'Gallery', $galleries), 'Content');

As you see, you need to put "GalleryID", rather than "Gallery" here.

Populate with Array

Example model defintion:

class MyObject extends DataObject {
  static $db = array(
    'Country' => "Varchar(100)"
  );
}

Exampe instantiation:

new DropdownField(
  'Country',
  'Country',
  array(
    'NZ' => 'New Zealand',
    'US' => 'United States'
    'GEM'=> 'Germany'
  )
);

Populate with Enum-Values

You can automatically create a map of possible values from an Enum database column.

Example model definition:

class MyObject extends DataObject {
  static $db = array(
    'Country' => "Enum('New Zealand,United States,Germany','New Zealand')"
  );
}

Field construction:

new DropdownField(
  'Country',
  'Country',
  singleton('MyObject')->dbObject('Country')->enumValues()
);
Object
Extended by ViewableData implements IteratorAggregate
Extended by RequestHandler
Extended by FormField
Extended by DropdownField

Direct known subclasses

CountryDropdownField, GroupedDropdownField, ListboxField, LookupField, OptionsetField

Indirect known subclasses

CheckboxSetField, LanguageDropdownField, Member_DatetimeOptionsetField

Package: forms\fields-basic
See: CheckboxSetField for multiple selections through checkboxes instead.
See: ListboxField for a single <select> box (with single or multiple selections).
See: TreeDropdownField for a rich and customizeable UI that can visualize a tree of selectable elements
Used by: ForeignKey
Located at sapphire/forms/DropdownField.php

Methods summary

public
# __construct( mixed $name, mixed $title = null, mixed $source = array(), mixed $value = "", mixed $form = null, mixed $emptyString = null )

Creates a new dropdown field.

Creates a new dropdown field.

Parameters

$name
mixed
$name The field name
$title
mixed
$title The field title
$source
mixed
$source An map of the dropdown items
$value
mixed
$value The current value
$form
mixed
$form The parent form
$emptyString
mixed
$emptyString mixed Add an empty selection on to of the DropdownField::$source-Array (can also be boolean, which results in an empty string) Argument is deprecated in 2.3, please use DropdownField::setHasEmptyDefault() and DropdownField::setEmptyString() instead.

Overrides

FormField::__construct
public string
# Field( )

Returns a <select> tag containing all the appropriate <option> tags. Makes use of FormField->createTag() to generate the <select> tag and option elements inside is as the content of the <select>.

Returns a <select> tag containing all the appropriate <option> tags. Makes use of FormField->createTag() to generate the <select> tag and option elements inside is as the content of the <select>.

Returns

string
HTML tag for this dropdown field

Overrides

FormField::Field
public boolean
# isSelected( )

Returns

boolean
public array
# getSource( )

Gets the source array including any empty default values.

Gets the source array including any empty default values.

Returns

array
public
# setSource( array $source )

Parameters

$source
array
$source
public
# setHasEmptyDefault( boolean $bool )

Parameters

$bool
boolean
$bool
public boolean
# getHasEmptyDefault( )

Returns

boolean
public
# setEmptyString( string $str )

Set the default selection label, e.g. "select...". Defaults to an empty string. Automatically sets DropdownField::$hasEmptyDefault to true.

Set the default selection label, e.g. "select...". Defaults to an empty string. Automatically sets DropdownField::$hasEmptyDefault to true.

Parameters

$str
string
$str
public string
# getEmptyString( )

Returns

string
public
# performReadonlyTransformation( )

Returns a readonly version of this field

Returns a readonly version of this field

Overrides

FormField::performReadonlyTransformation
public String
# extraClass( )

Compiles all CSS-classes. Optionally includes a "nolabel"-class if no title was set on the formfield. Uses FormField::Message() and FormField::MessageType() to add validatoin error classes which can be used to style the contained tags.

Compiles all CSS-classes. Optionally includes a "nolabel"-class if no title was set on the formfield. Uses FormField::Message() and FormField::MessageType() to add validatoin error classes which can be used to style the contained tags.

Returns

String
CSS-classnames

Overrides

FormField::extraClass
public
# setDisabled( mixed $disabled = true )

Set form being disabled

Set form being disabled

Parameters

$disabled
mixed
$bool boolean Setting "false" has no effect on the field-state.

Overrides

FormField::setDisabled

Methods inherited from FormField

FieldHolder(), LeftTitle(), Link(), Message(), MessageType(), Name(), Required(), RightTitle(), SmallFieldHolder(), Title(), Type(), Value(), addExtraClass(), attrName(), attrTitle(), attrValue(), createTag(), dataValue(), debug(), describe(), forTemplate(), getCustomValidationMessage(), getForm(), getTabIndex(), getTabIndexHTML(), hasClass(), hasData(), id(), isComposite(), isDisabled(), isReadonly(), jsValidation(), name_to_label(), performDisabledTransformation(), removeExtraClass(), rootFieldSet(), saveInto(), securityTokenEnabled(), setContainerFieldSet(), setCustomValidationMessage(), setError(), setForm(), setLeftTitle(), setName(), setReadonly(), setRightTitle(), setTabIndex(), setTitle(), setValue(), transform(), validate()

Methods inherited from RequestHandler

allowedActions(), checkAccessAction(), getRequest(), handleRequest(), hasAction(), httpError()

Methods inherited from ViewableData

ATT_val(), BaseHref(), CSSClasses(), CurrentMember(), CurrentPage(), Debug(), Even(), EvenOdd(), First(), FirstLast(), HasPerm(), IsAjax(), JS_val(), Last(), Me(), Middle(), MiddleString(), Modulus(), MultipleOf(), Odd(), Pos(), RAW_val(), SQL_val(), ThemeDir(), Top(), TotalItems(), XML_val(), __get(), __isset(), __set(), buildCastingCache(), cachedCall(), castingClass(), castingHelper(), castingHelperPair(), castingObjectCreator(), castingObjectCreatorPair(), customise(), defineMethods(), escapeTypeForField(), getField(), getIterator(), getSecurityID(), getXMLValues(), hasField(), hasValue(), i18nLocale(), iteratorProperties(), obj(), renderWith(), setCustomisedObj(), setField()

Methods inherited from Object

__call(), __toString(), addMethodsFrom(), addStaticVars(), addWrapperMethod(), add_extension(), add_static_var(), allMethodNames(), cacheToFile(), cacheToFileWithArgs(), clearCache(), combined_static(), create(), createMethod(), create_from_string(), exists(), extInstance(), extend(), getCustomClass(), getExtensionInstance(), getExtensionInstances(), get_extensions(), get_static(), hasExtension(), hasMethod(), has_extension(), invokeWithExtensions(), is_a(), loadCache(), parentClass(), parse_class_spec(), remove_extension(), sanitiseCachename(), saveCache(), set_stat(), set_static(), set_uninherited(), stat(), strong_create(), uninherited(), uninherited_static(), useCustomClass()

Magic methods summary

Properties summary

protected boolean $source
#

$source Associative or numeric array of all dropdown items, with array key as the submitted field value, and the array value as a natural language description shown in the interface element.

$source Associative or numeric array of all dropdown items, with array key as the submitted field value, and the array value as a natural language description shown in the interface element.

protected boolean $isSelected
#

$isSelected Determines if the field was selected at the time it was rendered, so if FormField::$value matches on of the array values specified in DropdownField::$source

$isSelected Determines if the field was selected at the time it was rendered, so if FormField::$value matches on of the array values specified in DropdownField::$source

protected boolean $disabled
#

$disabled

$disabled

protected boolean $hasEmptyDefault
#

$hasEmptyDefault Show the first <option> element as empty (not having a value), with an optional label defined through DropdownField::$emptyString. By default, the <select> element will be rendered with the first option from DropdownField::$source selected.

$hasEmptyDefault Show the first <option> element as empty (not having a value), with an optional label defined through DropdownField::$emptyString. By default, the <select> element will be rendered with the first option from DropdownField::$source selected.

protected string $emptyString
#

$emptyString The title shown for an empty default selection, e.g. "Select...".

$emptyString The title shown for an empty default selection, e.g. "Select...".

Properties inherited from FormField

$containerFieldSet, $customValidationMessage, $description, $dontEscape, $extraClass, $extraClasses, $form, $leftTitle, $message, $messageType, $name, $readonly, $rightTitle, $tabIndex, $title, $value

Properties inherited from RequestHandler

$allowed_actions, $brokenOnConstruct, $request, $url_handlers

Properties inherited from ViewableData

$casting, $customisedObject, $default_cast, $failover, $iteratorPos, $iteratorTotalItems

Properties inherited from Object

$class, $extension_instances, $extensions

Comments

Comment policy: Please use comments for tips and corrections about the described functionality. Comments are moderated, we reserve the right to remove comments that are inappropriate or are no longer relevant.
Use the Silverstripe Forum to ask questions.
blog comments powered by Disqus
SilverStripe 2.4 API Docs API documentation generated by ApiGen 2.8.0