J'ai un type de contenu "Audio" qui comprend un champ de fichier audio. Ce champ accepte plusieurs valeurs, donc chaque nœud peut contenir n'importe quel nombre de fichiers audio. Habituellement, lorsque vous créez une vue de flux RSS, elle génère un <item>
par nœud, et chacun d'eux aura plusieurs entrées <enclosure>
, une par fichier audio. Mais pour mes besoins, j'ai besoin de l'affichage pour sortir un <item>
séparé pour chacune des valeurs de fichier audio. Donc, si, par exemple, il y a 3 fichiers audio dans un nœud sélectionné, le nœud entier sera répété dans le flux 3 fois, et chacun contiendra une seule enceinte de fichiers audio.Drupal 7: Faire un flux RSS avec plusieurs <item> s par nœud?
La raison en est que dans mon cas spécifique, j'utilise hook_node_view()
dans un module personnalisé pour ajouter des balises MRSS à chacun des nœuds générés par la vue. Donc, plutôt que les fichiers audio enveloppés par <enclosure>
, ils seront enveloppés dans <media:content>
tags. Conformément à la spécification MRSS, vous ne devez pas avoir plus d'une entrée <media:content>
par <item>
à moins qu'ils ne représentent le même contenu. C'est parce que les autres étiquettes comme <title>
et <description>
appartiennent à tous les tags <media:content>
dans le même <item>
. Ironiquement, le hook de personnalisation est la partie la plus facile, mais je dois d'abord obtenir la vue pour sortir les nœuds de la manière que j'ai décrite.
Alors est-il possible d'utiliser la nouvelle fonctionnalité de regroupement de vues Drupal 7 ou une autre méthode pour générer la sortie que je recherche? J'aimerais connaître le truc! Sinon, je vais devoir utiliser une entrée de menu personnalisée et perdre tous les avantages (tels que la mise en cache automatique et la possibilité de travailler dans l'interface utilisateur de Views) que j'obtiens avec Views.
Merci, ça m'a permis d'être sur la bonne voie. Au cours du week-end, j'ai commencé à écrire un module views_mrss basé sur views_rss implémentant "MRSS - Fields" et c'est ainsi que je n'ai pas besoin d'utiliser de modèles de vues. Je vais le publier une fois que c'est à la hauteur. –
Même si une vue _File_ est correcte dans certains cas, et répond presque à ma question, elle échoue à un point important: Bien que vous puissiez ajouter une relation "Contenu du fichier" pour obtenir le contenu associé au fichier, vous pouvez t utilisez alors le champ "Contenu: Audio" ou (dans mon cas, "Contenu: Vidéo") car cela renvoie _all_ les valeurs audio/vidéo associées au contenu. Et malheureusement, l'élément "File: fid" est trop général pour dériver la vignette de la vidéo. Mais une vue _Content_ avec un affichage _Fields_ fournit des éléments multimédias complets que je peux utiliser. –
dans le cas où vous souhaitez filtrer en fonction du type de contenu de la jointure: Si le filtre de vues "Contenu: Type" n'est pas disponible dans l'interface, consultez hook_views_query_alter() et vérifiez si vous pouvez modifier la partie de jointure de la requête mysql. Cela devient assez avancé dans les instructions mysql. Quelqu'un a sonné? - Joe –