public function FilterBlock::blockForm in Open Social 10.0.x
Same name and namespace in other branches
- 10.3.x modules/social_features/social_activity/modules/social_activity_filter/src/Plugin/views/display/FilterBlock.php \Drupal\social_activity_filter\Plugin\views\display\FilterBlock::blockForm()
- 10.1.x modules/social_features/social_activity/modules/social_activity_filter/src/Plugin/views/display/FilterBlock.php \Drupal\social_activity_filter\Plugin\views\display\FilterBlock::blockForm()
- 10.2.x modules/social_features/social_activity/modules/social_activity_filter/src/Plugin/views/display/FilterBlock.php \Drupal\social_activity_filter\Plugin\views\display\FilterBlock::blockForm()
Adds the configuration form elements specific to this views block plugin.
This method allows block instances to override the views items_per_page.
Parameters
\Drupal\views\Plugin\Block\ViewsBlock $block: The ViewsBlock plugin.
array $form: The form definition array for the block configuration form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
array The renderable form array representing the entire configuration form.
Overrides ModeBlock::blockForm
See also
\Drupal\views\Plugin\Block\ViewsBlock::blockForm()
File
- modules/
social_features/ social_activity/ modules/ social_activity_filter/ src/ Plugin/ views/ display/ FilterBlock.php, line 106
Class
- FilterBlock
- The plugin that handles a block.
Namespace
Drupal\social_activity_filter\Plugin\views\displayCode
public function blockForm(ViewsBlock $block, array &$form, FormStateInterface $form_state) {
parent::blockForm($block, $form, $form_state);
// Check if overridden filter option is enabled for current views block.
if (!$this
->getOption('override_tags_filter')) {
return $form;
}
$allow_settings = $this
->getOption('tags_filter');
$allow_settings += array_filter($this
->getOption('allow'));
$block_configuration = $block
->getConfiguration();
if (isset($block_configuration['delta'])) {
$delta = $block_configuration['delta'];
}
else {
$triggered = $form_state
->getTriggeringElement();
$delta = is_int($triggered['#parents'][1]) ? $triggered['#parents'][1] : '';
}
if ($vid = $form_state
->get('new_options_tags_' . $delta)) {
$opt = $this
->getTermOptionslist($vid);
}
else {
$opt = $this
->getTermOptionslist($block_configuration['vocabulary']);
}
foreach ($allow_settings as $type => $enabled) {
if (empty($enabled)) {
continue;
}
switch ($type) {
case 'vocabulary':
$form['override']['vocabulary'] = [
'#type' => 'select',
'#title' => $this
->t('Vocabulary'),
'#options' => $this
->getVocabularyOptionsList(),
'#default_value' => $block_configuration['vocabulary'],
'#empty_option' => $this
->t('None'),
'#empty_value' => '_none',
'#ajax' => [
'callback' => [
static::class,
'updateTagsOptions',
],
'wrapper' => 'edit-block-term-wrapper-' . $delta,
],
];
$form['override']['delta'] = [
'#type' => 'hidden',
'#value' => $delta,
];
break;
case 'tags':
// Adds workaround to hide/display tags field due to "states" issue in
// block_field plugin.
$hidden = empty($opt) ? 'hidden' : '';
$form['override']['tags'] = [
'#type' => 'select',
'#title' => $this
->t('Tags'),
'#description' => $this
->t('Select the tags to filter items in the stream.'),
'#default_value' => $block_configuration['tags'],
'#options' => $opt,
'#multiple' => TRUE,
'#required' => !empty($opt) ? TRUE : FALSE,
'#prefix' => '<div id="edit-block-term-wrapper-' . $delta . '" class="' . $hidden . '">',
'#suffix' => '</div>',
];
break;
case 'items_per_page':
$form['override']['items_per_page']['#weight'] = 10;
break;
}
}
$form['override']['#process'] = [
[
static::class,
'processFilterTags',
],
];
return $form;
}