private function VeflTrait::getRegionElements in Views exposed form layout 8.3
Same name and namespace in other branches
- 8.2 src/Plugin/views/exposed_form/VeflTrait.php \Drupal\vefl\Plugin\views\exposed_form\VeflTrait::getRegionElements()
Set filters for regions.
Parameters
string $layout_id: The layout id.
array $layouts: The array of layouts.
Return value
array Form elements.
1 call to VeflTrait::getRegionElements()
- VeflTrait::buildOptionsForm in src/
Plugin/ views/ exposed_form/ VeflTrait.php
1 method overrides VeflTrait::getRegionElements()
- VeflBef::getRegionElements in modules/
vefl_bef/ src/ Plugin/ views/ exposed_form/ VeflBef.php - Set filters for regions.
File
- src/
Plugin/ views/ exposed_form/ VeflTrait.php, line 68
Class
- VeflTrait
- Trait for vefl.
Namespace
Drupal\vefl\Plugin\views\exposed_formCode
private function getRegionElements($layout_id, array $layouts = []) {
$element = [
'#prefix' => '<div id="edit-block-region-wrapper">',
'#suffix' => '</div>',
];
// Outputs regions selectbox for each filter.
$types = [
'filters' => $this->view->display_handler
->getHandlers('filter'),
'actions' => $this->vefl
->getFormActions(),
];
$regions = [];
foreach ($layouts[$layout_id]
->getRegions() as $region_id => $region) {
$regions[$region_id] = $region['label'];
}
foreach ($types as $type => $fields) {
foreach ($fields as $id => $filter) {
if ($type == 'filters') {
if (!$filter->options['exposed']) {
continue;
}
elseif ($filter->options['is_grouped']) {
$id = $filter->options['group_info']['identifier'];
$label = $filter->options['group_info']['label'];
}
else {
$id = $filter->options['expose']['identifier'];
$label = $filter->options['expose']['label'];
}
}
else {
$label = $filter;
}
// Check if the operator is exposed for this filter.
if (isset($filter->options['expose']['use_operator']) && $filter->options['expose']['use_operator']) {
$operator_id = $filter->options['expose']['operator_id'];
$element[$operator_id] = $this
->createSelectElementForVeflForm($operator_id, $this
->t('Expose operator') . ' - ' . $label, $regions);
}
$element[$id] = $this
->createSelectElementForVeflForm($id, $label, $regions);
}
}
return $element;
}