class AutocompletionConfigurationListBuilder in Search Autocomplete 8
Same name and namespace in other branches
- 2.x src/Controller/AutocompletionConfigurationListBuilder.php \Drupal\search_autocomplete\Controller\AutocompletionConfigurationListBuilder
Provides a listing of autocompletion_configuration entities.
List Controllers provide a list of entities in a tabular form. The base class provides most of the rendering logic for us. The key functions we need to override are buildHeader() and buildRow(). These control what columns are displayed in the table, and how each row is displayed respectively.
Drupal locates the list controller by looking for the "list" entry under "controllers" in our entity type's annotation. We define the path on which the list may be accessed in our module's *.routing.yml file. The key entry to look for is "_entity_list". In *.routing.yml, "_entity_list" specifies an entity type ID. When a user navigates to the URL for that router item, Drupal loads the annotation for that entity type. It looks for the "list" entry under "controllers" for the class to load.
@package Drupal\search_autocomplete\Controller
Hierarchy
- class \Drupal\Core\Entity\EntityHandlerBase uses DependencySerializationTrait, StringTranslationTrait
- class \Drupal\Core\Entity\EntityListBuilder implements EntityHandlerInterface, EntityListBuilderInterface uses MessengerTrait, RedirectDestinationTrait
- class \Drupal\Core\Config\Entity\ConfigEntityListBuilder
- class \Drupal\search_autocomplete\Controller\AutocompletionConfigurationListBuilder implements FormInterface
- class \Drupal\Core\Config\Entity\ConfigEntityListBuilder
- class \Drupal\Core\Entity\EntityListBuilder implements EntityHandlerInterface, EntityListBuilderInterface uses MessengerTrait, RedirectDestinationTrait
Expanded class hierarchy of AutocompletionConfigurationListBuilder
File
- src/
Controller/ AutocompletionConfigurationListBuilder.php, line 32
Namespace
Drupal\search_autocomplete\ControllerView source
class AutocompletionConfigurationListBuilder extends ConfigEntityListBuilder implements FormInterface {
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'search_autocomplete_admin_form';
}
/**
* Implements \Drupal\Core\Form\FormInterface::buildForm().
*
* Form constructor for the main block administration form.
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$settings = Drupal::config('search_autocomplete.settings');
// Define the table of configurations.
$form['configs'] = [
'#type' => 'table',
'#header' => [
$this
->t('Autocompletion Configuration Name'),
$this
->t('Enabled'),
$this
->t('Selector'),
$this
->t('Operations'),
],
];
// Retrieve existing configurations.
$entity_ids = $this
->getEntityIds();
$entities = $this->storage
->loadMultiple($entity_ids);
// Build blocks first for each region.
$configs = [];
foreach ($entities as $entity_id => $entity) {
$editable = $entity
->getEditable() ? 'editable' : '';
$deletable = $entity
->getEditable() ? 'deletable' : '';
$form['configs'][$entity_id]['#attributes'] = [
'id' => [
$entity_id,
],
'class' => [
$editable,
$deletable,
],
];
$form['configs'][$entity_id]['label'] = [
'#markup' => new HtmlEscapedText($entity
->label()),
];
$form['configs'][$entity_id]['enabled'] = [
'#type' => 'checkbox',
'#default_value' => $entity
->getStatus(),
];
$form['configs'][$entity_id]['selector'] = [
'#markup' => new HtmlEscapedText($entity
->getSelector()),
];
$form['configs'][$entity_id]['operations'] = $this
->buildOperations($entity);
}
// Use admin helper tool option settings.
$form['admin_helper'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Use autocompletion helper tool for Search Autocomplete administrators.'),
'#description' => $this
->t('If enabled, user with "administer Search Autocomplete" permission will be able to use admin helper tool on input fields (recommended).'),
'#default_value' => $settings
->get('admin_helper'),
];
$form['actions']['submit'] = [
'#type' => 'submit',
'#value' => $this
->t('Save changes'),
'#button_type' => 'primary',
];
return $form;
}
/**
* Implements \Drupal\Core\Form\FormInterface::validateForm().
*/
public function validateForm(array &$form, FormStateInterface $form_state) {
// No validation.
}
/**
* Implements \Drupal\Core\Form\FormInterface::submitForm().
*
* Form submission handler for the main block administration form.
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$values = $form_state
->getValues();
// Save global configurations.
Drupal::configFactory()
->getEditable('search_autocomplete.settings')
->set('admin_helper', $values['admin_helper'])
->save();
// Save all configuration activations.
$entities = $this->storage
->loadMultiple(array_keys($form_state
->getValue('configs')));
foreach ($entities as $entity_id => $entity) {
$entity_values = $form_state
->getValue([
'configs',
$entity_id,
]);
$entity
->setStatus($entity_values['enabled']);
$entity
->save();
}
drupal_set_message($this
->t('Data have been saved.'));
}
/**
* Adds some descriptive text to our entity list.
*
* Typically, there's no need to override render(). You may wish to do so,
* however, if you want to add markup before or after the table.
*
* @return array
* Renderable array.
*/
public function render() {
return Drupal::formBuilder()
->getForm($this);
}
/**
* {@inheritdoc}
*/
protected function getEditableConfigNames() {
return [
'search_autocomplete.settings',
];
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AutocompletionConfigurationListBuilder:: |
public | function |
Implements \Drupal\Core\Form\FormInterface::buildForm(). Overrides FormInterface:: |
|
AutocompletionConfigurationListBuilder:: |
protected | function | ||
AutocompletionConfigurationListBuilder:: |
public | function |
Returns a unique string identifying the form. Overrides FormInterface:: |
|
AutocompletionConfigurationListBuilder:: |
public | function |
Adds some descriptive text to our entity list. Overrides EntityListBuilder:: |
|
AutocompletionConfigurationListBuilder:: |
public | function |
Implements \Drupal\Core\Form\FormInterface::submitForm(). Overrides FormInterface:: |
|
AutocompletionConfigurationListBuilder:: |
public | function |
Implements \Drupal\Core\Form\FormInterface::validateForm(). Overrides FormInterface:: |
|
ConfigEntityListBuilder:: |
public | function |
Gets this list's default operations. Overrides EntityListBuilder:: |
15 |
ConfigEntityListBuilder:: |
public | function |
Loads entities of this type from storage for listing. Overrides EntityListBuilder:: |
7 |
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
EntityHandlerBase:: |
protected | property | The module handler to invoke hooks on. | 2 |
EntityHandlerBase:: |
protected | function | Gets the module handler. | 2 |
EntityHandlerBase:: |
public | function | Sets the module handler for this handler. | |
EntityListBuilder:: |
protected | property | Information about the entity type. | |
EntityListBuilder:: |
protected | property | The entity type ID. | |
EntityListBuilder:: |
protected | property | The number of entities to list per page, or FALSE to list all entities. | 3 |
EntityListBuilder:: |
protected | property | The entity storage class. | 1 |
EntityListBuilder:: |
public | function | Builds the header row for the entity listing. | 26 |
EntityListBuilder:: |
public | function | Builds a renderable list of operation links for the entity. | 2 |
EntityListBuilder:: |
public | function | Builds a row for an entity in the entity listing. | 26 |
EntityListBuilder:: |
public static | function |
Instantiates a new instance of this entity handler. Overrides EntityHandlerInterface:: |
20 |
EntityListBuilder:: |
protected | function | Ensures that a destination is present on the given URL. | |
EntityListBuilder:: |
protected | function | Loads entity IDs using a pager sorted by the entity id. | 4 |
EntityListBuilder:: |
protected | function | Gets the label of an entity. | |
EntityListBuilder:: |
public | function |
Provides an array of information to build a list of operation links. Overrides EntityListBuilderInterface:: |
2 |
EntityListBuilder:: |
public | function |
Gets the entity storage. Overrides EntityListBuilderInterface:: |
|
EntityListBuilder:: |
protected | function | Gets the title of the page. | 1 |
EntityListBuilder:: |
public | function | Constructs a new EntityListBuilder object. | 16 |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |