class OptGroup
Provides helpers for HTML option groups.
Hierarchy
- class \Drupal\Core\Form\OptGroup
Expanded class hierarchy of OptGroup
5 files declare their use of OptGroup
- EntityReferenceItem.php in core/
lib/ Drupal/ Core/ Field/ Plugin/ Field/ FieldType/ EntityReferenceItem.php - InOperator.php in core/
modules/ views/ src/ Plugin/ views/ filter/ InOperator.php - ListItemBase.php in core/
modules/ options/ src/ Plugin/ Field/ FieldType/ ListItemBase.php - OptionsDefaultFormatter.php in core/
modules/ options/ src/ Plugin/ Field/ FieldFormatter/ OptionsDefaultFormatter.php - OptionsWidgetBase.php in core/
lib/ Drupal/ Core/ Field/ Plugin/ Field/ FieldWidget/ OptionsWidgetBase.php
2 string references to 'OptGroup'
- form_select_options in core/
includes/ form.inc - Converts the options in a select element into a structured array for output.
- TreeBuildingRules::evaluate in vendor/
masterminds/ html5/ src/ HTML5/ Parser/ TreeBuildingRules.php - Evaluate the rule for the current tag name.
File
-
core/
lib/ Drupal/ Core/ Form/ OptGroup.php, line 8
Namespace
Drupal\Core\FormView source
class OptGroup {
/**
* Allows PHP array processing of multiple select options with the same value.
*
* Used for form select elements which need to validate HTML option groups
* and multiple options which may return the same value. Associative PHP
* arrays cannot handle these structures, since they share a common key.
*
* @param array $array
* The form options array to process.
*
* @return array
* An array with all hierarchical elements flattened to a single array.
*/
public static function flattenOptions(array $array) {
$options = [];
static::doFlattenOptions($array, $options);
return $options;
}
/**
* Iterates over an array building a flat array with duplicate keys removed.
*
* This function also handles cases where objects are passed as array values.
*
* @param array $array
* The form options array to process.
* @param array $options
* The array of flattened options.
*/
protected static function doFlattenOptions(array $array, array &$options) {
foreach ($array as $key => $value) {
if (is_object($value) && isset($value->option)) {
static::doFlattenOptions($value->option, $options);
}
elseif (is_array($value)) {
static::doFlattenOptions($value, $options);
}
else {
$options[$key] = $value;
}
}
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
OptGroup::doFlattenOptions | protected static | function | Iterates over an array building a flat array with duplicate keys removed. |
OptGroup::flattenOptions | public static | function | Allows PHP array processing of multiple select options with the same value. |