9.14.1. Proširenje prilagođenog filter handlera u Drupal Views
U prethodnom članku smo pogledali kako integrisati Views modul sa prilagođenom bazom podataka za modul Did this help?:
https://www.drupal.org/project/did_this_help
U ovom članku ćemo prebrisati Views filter za polje Choice (da/ne):

Sada je to običan tekstualni unos koji kreira "string" handler, koji dozvoljava unos pretraživačkog ključa. Ali mi imamo samo dve opcije Da/Ne, pa bi bilo bolje imati padajuću listu umesto tekstualnog polja. Kreiraćemo fajl /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;
/**
 * Filter koji omogućava izbor između opcija da/ne.
 *
 * @ingroup views_filter_handlers
 *
 * @ViewsFilter("did_this_help")
 */
class DidThisHelp extends InOperator {
}
Nasleđujemo klasu DidThisHelp od roditeljske klase InOperator, koja omogućava filter sa selektom, radio dugmadima ili checkbox-ovima u zavisnosti od podešavanja u Views UI.
U metodi getValueOptions() ćemo dodati listu dostupnih opcija:
  /**
   * {@inheritdoc}
   */
  public function getValueOptions() {
    if (isset($this->valueOptions)) {
      return $this->valueOptions;
    }
    $this->valueOptions = [
      'yes' => $this->t('Yes'),
      'no' => $this->t('No'),
    ];
    return $this->valueOptions;
  }
Svojstvo valueOptions je definisano u roditeljskoj klasi InOperator, tako da ovde samo definišemo niz opcija.
Kao rezultat dobijamo ovaj filter:

Ako omogućimo izloženi filter, videćemo ovu padajuću listu:

Možete prebrisati bilo koju filter klasu sa ove liste klasa koje pružaju Views i drugi moduli:
| Ime | Lokacija | Opis | 
|---|---|---|
| Access | core/modules/node/src/Plugin/views/filter/Access.php | Filter po node_access zapisima. | 
| BooleanOperator | core/modules/views/src/Plugin/views/filter/BooleanOperator.php | Jednostavan filter za poklapanje boolean vrednosti. | 
| BooleanOperatorString | core/modules/views/src/Plugin/views/filter/BooleanOperatorString.php | Jednostavan filter za poklapanje boolean vrednosti. | 
| Broken | core/modules/views/src/Plugin/views/filter/Broken.php | Poseban handler za nedostajuće ili oštećene handler-e. | 
| Bundle | core/modules/views/src/Plugin/views/filter/Bundle.php | Filter za entitetske bundle-ove. | 
| Current | core/modules/user/src/Plugin/views/filter/Current.php | Filter za trenutnog korisnika. | 
| Date | core/modules/datetime/src/Plugin/views/filter/Date.php | Filter za datum/vreme. | 
| Date | core/modules/views/src/Plugin/views/filter/Date.php | Filter za datume sačuvane kao timestamp. | 
| Equality | core/modules/views/src/Plugin/views/filter/Equality.php | Jednostavan filter za poređenje jednakosti ili nejednakosti. | 
| FilterBooleanOperatorDefaultTest | core/modules/views/tests/modules/views_test_data/src/Plugin/views/filter/FilterBooleanOperatorDefaultTest.php | Filter za testiranje queryOpBoolean() sa podrazumevanim operatorom. | 
| FilterPluginBase | core/modules/views/src/Plugin/views/filter/FilterPluginBase.php | Osnovna klasa za Views filtere. | 
| GroupByNumeric | core/modules/views/src/Plugin/views/filter/GroupByNumeric.php | Filter za poređenje veće/manje vrednosti. | 
| HistoryUserTimestamp | core/modules/history/src/Plugin/views/filter/HistoryUserTimestamp.php | Filter za novi sadržaj. | 
| InOperator | core/modules/views/src/Plugin/views/filter/InOperator.php | Filter za odabir više opcija pomoću checkbox-ova. | 
| LanguageFilter | core/modules/views/src/Plugin/views/filter/LanguageFilter.php | Filter za jezik. | 
| LatestRevision | core/modules/views/src/Plugin/views/filter/LatestRevision.php | Filter za prikaz samo najnovije revizije entiteta. | 
| ListField | core/modules/options/src/Plugin/views/filter/ListField.php | Filter koji koristi list fields kao opcije. | 
| ManyToOne | core/modules/views/src/Plugin/views/filter/ManyToOne.php | Složen filter za odnose "više prema jedan", kao što su termini ili uloge. | 
| ModerationStateFilter | core/modules/content_moderation/src/Plugin/views/filter/ModerationStateFilter.php | Filter za stanje moderacije entiteta. | 
| Name | core/modules/user/src/Plugin/views/filter/Name.php | Filter za korisnička imena. | 
| NodeComment | core/modules/comment/src/Plugin/views/filter/NodeComment.php | Filter po statusu komentara na node. | 
| NumericFilter | core/modules/views/src/Plugin/views/filter/NumericFilter.php | Filter za poređenje veće/manje vrednosti. | 
| Permissions | core/modules/user/src/Plugin/views/filter/Permissions.php | Filter za korisničke uloge. | 
| Roles | core/modules/user/src/Plugin/views/filter/Roles.php | Filter za korisničke uloge. | 
| Search | core/modules/search/src/Plugin/views/filter/Search.php | Filter za pretraživačke ključne reči. | 
| Standard | core/modules/views/src/Plugin/views/filter/Standard.php | Podrazumevana implementacija osnovnog filter plugina. | 
| StatisticsLastUpdated | core/modules/comment/src/Plugin/views/filter/StatisticsLastUpdated.php | Filter za novije od poslednjeg komentara ili ažuriranja node-a. | 
| Status | core/modules/file/src/Plugin/views/filter/Status.php | Filter po statusu fajla. | 
| Status | core/modules/node/src/Plugin/views/filter/Status.php | Filter po statusu objavljivanja. | 
| StringFilter | core/modules/views/src/Plugin/views/filter/StringFilter.php | Osnovni tekstualni filter za rukovanje komandom filtriranja stringova uključujući jednakost, like, not like itd. | 
| TaxonomyIndexTid | core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTid.php | Filter po term ID-ju. | 
| TaxonomyIndexTidDepth | core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTidDepth.php | Filter za taksonomijske termine sa dubinom. | 
| UidRevision | core/modules/node/src/Plugin/views/filter/UidRevision.php | Filter za proveru revizija koje je kreirao određeni korisnik. | 
| UserUid | core/modules/comment/src/Plugin/views/filter/UserUid.php | Filter koji prihvata korisnički ID za proveru node-a koje je korisnik kreirao ili komentarisao. | 
| UserUid | core/modules/tracker/src/Plugin/views/filter/UserUid.php | Filter za korisnički ID za proveru node-a koje je korisnik kreirao ili komentarisao. | 
| ViewsFilter | core/modules/views/src/Annotation/ViewsFilter.php | Definiše anotaciju za plugin filter handlere u Views. |