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?
Voici donc ce que j'ai finalement trouvé.
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.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;)
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.
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,