function ViewsBlockBase::buildConfigurationForm
Same name in other branches
- 9 core/modules/views/src/Plugin/Block/ViewsBlockBase.php \Drupal\views\Plugin\Block\ViewsBlockBase::buildConfigurationForm()
- 8.9.x core/modules/views/src/Plugin/Block/ViewsBlockBase.php \Drupal\views\Plugin\Block\ViewsBlockBase::buildConfigurationForm()
- 10 core/modules/views/src/Plugin/Block/ViewsBlockBase.php \Drupal\views\Plugin\Block\ViewsBlockBase::buildConfigurationForm()
Overrides BlockBase::buildConfigurationForm
File
-
core/
modules/ views/ src/ Plugin/ Block/ ViewsBlockBase.php, line 124
Class
- ViewsBlockBase
- Base class for Views block plugins.
Namespace
Drupal\views\Plugin\BlockCode
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$form = parent::buildConfigurationForm($form, $form_state);
// Set the default label to '' so the views internal title is used.
$form['label']['#default_value'] = '';
$form['label']['#access'] = FALSE;
// Unset the machine_name provided by BlockForm.
unset($form['id']['#machine_name']['source']);
// Prevent users from changing the auto-generated block machine_name.
$form['id']['#access'] = FALSE;
$form['#pre_render'][] = '\\Drupal\\views\\Plugin\\views\\PluginBase::preRenderAddFieldsetMarkup';
// Allow to override the label on the actual page.
$form['views_label_checkbox'] = [
'#type' => 'checkbox',
'#title' => $this->t('Override title'),
'#default_value' => !empty($this->configuration['views_label']),
];
$form['views_label_fieldset'] = [
'#type' => 'fieldset',
'#states' => [
'visible' => [
[
':input[name="settings[views_label_checkbox]"]' => [
'checked' => TRUE,
],
],
],
],
];
$form['views_label'] = [
'#title' => $this->t('Title'),
'#type' => 'textfield',
'#default_value' => $this->configuration['views_label'] ?: $this->view
->getTitle(),
'#states' => [
'visible' => [
[
':input[name="settings[views_label_checkbox]"]' => [
'checked' => TRUE,
],
],
],
],
'#fieldset' => 'views_label_fieldset',
];
if ($this->view->storage
->access('edit') && \Drupal::moduleHandler()->moduleExists('views_ui')) {
$form['views_label']['#description'] = $this->t('Changing the title here means it cannot be dynamically altered anymore. (Try changing it directly in <a href=":url">@name</a>.)', [
':url' => Url::fromRoute('entity.view.edit_display_form', [
'view' => $this->view->storage
->id(),
'display_id' => $this->displayID,
])
->toString(),
'@name' => $this->view->storage
->label(),
]);
}
else {
$form['views_label']['#description'] = $this->t('Changing the title here means it cannot be dynamically altered anymore.');
}
return $form;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.