J'essaie d'obtenir un widget de sélection de champ de référence de taxonomie qui affiche une liste de termes de taxonomie, y compris des données supplémentaires de leurs champs. J'ai essayé d'utiliser la "Méthode de référence" = "Vues: filtrer par une vue de référence d'entité", puis de sélectionner une vue de référence d'entité que j'ai créée, puis dans ma vue de référence d'entité, j'ai fait ce qui suit:
Cependant, cela ne me donne que le nom du terme de taxonomie malgré les paramètres indiquant qu'il peut afficher tous les champs en ligne ("Remarque: dans les affichages" Référence d'entité ", tous les champs seront affichés en ligne sauf si une sélection explicite de champs en ligne est effectuée ici." ).
Tu ne peux pas pour le moment.
Voir \Drupal\views\Plugin\EntityReferenceSelection\ViewsSelection::getReferenceableEntities()
, il utilise simplement la vue pour obtenir les résultats et appelle ensuite $ entity-> label (). Ce qui signifie que vous n'avez aucun moyen de contourner cela.
Ce qui signifie que si vous le souhaitez, vous devez fournir votre propre plugin. Vous pouvez soit sous-classer à partir de ViewsSelection et toujours une vue, soit simplement étendre à partir de la valeur par défaut et remplacer cette méthode.
Cela pourrait également valoir la peine d'ouvrir une demande de fonctionnalité, j'ai déjà eu ce cas d'utilisation plusieurs fois, et une nouvelle case à cocher ou une option quelque part serait une manière agréable et rétrocompatible d'introduire cette fonctionnalité dans une version mineure.
Le module Entity Reference Views Select prend en charge des champs supplémentaires dans les listes de sélection et les cases à cocher lors de la sélection d'entités dans un champ de référence d'entité. Nous l'avons utilisé avec succès avec les entités ECK.
Il existe un correctif qui fonctionne: La sortie de vue n'est pas utilisée pour les options de référence d'entité
Il pourrait y avoir un moyen de contourner cela, mais il a également des restrictions comme indiqué dans ce problème déposé par moi: https://www.drupal.org/node/2841330#comment-1185435
En d'autres termes, écrivez votre propre gestionnaire d'affichage pour gérer le résultat d'un résultat de vue de référence d'entité.
Les développeurs webform_references l'ont fait, mais comme vous pouvez le voir dans mon numéro, ils délèguent également leur option de sélection de formulaire Web au résultat du rendu des vues. À mon avis (voir le deuxième commentaire), cela devrait être la responsabilité (ou le choix d'ailleurs) de celui qui demande la vue de référence de l'entité. En d'autres termes, utilisez la fonction views_get_view_result()
au lieu de $view->execute_display()
.
Dans Drupal 8, vous pouvez utiliser le module View Entity Reference Field Formatter pour utiliser le module views pour afficher les entités référencées.