AdvancedSettingsForm.php
Same filename in other branches
Namespace
Drupal\views_ui\FormFile
-
core/
modules/ views_ui/ src/ Form/ AdvancedSettingsForm.php
View source
<?php
namespace Drupal\views_ui\Form;
use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Views;
/**
* Form builder for the advanced admin settings page.
*
* @internal
*/
class AdvancedSettingsForm extends ConfigFormBase {
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'views_ui_admin_settings_advanced';
}
/**
* {@inheritdoc}
*/
protected function getEditableConfigNames() {
return [
'views.settings',
];
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$form = parent::buildForm($form, $form_state);
$config = $this->config('views.settings');
$form['cache'] = [
'#type' => 'details',
'#title' => $this->t('Caching'),
'#open' => TRUE,
];
$form['cache']['clear_cache'] = [
'#type' => 'submit',
'#value' => $this->t("Clear Views' cache"),
'#submit' => [
'::cacheSubmit',
],
];
$form['debug'] = [
'#type' => 'details',
'#title' => $this->t('Debugging'),
'#open' => TRUE,
];
$form['debug']['sql_signature'] = [
'#type' => 'checkbox',
'#title' => $this->t('Add Views signature to all SQL queries'),
'#description' => $this->t("All Views-generated queries will include the name of the views and display 'view-name:display-name' as a string at the end of the SELECT clause. This makes identifying Views queries in database server logs simpler, but should only be used when troubleshooting."),
'#default_value' => $config->get('sql_signature'),
];
$options = Views::fetchPluginNames('display_extender');
if (!empty($options)) {
$form['extenders'] = [
'#type' => 'details',
'#title' => $this->t('Display extenders'),
'#open' => TRUE,
];
$form['extenders']['display_extenders'] = [
'#default_value' => array_filter($config->get('display_extenders')),
'#options' => $options,
'#type' => 'checkboxes',
'#description' => $this->t('Select extensions of the views interface.'),
];
}
return $form;
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$this->config('views.settings')
->set('sql_signature', $form_state->getValue('sql_signature'))
->set('display_extenders', $form_state->getValue('display_extenders', []))
->save();
parent::submitForm($form, $form_state);
}
/**
* Submission handler to clear the Views cache.
*/
public function cacheSubmit() {
views_invalidate_cache();
$this->messenger()
->addStatus($this->t('The cache has been cleared.'));
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
AdvancedSettingsForm | Form builder for the advanced admin settings page. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.