Essayer de modifier les flux RSS créés par le module Vues de Drupal. p>
car il n'y a pas de crochets «Theme_» pour les flux RSS (à juste titre que XML est sans thème), j'ai besoin d'un moyen suppléant de modifier les champs de sortie dans le RSS, de préférence à l'aide de template.php si possible. < / p>
4 Réponses :
Je suggérerais d'utiliser le Vues NODE Feed Feed Module pour le faire. Cela vous permettra de rédiger complètement le XML qui est émis par des vues pour les flux. P>
Ce travail sans travail, mais le module est toujours en développement pour Drupal 6 et ne met pas complètement en œuvre l'interface de la classe View_Plugin_style, donnant des erreurs.
Dans la vue, si vous cliquez sur "Informations de style", cela vous indiquera les fichiers de modèle utilisés pour créer le flux. Vous pouvez copier le modèle de manière à ce qu'il soit remplacé à votre vue et supprimer DC: Creator à partir du Ce n'est pas particulièrement agréable que vous modifiez des données dans la couche de thème, mais cela fera ce que vous voulez. P> $ item_elements code> tableau. p>
Cela aurait aussi travaillé, mais nous avons fini par utiliser envisager de styler le type de contenu qui se trouvait dans les aliments. Je pense que c'est la meilleure solution pour le moment, car vous pouvez affecter les flux RSS exacts dont vous avez besoin, tous ou l'un d'entre eux.
$ item_éléments n'est pas un tableau, vous êtes arrivé à ereg_replace Voir Ce
J'ajoute une autre réponse, car je devais récemment faire cela et réussi à le faire sans modifier des données dans la couche de thème.
Vous pouvez ajouter une fonction de pré-preppress à votre vue. C'est un peu de travail cependant. P>
Il y a des Guidelines ici , mais ils sont un peu déroutants. Voici mon résumé de la façon de faire cela. P>
D'abord Assurez-vous que vos modules sont> Vues P>
Copiez le modèle que vous souhaitez ajouter un pré-processus à votre répertoire de modules. Renommez-le pour être quelque chose dans la liste des modèles d'informations sur la thème. P>
puis modifier le thème de crochet comme celui-ci (mais changez pour utiliser la vue existante dont vous avez besoin pour remplacer. P>
function mymodule_theme($existing, $type, $theme, $path) { // Copy the exsisting views theme from the existing array. $override = $existing['views_view_row_rss']; // Add my preprocessor to the list of preprocess functions $override['preprocess functions'][] = 'mymodule_myfunction'; // Point to a template so that this view will be used. $override['template'] = 'my_more_specific_template_name'; $override['path'] = drupal_get_path('module', 'path'); unset($override['file']); // Return your theme handler. return array('my_more_specific_template_name' => $override); }
Si vous entrez dans un type de contenu spécifique, vous pouvez définir les champs d'affichage RSS conformément à cet article: P>
http://redfinsolutions.com/ Redfin-Blog / Show-Hide-Field-Field-Field-Field-Vues - Drupal-RSS-Feed P>
J'ai trouvé ce lien timtoon.com/2009/05/27/... qui mentionne comment modifier la sortie, mais il semble être très inefficace car il fait une requête de DB supplémentaire pour chaque nœud le flux.
En regardant la liaison Timtoon, elle nécessite de créer une vue de page (au lieu de la vue RSS) qui n'est pas faisable pour le moment.