logo

Extra Block Types (EBT) - Nieuwe Layout Builder ervaring❗

Extra Block Types (EBT) - gestileerde, aanpasbare bloktypes: Slideshows, Tabs, Cards, Accordions en vele andere. Ingebouwde instellingen voor achtergrond, DOM Box, javascript-plugins. Ervaar vandaag al de toekomst van layout building.

Demo EBT-modules Download EBT-modules

❗Extra Paragraph Types (EPT) - Nieuwe Paragraphs ervaring

Extra Paragraph Types (EPT) - analoge op paragrafen gebaseerde set modules.

Demo EPT-modules Download EPT-modules

Scroll

9.14.1. Een aangepaste Drupal Views filter handler uitbreiden

29/09/2025, by Ivan

In het vorige artikel hebben we gekeken hoe we Views-modules kunnen integreren met een aangepaste database voor de Did this help?-module:

https://www.drupal.org/project/did_this_help

In dit artikel zullen we de Views-filter overschrijven voor het Choice (ja/nee)-veld:

Ja/nee veld

Nu is het een gewoon tekstveld dat is aangemaakt door de "string"-handler, die het mogelijk maakt een zoekwaarde in te vullen. Maar we hebben slechts twee opties Ja/Nee, dus het zou beter zijn een keuzelijst (dropbox) te hebben in plaats van een tekstveld. Laten we een bestand aanmaken /did_this_help/src/Plugin/views/filter/DidThisHelp.php:

<?php

namespace Drupal\did_this_help\Plugin\views\filter;

use Drupal\views\Plugin\views\filter\InOperator;

/**
 * Filtert op de gegeven lijst met ja/nee-opties.
 *
 * @ingroup views_filter_handlers
 *
 * @ViewsFilter("did_this_help")
 */
class DidThisHelp extends InOperator {

}

We zullen de DidThisHelp-class laten erven van de bovenliggende InOperator-class, die een filter voorziet met selectiekeuzelijst, radioknoppen of selectievakjes, afhankelijk van de Views UI-instellingen. 

In de methode getValueOptions() voegen we een lijst met beschikbare opties toe:

  /**
   * {@inheritdoc}
   */
  public function getValueOptions() {
    if (isset($this->valueOptions)) {
      return $this->valueOptions;
    }

    $this->valueOptions = [
      'yes' => $this->t('Yes'),
      'no' => $this->t('No'),
    ];

    return $this->valueOptions;
  }

De property valueOptions is gedefinieerd in de bovenliggende class InOperator, dus we hoeven enkel de array met opties te definiëren.

Als resultaat hebben we dit filter gekregen:

Ja/Nee filter

Als we de exposed filter inschakelen, dan zien we deze keuzelijst:

Ja/Nee dropdown

Je kunt elke Filter-class overschrijven uit deze lijst met classes die door Views en andere modules worden aangeboden:

