logo

Types de blocs supplémentaires (EBT) – Nouvelle expérience de Layout Builder❗

Types de blocs supplémentaires (EBT) – types de blocs stylisés et personnalisables : diaporamas, onglets, cartes, accordéons et bien d’autres. Paramètres intégrés pour l’arrière-plan, la boîte DOM, les plugins JavaScript. Découvrez dès aujourd’hui le futur de la création de mises en page.

Démo des modules EBT Télécharger les modules EBT

❗Types de paragraphes supplémentaires (EPT) – Nouvelle expérience Paragraphes

Types de paragraphes supplémentaires (EPT) – ensemble de modules basé sur les paragraphes analogiques.

Démo des modules EPT Télécharger les modules EPT

Défilement

9.14.1. Étendre un gestionnaire de filtre Views personnalisé dans Drupal

04/07/2025, by Ivan

Menu

Dans l’article précédent, nous avons vu comment intégrer le module Views avec une base de données personnalisée pour le module Did this help? :

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

Dans cet article, nous allons surcharger le filtre Views pour un champ Choice (oui/non) :

Champ Oui/Non

Actuellement, c’est un champ texte classique créé par le gestionnaire "string", qui permet d’ajouter une clé de recherche. Mais comme nous avons seulement deux options Oui/Non, il serait préférable d’avoir une liste déroulante plutôt qu’un champ texte. Créons donc un fichier /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;

/**
 * Filtre par liste donnée d’options oui/non.
 *
 * @ingroup views_filter_handlers
 *
 * @ViewsFilter("did_this_help")
 */
class DidThisHelp extends InOperator {

}

Nous héritons la classe DidThisHelp de la classe parente InOperator, qui fournit un filtre avec une liste déroulante, boutons radio ou cases à cocher selon les réglages de l’interface Views.

Dans la méthode getValueOptions(), nous allons ajouter la liste des options disponibles :

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

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

    return $this->valueOptions;
  }

La propriété valueOptions est définie dans la classe parente InOperator, nous avons donc seulement besoin de définir le tableau des options.

Dans le résultat, nous obtenons ce filtre :

Filtre Oui/Non

Si nous activons le filtre exposé, nous voyons cette liste déroulante :

Liste déroulante Oui/Non

Vous pouvez surcharger n’importe quelle classe de filtre dans cette liste des classes fournies par Views et d’autres modules :

Nom Emplacement Description
Access core/modules/node/src/Plugin/views/filter/Access.php Filtrer par les enregistrements node_access.
BooleanOperator core/modules/views/src/Plugin/views/filter/BooleanOperator.php Filtre simple pour gérer les valeurs booléennes.
BooleanOperatorString core/modules/views/src/Plugin/views/filter/BooleanOperatorString.php Filtre simple pour gérer les valeurs booléennes.
Broken core/modules/views/src/Plugin/views/filter/Broken.php Gestionnaire spécial pour remplacer les gestionnaires manquants ou cassés.
Bundle core/modules/views/src/Plugin/views/filter/Bundle.php Classe de filtre permettant de filtrer par bundles d’entités.
Current core/modules/user/src/Plugin/views/filter/Current.php Gestionnaire de filtre pour l’utilisateur courant.
Date core/modules/datetime/src/Plugin/views/filter/Date.php Filtre de date/heure pour Views.
Date core/modules/views/src/Plugin/views/filter/Date.php Filtre pour gérer les dates stockées en timestamp.
Equality core/modules/views/src/Plugin/views/filter/Equality.php Filtre simple pour gérer les filtres égal / différent.
FilterBooleanOperatorDefaultTest core/modules/views/tests/modules/views_test_data/src/Plugin/views/filter/FilterBooleanOperatorDefaultTest.php Filtre pour tester queryOpBoolean() avec opérateur par défaut.
FilterPluginBase core/modules/views/src/Plugin/views/filter/FilterPluginBase.php Classe de base pour les plugins gestionnaires de filtre Views.
GroupByNumeric core/modules/views/src/Plugin/views/filter/GroupByNumeric.php Filtre simple pour gérer les filtres supérieurs/inférieurs.
HistoryUserTimestamp core/modules/history/src/Plugin/views/filter/HistoryUserTimestamp.php Filtre pour le contenu récent.
InOperator core/modules/views/src/Plugin/views/filter/InOperator.php Filtre simple pour gérer la correspondance de multiples options sélectionnables via cases à cocher.
LanguageFilter core/modules/views/src/Plugin/views/filter/LanguageFilter.php Fournit un filtrage par langue.
LatestRevision core/modules/views/src/Plugin/views/filter/LatestRevision.php Filtre pour afficher uniquement la dernière révision d’une entité.
ListField core/modules/options/src/Plugin/views/filter/ListField.php Gestionnaire de filtre utilisant des champs listes comme options.
ManyToOne core/modules/views/src/Plugin/views/filter/ManyToOne.php Filtre complexe pour gérer les relations plusieurs-à-un, comme les termes (plusieurs termes par nœud) ou les rôles (plusieurs rôles par utilisateur).
ModerationStateFilter core/modules/content_moderation/src/Plugin/views/filter/ModerationStateFilter.php Fournit un filtre pour l’état de modération d’une entité.
Name core/modules/user/src/Plugin/views/filter/Name.php Gestionnaire de filtre pour les noms d’utilisateur.
NodeComment core/modules/comment/src/Plugin/views/filter/NodeComment.php Filtre basé sur le statut des commentaires de nœud.
NumericFilter core/modules/views/src/Plugin/views/filter/NumericFilter.php Filtre simple pour gérer les filtres supérieurs/inférieurs.
Permissions core/modules/user/src/Plugin/views/filter/Permissions.php Gestionnaire de filtre pour les rôles utilisateurs.
Roles core/modules/user/src/Plugin/views/filter/Roles.php Gestionnaire de filtre pour les rôles utilisateurs.
Search core/modules/search/src/Plugin/views/filter/Search.php Gestionnaire de filtre pour les mots-clés de recherche.
Standard core/modules/views/src/Plugin/views/filter/Standard.php Implémentation par défaut du plugin de filtre de base.
StatisticsLastUpdated core/modules/comment/src/Plugin/views/filter/StatisticsLastUpdated.php Gestionnaire de filtre pour la date de la dernière mise à jour des commentaires ou nœuds.
Status core/modules/file/src/Plugin/views/filter/Status.php Filtre par statut de fichier.
Status core/modules/node/src/Plugin/views/filter/Status.php Filtre par statut publié.
StringFilter core/modules/views/src/Plugin/views/filter/StringFilter.php Filtre texte de base pour gérer les commandes de filtrage de chaînes, y compris égalité, similaire, non similaire, etc.
TaxonomyIndexTid core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTid.php Filtre par ID de terme.
TaxonomyIndexTidDepth core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTidDepth.php Gestionnaire de filtre pour les termes taxonomiques avec profondeur.
UidRevision core/modules/node/src/Plugin/views/filter/UidRevision.php Filtre pour vérifier les révisions créées par un certain utilisateur.
UserUid core/modules/comment/src/Plugin/views/filter/UserUid.php Filtre acceptant un ID utilisateur pour vérifier les nœuds qu’il a postés ou commentés.
UserUid core/modules/tracker/src/Plugin/views/filter/UserUid.php Filtre UID pour vérifier les nœuds qu’un utilisateur a postés ou commentés.
ViewsFilter core/modules/views/src/Annotation/ViewsFilter.php Définit une annotation plugin pour les gestionnaires de filtre Views.