\Charcoal\Admin\Property\InputDualSelectInput

List Builder Input Property

Represents a control of selectable values that can be moved between two list boxes, one representing selected values and the other representing unselected ones.

Learn more about List builder control.

Summary

Methods
Properties
Constants
choices()
isChoiceSelected()
setEmptyChoice()
emptyChoice()
mapObjToChoice()
setChoiceObjMap()
choiceObjMap()
inputNameFallback()
defaultChoiceObjMap()
__construct()
setDependencies()
setData()
setPropertyVal()
propertyVal()
setLang()
lang()
hidden()
setIdent()
ident()
setReadOnly()
readOnly()
setRequired()
required()
setDisabled()
disabled()
setMultiple()
multiple()
setPlaceholder()
placeholder()
setInputId()
inputId()
setInputClass()
inputClass()
setInputName()
inputName()
inputVal()
setInputMode()
inputMode()
setInputType()
inputType()
hasInputAffix()
setInputPrefix()
inputPrefix()
setInputSuffix()
inputSuffix()
setType()
type()
propertyIdent()
setProperty()
property()
p()
renderTranslatableTemplate()
unselectedChoices()
selectedChoices()
searchable()
reorderable()
setDualSelectOptions()
mergeDualSelectOptions()
addSelectOption()
dualSelectOptions()
defaultDualSelectOptions()
dualSelectOptionsAsJson()
No public properties found
DEFAULT_INPUT_TYPE
parseChoice()
parseChoiceVal()
defaultEmptyChoice()
createMetadata()
generateInputId()
getter()
setter()
$emptyChoice
$choiceObjMap
$type
$inputType
$inputMode
$inputName
$inputId
$inputClass
$inputPrefix
$inputSuffix
$searchable
$reorderable
N/A
camelize()
$lang
$ident
$readOnly
$required
$disabled
$multiple
$placeholder
$propertyData
$propertyVal
$property
$dualSelectOptions
N/A

Constants

DEFAULT_INPUT_TYPE

DEFAULT_INPUT_TYPE

Properties

$emptyChoice

$emptyChoice : array

The empty (NULL) option.

Type

array

$choiceObjMap

$choiceObjMap : array

The object-to-choice map.

Type

array

$type

$type : string

The control type for the HTML element `<input>`.

Type

string

$inputType

$inputType : string

Type

string

$inputMode

$inputMode : string

Type

string

$inputName

$inputName : string

Type

string

$inputId

$inputId : string

Type

string

$inputClass

$inputClass : string

Type

string

$inputPrefix

$inputPrefix : \Charcoal\Translator\Translation|string|null

The control's prefix.

Type

\Charcoal\Translator\Translation|string|null

$inputSuffix

$inputSuffix : \Charcoal\Translator\Translation|string|null

The control's suffix.

Type

\Charcoal\Translator\Translation|string|null

$searchable

$searchable : mixed

Whether the lists can be filtered.

Type

mixed

$reorderable

$reorderable : boolean

Whether options in the right-side can be moved amongst each other.

Type

boolean

$lang

$lang : string

Type

string

$ident

$ident : string

Type

string

$readOnly

$readOnly : boolean

Type

boolean

$required

$required : boolean

Type

boolean

$disabled

$disabled : boolean

Type

boolean

$multiple

$multiple : boolean

Type

boolean

$placeholder

$placeholder : \Charcoal\Translator\Translation|string|null

Type

\Charcoal\Translator\Translation|string|null

$propertyData

$propertyData : array

Type

array

$propertyVal

$propertyVal : mixed

Type

mixed

$property

$property : \Charcoal\Property\PropertyInterface

Type

\Charcoal\Property\PropertyInterface

$dualSelectOptions

$dualSelectOptions : array