Naam Locatie Beschrijving
Access core/modules/node/src/Plugin/views/filter/Access.php Filter op node_access records.
BooleanOperator core/modules/views/src/Plugin/views/filter/BooleanOperator.php Eenvoudige filter om booleaanse waarden te verwerken.
BooleanOperatorString core/modules/views/src/Plugin/views/filter/BooleanOperatorString.php Eenvoudige filter om booleaanse waarden te verwerken.
Broken core/modules/views/src/Plugin/views/filter/Broken.php Een speciale handler ter vervanging van ontbrekende of kapotte handlers.
Bundle core/modules/views/src/Plugin/views/filter/Bundle.php Filter-class die filteren op entity-bundles toestaat.
Current core/modules/user/src/Plugin/views/filter/Current.php Filter-handler voor de huidige gebruiker.
Date core/modules/datetime/src/Plugin/views/filter/Date.php Datum/tijd Views-filter.
Date core/modules/views/src/Plugin/views/filter/Date.php Filter om datums opgeslagen als timestamp te verwerken.
Equality core/modules/views/src/Plugin/views/filter/Equality.php Eenvoudige filter voor gelijk aan/niet gelijk aan.
FilterBooleanOperatorDefaultTest core/modules/views/tests/modules/views_test_data/src/Plugin/views/filter/FilterBooleanOperatorDefaultTest.php Filter om queryOpBoolean() met de standaard operator te testen.
FilterPluginBase core/modules/views/src/Plugin/views/filter/FilterPluginBase.php Basisklasse voor Views-filter handlers.
GroupByNumeric core/modules/views/src/Plugin/views/filter/GroupByNumeric.php Eenvoudige filter voor groter dan/kleiner dan.
HistoryUserTimestamp core/modules/history/src/Plugin/views/filter/HistoryUserTimestamp.php Filter voor nieuwe content.
InOperator core/modules/views/src/Plugin/views/filter/InOperator.php Eenvoudige filter om meerdere opties te verwerken die via selectievakjes gekozen zijn.
LanguageFilter core/modules/views/src/Plugin/views/filter/LanguageFilter.php Voorziet filtering op taal.
LatestRevision core/modules/views/src/Plugin/views/filter/LatestRevision.php Filter om alleen de laatste revisie van een entity te tonen.
ListField core/modules/options/src/Plugin/views/filter/ListField.php Filter-handler die lijstvelden als opties gebruikt.
ManyToOne core/modules/views/src/Plugin/views/filter/ManyToOne.php Complexe filter voor many-to-one relaties, zoals termen (meerdere termen per node) of rollen (meerdere rollen per gebruiker).
ModerationStateFilter core/modules/content_moderation/src/Plugin/views/filter/ModerationStateFilter.php Voorziet een filter voor de moderatiestatus van een entity.
Name core/modules/user/src/Plugin/views/filter/Name.php Filter-handler voor gebruikersnamen.
NodeComment core/modules/comment/src/Plugin/views/filter/NodeComment.php Filter gebaseerd op de commentaarstatus van een node.
NumericFilter core/modules/views/src/Plugin/views/filter/NumericFilter.php Eenvoudige filter voor groter dan/kleiner dan.
Permissions core/modules/user/src/Plugin/views/filter/Permissions.php Filter-handler voor gebruikersrollen.
Roles core/modules/user/src/Plugin/views/filter/Roles.php Filter-handler voor gebruikersrollen.
Search core/modules/search/src/Plugin/views/filter/Search.php Filter-handler voor zoekwoorden.
Standard core/modules/views/src/Plugin/views/filter/Standard.php Standaardimplementatie van de basisfilter-plugin.
StatisticsLastUpdated core/modules/comment/src/Plugin/views/filter/StatisticsLastUpdated.php Filter-handler voor de meest recente update van een commentaar of node.
Status core/modules/file/src/Plugin/views/filter/Status.php Filter op bestandsstatus.
Status core/modules/node/src/Plugin/views/filter/Status.php Filter op publicatiestatus.
StringFilter core/modules/views/src/Plugin/views/filter/StringFilter.php Basis tekstveld-filter om string-vergelijkingen uit te voeren, zoals gelijk aan, like, not like, enz.
TaxonomyIndexTid core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTid.php Filter op term ID.
TaxonomyIndexTidDepth core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTidDepth.php Filter-handler voor taxonomietermen met diepte.
UidRevision core/modules/node/src/Plugin/views/filter/UidRevision.php Filter-handler om te controleren op revisies die door een bepaalde gebruiker zijn aangemaakt.
UserUid core/modules/comment/src/Plugin/views/filter/UserUid.php Filter-handler die een user ID accepteert om nodes te vinden waarop de gebruiker heeft gepost of gereageerd.
UserUid core/modules/tracker/src/Plugin/views/filter/UserUid.php UID-filter om te controleren op nodes waarop een gebruiker heeft gepost of gereageerd.
ViewsFilter core/modules/views/src/Annotation/ViewsFilter.php Definieert een Plugin-annotatieobject voor Views-filter handlers.