public function YamlFormElementBase::getRelatedTypes in YAML Form 8
Get related element types.
Parameters
array $element: The element.
Return value
array An array containing related element types.
Overrides YamlFormElementInterface::getRelatedTypes
1 call to YamlFormElementBase::getRelatedTypes()
- OptionsBase::getRelatedTypes in src/
Plugin/ YamlFormElement/ OptionsBase.php - Get related element types.
3 methods override YamlFormElementBase::getRelatedTypes()
- OptionsBase::getRelatedTypes in src/
Plugin/ YamlFormElement/ OptionsBase.php - Get related element types.
- YamlFormCompositeBase::getRelatedTypes in src/
Plugin/ YamlFormElement/ YamlFormCompositeBase.php - Get related element types.
- YamlFormMarkupBase::getRelatedTypes in src/
Plugin/ YamlFormElement/ YamlFormMarkupBase.php - Get related element types.
File
- src/
YamlFormElementBase.php, line 329
Class
- YamlFormElementBase
- Provides a base class for a form element.
Namespace
Drupal\yamlformCode
public function getRelatedTypes(array $element) {
$types = [];
$parent_classes = YamlFormReflectionHelper::getParentClasses($this, 'YamlFormElementBase');
$plugin_id = $this
->getPluginId();
$is_container = $this
->isContainer($element);
$has_multiple_values = $this
->hasMultipleValues($element);
$is_multiline = $this
->isMultiline($element);
$elements = $this->elementManager
->getInstances();
foreach ($elements as $element_name => $element_instance) {
// Skip self.
if ($plugin_id == $element_instance
->getPluginId()) {
continue;
}
// Skip disable or hidden.
if (!$element_instance
->isEnabled() || $element_instance
->isHidden()) {
continue;
}
// Compare element base (abstract) class.
$element_instance_parent_classes = YamlFormReflectionHelper::getParentClasses($element_instance, 'YamlFormElementBase');
if ($parent_classes[1] != $element_instance_parent_classes[1]) {
continue;
}
// Compare container, multiple values, and multiline.
if ($is_container != $element_instance
->isContainer($element)) {
continue;
}
if ($has_multiple_values != $element_instance
->hasMultipleValues($element)) {
continue;
}
if ($is_multiline != $element_instance
->isMultiline($element)) {
continue;
}
$types[$element_name] = $element_instance
->getPluginLabel();
}
asort($types);
return $types;
}