public function WebformElementBase::getRelatedTypes in Webform 6.x
Same name and namespace in other branches
- 8.5 src/Plugin/WebformElementBase.php \Drupal\webform\Plugin\WebformElementBase::getRelatedTypes()
Get related element types.
Parameters
array $element: The element.
Return value
array An array containing related element types.
Overrides WebformElementInterface::getRelatedTypes
1 call to WebformElementBase::getRelatedTypes()
- OptionsBase::getRelatedTypes in src/
Plugin/ WebformElement/ OptionsBase.php - Get related element types.
6 methods override WebformElementBase::getRelatedTypes()
- OptionsBase::getRelatedTypes in src/
Plugin/ WebformElement/ OptionsBase.php - Get related element types.
- VerticalTabs::getRelatedTypes in src/
Plugin/ WebformElement/ VerticalTabs.php - Get related element types.
- WebformCompositeBase::getRelatedTypes in src/
Plugin/ WebformElement/ WebformCompositeBase.php - Get related element types.
- WebformComputedBase::getRelatedTypes in src/
Plugin/ WebformElement/ WebformComputedBase.php - Get related element types.
- WebformHorizontalRule::getRelatedTypes in src/
Plugin/ WebformElement/ WebformHorizontalRule.php - Get related element types.
File
- src/
Plugin/ WebformElementBase.php, line 612
Class
- WebformElementBase
- Provides a base class for a webform element.
Namespace
Drupal\webform\PluginCode
public function getRelatedTypes(array $element) {
$types = [];
$parent_classes = WebformReflectionHelper::getParentClasses($this, 'WebformElementBase');
$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 disabled or hidden.
if ($element_instance
->isDisabled() || $element_instance
->isHidden()) {
continue;
}
// Compare element base (abstract) class.
$element_instance_parent_classes = WebformReflectionHelper::getParentClasses($element_instance, 'WebformElementBase');
if ($parent_classes[1] !== $element_instance_parent_classes[1]) {
continue;
}
// Compare container, supports/has 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;
}