logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll

9.14.1. Proširenje prilagođenog filter handlera u Drupal Views

25/05/2025, by Ivan

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):

Da/ne polje

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:

Da/Ne filter

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

Da/Ne padajuća lista

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.