class BatOption in Booking and Availability Management Tools for Drupal 8
Plugin annotation
@FormElement("bat_option");
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\Core\Render\Element\RenderElement implements ElementInterface
- class \Drupal\Core\Render\Element\FormElement implements FormElementInterface
- class \Drupal\bat_options\Element\BatOption
- class \Drupal\Core\Render\Element\FormElement implements FormElementInterface
- class \Drupal\Core\Render\Element\RenderElement implements ElementInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of BatOption
1 #type use of BatOption
- BatOptionsCombined::formElement in modules/
bat_options/ src/ Plugin/ Field/ FieldWidget/ BatOptionsCombined.php - Returns the form for a single field widget.
File
- modules/
bat_options/ src/ Element/ BatOption.php, line 21 - Contains \Drupal\bat_options\Element\BatOption.
Namespace
Drupal\bat_options\ElementView source
class BatOption extends FormElement {
/**
* {@inheritdoc}
*/
public function getInfo() {
$class = get_class($this);
return [
'#input' => TRUE,
'#element_validate' => [
[
$class,
'validateBatOption',
],
],
'#process' => [
[
$class,
'processBatOption',
],
],
'#multiple' => FALSE,
'#attached' => [
'library' => [
'bat_options/options-widget',
],
],
];
}
/**
* {@inheritdoc}
*/
public static function valueCallback(&$element, $input, FormStateInterface $form_state) {
return '';
}
public static function processBatOption(&$element, FormStateInterface $form_state, &$complete_form) {
$parents_prefix = implode('_', $element['#parents']);
$element['name'] = [
'#type' => 'textfield',
'#title' => t('Name'),
'#default_value' => isset($element['#default_value']['name']) ? $element['#default_value']['name'] : NULL,
'#attributes' => [
'class' => [
'bat_options-option--name',
],
],
];
$element['quantity'] = [
'#type' => 'select',
'#title' => t('Quantity'),
'#options' => array_combine(range(1, 10, 1), range(1, 10, 1)),
'#default_value' => isset($element['#default_value']['quantity']) ? $element['#default_value']['quantity'] : NULL,
'#description' => t('How many of this add-on should be available'),
'#attributes' => [
'class' => [
'bat_options-option--quantity',
],
],
];
$price_options = bat_options_price_options();
$element['operation'] = [
'#type' => 'select',
'#title' => t('Operation'),
'#options' => $price_options,
'#default_value' => isset($element['#default_value']['operation']) ? $element['#default_value']['operation'] : NULL,
'#attributes' => [
'class' => [
'bat_options-option--operation',
],
],
];
$element['value'] = [
'#type' => 'textfield',
'#title' => t('Value'),
'#size' => 10,
'#default_value' => isset($element['#default_value']['value']) && $element['#default_value']['value'] != 0 ? $element['#default_value']['value'] : NULL,
'#element_validate' => [
'\\Drupal\\Core\\Render\\Element\\Number::validateNumber',
'\\Drupal\\bat_options\\Element\\BatOption::validateValue',
],
'#attributes' => [
'class' => [
'bat_options-option--value',
],
],
'#states' => [
'disabled' => [
':input[name="' . $element['#parents'][0] . '[' . $element['#parents'][1] . '][operation]"]' => [
'value' => 'no_charge',
],
],
],
];
$type_options = [
BAT_OPTIONS_OPTIONAL => t('Optional'),
BAT_OPTIONS_MANDATORY => t('Mandatory'),
BAT_OPTIONS_ONREQUEST => t('On Request'),
];
$element['type'] = [
'#type' => 'select',
'#title' => t('Type'),
'#options' => $type_options,
'#default_value' => isset($element['#default_value']['type']) ? $element['#default_value']['type'] : 'optional',
'#attributes' => [
'class' => [
'bat_options-option--type',
],
],
];
return $element;
}
/**
* Set value as 0 if empty.
*/
public static function validateValue(&$element, FormStateInterface $form_state, &$complete_form) {
$value = $element['#value'];
if ($value === '') {
$form_state
->setValue($element['#parents'], 0);
}
}
/**
* Validate function.
*/
public static function validateBatOption(&$element, FormStateInterface $form_state, &$complete_form) {
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
BatOption:: |
public | function |
Returns the element properties for this element. Overrides ElementInterface:: |
|
BatOption:: |
public static | function | ||
BatOption:: |
public static | function | Validate function. | |
BatOption:: |
public static | function | Set value as 0 if empty. | |
BatOption:: |
public static | function |
Determines how user input is mapped to an element's #value property. Overrides FormElement:: |
|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
FormElement:: |
public static | function | Adds autocomplete functionality to elements. | |
FormElement:: |
public static | function | #process callback for #pattern form element property. | |
FormElement:: |
public static | function | #element_validate callback for #pattern form element property. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 92 |
RenderElement:: |
public static | function | Adds Ajax information about an element to communicate with JavaScript. | |
RenderElement:: |
public static | function | Adds members of this group as actual elements for rendering. | |
RenderElement:: |
public static | function | Form element processing handler for the #ajax form property. | 1 |
RenderElement:: |
public static | function | Arranges elements into groups. | |
RenderElement:: |
public static | function |
Sets a form element's class attribute. Overrides ElementInterface:: |
|
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |