web-dev-qa-db-fra.com

Comment utiliser le jeton comme valeur de filtre dans les vues

Je recherche une solution qui me permettrait d'utiliser des jetons dans les valeurs de filtre des vues. Par exemple, si j'ai le champ de texte "my_custom_text", j'aimerais avoir un filtre qui me permettrait d'utiliser l'opérateur "Est égal à" et une valeur de jeton au lieu d'une chaîne codée en dur.

Notez que je ne peux pas utiliser de filtres contextuels car j'ai peu de filtres qui doivent être OR.

Existe-t-il un module pour cela, ou dois-je le coder moi-même à partir de zéro?

5
SiliconMind

Voici donc ce que j'ai finalement trouvé.

  1. Je ne voulais pas utiliser global php filter car il limite uniquement les résultats déjà chargés à partir de la base de données. Dans mon cas, cela signifierait charger 1000 lignes juste pour en afficher 2. Pas trop sage, je dirais.
  2. Je ne voulais pas utiliser hook_views_query_alter car cela signifierait que je devrais fouiller dans le code chaque fois que quelqu'un veut changer ou créer une vue.

J'ai fini par écrire mon propre gestionnaire de vues qui étend l'une des sorties. J'ai également utilisé hook_field_views_data_alter pour brancher mon gestionnaire au lieu de défaut.

Cette solution fonctionne plutôt bien. Le gestionnaire personnalisé est une solution très robuste et assez simple à implémenter ... une fois que vous savez comment le faire;)

0
SiliconMind

Utilisez des filtres contextuels au lieu de critères de filtre.

Dans Drupal 8, au moment d'écrire ces lignes, vous devez également installer le module views_argument_token .

Lors de l'ajout d'un filtre contextuel, dans la fenêtre contextuelle, sélectionnez l'option "Fournir la valeur par défaut". À partir de là, les paramètres restants doivent être intuitifs.

1
Francisco Luz

Vous pouvez utiliser hook_views_query_alter pour faire votre travail,

implémentez ce hook dans votre module personnalisé et avec l'instruction if, limitez-vous au nom de votre vue et modifiez la requête de vues,

0
Yusef