Settings for {@link http://crlcu.github.io/multiselect/ Multiselect}.

Type

array

Methods

choices()

choices() : \Charcoal\Admin\Property\Generator|array

Retrieve the selectable options.

Returns

\Charcoal\Admin\Property\Generator|array

isChoiceSelected()

isChoiceSelected(mixed  $choice) : boolean

Determine if the provided option is a selected value.

Parameters

mixed $choice

The choice to check.

Returns

boolean

setEmptyChoice()

setEmptyChoice(array|string  $choice) : \Charcoal\Admin\Property\PropertyInputInterface

Set the empty option's structure.

Parameters

array|string $choice

The property value.

Throws

\InvalidArgumentException

If the choice structure is invalid.

Returns

\Charcoal\Admin\Property\PropertyInputInterface

Chainable

emptyChoice()

emptyChoice() : array|null

Retrieve the empty option structure.

Returns

array|null

mapObjToChoice()

mapObjToChoice(array|\ArrayAccess  $obj) : array

Convert the given object into a choice structure.

Parameters

array|\ArrayAccess $obj

The object to map to a choice.

Returns

array

setChoiceObjMap()

setChoiceObjMap(array  $map) : \Charcoal\Admin\Property\TagsInput

Set the object-to-choice data map.

Parameters

array $map

Model-to-choice mapping.

Returns

\Charcoal\Admin\Property\TagsInput —

Chainable

choiceObjMap()

choiceObjMap() : array

Retrieve the object-to-choice data map.

Returns

array —

Returns a data map to abide.

inputNameFallback()

inputNameFallback() : string

Retrieve the property input name without `[]` as fallback.

This allows to submit empty value from select input while preventing submitting the fallback when the property is multiple.

Returns

string

defaultChoiceObjMap()

defaultChoiceObjMap() : array

Retrieve the default object-to-choice data map.

Returns

array

__construct()

__construct(array|\ArrayAccess  $data = null) 

Parameters

array|\ArrayAccess $data

Constructor data.

setDependencies()

setDependencies(\Pimple\Container  $container) : void

Inject dependencies from a DI Container.

Parameters

\Pimple\Container $container

A dependencies container instance.

setData()

setData(array  $data) : \Charcoal\Admin\Property\AbstractPropertyInput

This function takes an array and fill the model object with its value.

This method either calls a setter for each key (set_{$key}()) or sets a public member.

For example, calling with setData(['properties'=>$properties]) would call setProperties($properties), becasue setProperties() exists.

But calling with setData(['foobar'=>$foo]) would set the $foobar member on the metadata object, because the method set_foobar() does not exist.

Parameters

array $data

The input data.

Returns

\Charcoal\Admin\Property\AbstractPropertyInput

Chainable

propertyVal()

propertyVal() : mixed

Returns

mixed

lang()

lang() : string

Get the input language

Returns

string

hidden()

hidden() : boolean

Returns

boolean

setIdent()

setIdent(string  $ident) : \Charcoal\Admin\Property\Widget

Parameters

string $ident

Input identifier.

Throws

\InvalidArgumentException

If the ident is not a string.

Returns

\Charcoal\Admin\Property\Widget —

Chainable

ident()

ident() : string

Returns

string

setReadOnly()

setReadOnly(boolean  $readOnly) : \Charcoal\Admin\Property\Widget

Parameters

boolean $readOnly

The read-only flag.

Returns

\Charcoal\Admin\Property\Widget —

(Chainable)

readOnly()

readOnly() : boolean

Returns

boolean

setRequired()

setRequired(boolean  $required) : \Charcoal\Admin\Property\Widget

Parameters

boolean $required

Required flag.

Returns

\Charcoal\Admin\Property\Widget —

(Chainable)

required()

required() : boolean

Returns

boolean

setDisabled()

setDisabled(boolean  $disabled) : \Charcoal\Admin\Property\Widget

Parameters

boolean $disabled

Disabled flag.

Returns

\Charcoal\Admin\Property\Widget —

(Chainable)

disabled()

disabled() : boolean

Returns

boolean

setMultiple()

setMultiple(boolean  $multiple) : \Charcoal\Admin\Property\Widget

Parameters

boolean $multiple

Multiple flag.

Returns

\Charcoal\Admin\Property\Widget —

(Chainable)

multiple()

multiple() : boolean

Returns

boolean

setPlaceholder()

setPlaceholder(mixed  $placeholder) : \Charcoal\Admin\Property\AbstractPropertyInput

Set the form control's placeholder.

A placeholder is a hint to the user of what can be entered in the property control.

Parameters

mixed $placeholder

The placeholder attribute.

Returns

\Charcoal\Admin\Property\AbstractPropertyInput

Chainable

placeholder()

placeholder() : \Charcoal\Translator\Translation|string|null

Retrieve the placeholder.

Returns

\Charcoal\Translator\Translation|string|null

setInputId()

setInputId(string  $inputId) : \Charcoal\Admin\Property\AbstractPropertyInput

Set the input ID.

Used for the HTML "ID" attribute.

Parameters

string $inputId

HTML input id attribute.

Returns

\Charcoal\Admin\Property\AbstractPropertyInput

Chainable

inputId()

inputId() : string

Retrieve the input ID.

If none was previously set then a unique random one will be generated.

Returns

string

setInputClass()

setInputClass(string  $inputClass) : \Charcoal\Admin\Property\AbstractPropertyInput

Parameters

string $inputClass

The input class attribute.

Throws

\InvalidArgumentException

If the class is not a string.

Returns

\Charcoal\Admin\Property\AbstractPropertyInput

Chainable

inputClass()

inputClass() : string

Returns

string

setInputName()

setInputName(string  $inputName) : \Charcoal\Admin\Property\AbstractPropertyInput

Set the input name.

Used for the HTML "name" attribute.

Parameters

string $inputName

HTML input id attribute.

Returns

\Charcoal\Admin\Property\AbstractPropertyInput

Chainable

inputName()

inputName() : string

Retrieve the input name.

The input name should always be the property's ident.

Returns

string

inputVal()

inputVal() : string

Throws

\UnexpectedValueException

If the value is invalid.

Returns

string

setInputMode()

setInputMode(string  $inputMode) : \Charcoal\Admin\Property\AbstractPropertyInput

Set the hint to the browser for which keyboard to display.

Parameters

string $inputMode

The input type.

Throws

\InvalidArgumentException

If the provided argument is not a string.

Returns

\Charcoal\Admin\Property\AbstractPropertyInput

Chainable

inputMode()

inputMode() : string

Retrieve the hint to the browser for which keyboard to display.

Returns

string

setInputType()

setInputType(string  $inputType) : \Charcoal\Admin\Property\AbstractPropertyInput

Parameters

string $inputType

The input type.

Throws

\InvalidArgumentException

If the provided argument is not a string.

Returns

\Charcoal\Admin\Property\AbstractPropertyInput

Chainable

inputType()

inputType() : string

Returns

string

hasInputAffix()

hasInputAffix() : boolean

Determine if the property has an affix.

Textual <input>s only

Avoid using <select> elements here as they cannot be fully styled in WebKit browsers.

Avoid using <textarea> elements here as their rows attribute will not be respected in some cases.

Returns

boolean

setInputPrefix()

setInputPrefix(mixed  $affix) : self

Retrieve the control's prefix.

Parameters

mixed $affix

Text to display before the control.

Throws

\InvalidArgumentException

If the suffix is not translatable.

Returns

self

inputPrefix()

inputPrefix() : \Charcoal\Translator\Translation|string|null

Retrieve the control's prefix.

Returns

\Charcoal\Translator\Translation|string|null

setInputSuffix()

setInputSuffix(mixed  $affix) : self

Retrieve the control's suffix.

Parameters

mixed $affix

Text to display after the control.

Throws

\InvalidArgumentException

If the suffix is not translatable.

Returns

self

inputSuffix()

inputSuffix() : \Charcoal\Translator\Translation|string|null

Retrieve the control's suffix.

Returns

\Charcoal\Translator\Translation|string|null

setType()

setType(string  $type) : \Charcoal\Admin\Property\AbstractPropertyInput

Set the control type for the HTML element `<input>`.

Parameters

string $type

The control type.

Throws

\InvalidArgumentException

If the provided argument is not a string.

Returns

\Charcoal\Admin\Property\AbstractPropertyInput

Chainable

type()

type() : string

Retrieve the control type for the HTML element `<input>`.

Returns

string

propertyIdent()

propertyIdent() : string

Returns

string

setProperty()

setProperty(\Charcoal\Property\PropertyInterface  $p) : \Charcoal\Admin\Property\AbstractPropertyInput

Parameters

\Charcoal\Property\PropertyInterface $p

The property.

Returns

\Charcoal\Admin\Property\AbstractPropertyInput

Chainable

property()

property() : \Charcoal\Property\PropertyInterface

Returns

\Charcoal\Property\PropertyInterface

p()

p() : \Charcoal\Property\PropertyInterface

Alias of {@see self::property()}

Returns

\Charcoal\Property\PropertyInterface

renderTranslatableTemplate()

renderTranslatableTemplate(mixed  $templateString) : string

Render the given template from string.

Parameters

mixed $templateString

The template to render.

Returns

string —

The rendered template.

unselectedChoices()

unselectedChoices() : \Charcoal\Admin\Property\Input\Generator|array

Retrieve the unselected options.

Returns

\Charcoal\Admin\Property\Input\Generator|array

selectedChoices()

selectedChoices() : \Charcoal\Admin\Property\Input\Generator|array

Retrieve the selected options.

Returns

\Charcoal\Admin\Property\Input\Generator|array

searchable()

searchable() : mixed

Returns

mixed

reorderable()

reorderable() : boolean

Determine if the right-side can be manually sorted.

Returns

boolean

setDualSelectOptions()

setDualSelectOptions(array  $settings) : \Charcoal\Admin\Property\Input\Selectinput

Set the dual-select's options.

This method always merges default settings.

Parameters

array $settings

The dual-select options.

Returns

\Charcoal\Admin\Property\Input\Selectinput —

Chainable

mergeDualSelectOptions()

mergeDualSelectOptions(array  $settings) : \Charcoal\Admin\Property\Input\Selectinput

Merge (replacing or adding) dual-select options.

Parameters

array $settings

The dual-select options.

Returns

\Charcoal\Admin\Property\Input\Selectinput —

Chainable

addSelectOption()

addSelectOption(string  $key, mixed  $val) : \Charcoal\Admin\Property\Input\Selectinput

Add (or replace) an dual-select option.

Parameters

string $key

The setting to add/replace.

mixed $val

The setting's value to apply.

Throws

\InvalidArgumentException

If the identifier is not a string.

Returns

\Charcoal\Admin\Property\Input\Selectinput —

Chainable

dualSelectOptions()

dualSelectOptions() : array

Retrieve the dual-select's options.

Returns

array

defaultDualSelectOptions()

defaultDualSelectOptions() : array

Retrieve the default dual-select options.

Returns

array

dualSelectOptionsAsJson()

dualSelectOptionsAsJson() : string

Retrieve the dual-select's options as a JSON string.

Returns

string —

Returns data serialized with {@see json_encode()}.

parseChoice()

parseChoice(string|integer  $ident, array|object  $choice) : array|null

Prepare a single selectable option for output.

Parameters

string|integer $ident

The choice key.

array|object $choice

The choice structure.

Returns

array|null

parseChoiceVal()

parseChoiceVal(mixed  $value) : mixed

Convert the value to a scalar.

Parameters

mixed $value

A value to parse.

Returns

mixed

defaultEmptyChoice()

defaultEmptyChoice() : array

Retrieve the default empty option structure.

Returns

array

createMetadata()

createMetadata(array  $data = null) : \Charcoal\Property\PropertyMetadata

Parameters

array $data

Optional. Metadata data.

Returns

\Charcoal\Property\PropertyMetadata

generateInputId()

generateInputId() : string

Generate a unique input ID.

Returns

string

getter()

getter(string  $key) : string

Allow an object to define how the key getter are called.

Parameters

string $key

The key to get the getter from.

Returns

string —

The getter method name, for a given key.

setter()

setter(string  $key) : string

Allow an object to define how the key setter are called.

Parameters

string $key

The key to get the setter from.

Returns

string —

The setter method name, for a given key.

camelize()

camelize(string  $str) : string

Transform a snake_case string to camelCase.

Parameters

string $str

The snake_case string to camelize.

Returns

string —

The camelCase string.