function field_group_field_ui_form_params in Field Group 8.3
Same name and namespace in other branches
- 8 includes/field_ui.inc \field_group_field_ui_form_params()
- 7.2 field_group.field_ui.inc \field_group_field_ui_form_params()
- 7 field_group.field_ui.inc \field_group_field_ui_form_params()
Helper function to get the form parameters to use while building the fields and display overview form.
Parameters
$form:
\Drupal\Core\Entity\EntityDisplayBase $display:
Return value
\stdClass
1 call to field_group_field_ui_form_params()
- field_group_field_ui_display_form_alter in includes/
field_ui.inc - Function to alter the display overview screens.
File
- includes/
field_ui.inc, line 30 - Field_group.field_ui.inc is a file that contains most functions needed on the Fields UI Manage forms (display and fields).
Code
function field_group_field_ui_form_params($form, EntityDisplayBase $display) {
$params = new stdClass();
$params->entity_type = $display
->getTargetEntityTypeId();
$params->bundle = $display
->getTargetBundle();
$params->mode = $display
->getMode();
$params->context = field_group_get_context_from_display($display);
$params->groups = [];
$params->groups = field_group_info_groups($params->entity_type, $params->bundle, $params->context, $params->mode);
// Gather parenting data.
$params->parents = [];
foreach ($params->groups as $name => $group) {
if (!empty($group->children)) {
foreach ($group->children as $child) {
// Field UI js sometimes can trigger an endless loop. Check if the parent
// of this field is not a child.
if ($child !== $group->parent_name) {
$params->parents[$child] = $name;
}
}
}
}
// Get possible regions.
// TODO remove the field layout part when it's remove from in core.
// see https://www.drupal.org/project/field_group/issues/3086019
$ds_info = $display
->getThirdPartySettings('ds');
$field_layout_info = $display
->getThirdPartySettings('field_layout');
/** @var \Drupal\Core\Layout\LayoutDefinition $layout */
if (!empty($field_layout_info) && isset($field_layout_info['id'])) {
$layout = \Drupal::service('plugin.manager.core.layout')
->getDefinition($field_layout_info['id']);
$params->available_regions = $layout
->getRegionNames();
$params->default_region = $layout
->getDefaultRegion() ?: 'hidden';
}
elseif (!empty($ds_info['layout']['id'])) {
$layout = \Drupal::service('plugin.manager.core.layout')
->getDefinition($ds_info['layout']['id']);
$params->available_regions = $layout
->getRegionNames();
// Hidden is an available region too, as weird as it may seems.
$params->available_regions[] = 'hidden';
$params->default_region = $layout
->getDefaultRegion() ?: 'hidden';
}
else {
$params->available_regions = [
'content',
'hidden',
];
$params->default_region = 'hidden';
}
return $params;
}