7
votes

Comment modifiez-vous les champs de sortie dans les flux RSS de Drupal

Essayer de modifier les flux RSS créés par le module Vues de Drupal.

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>

http://api.drupal.org/api/function/format_rss_item/6 < / a> semble prometteur comme c'est là que chaque ligne est créée, mais ce n'est pas

nœud_feed () est ce qui collecte les nœuds, crée les champs supplémentaires, puis appelle format_rss_item () . .

Spécifiquement, nous devons supprimer le dc: créateur de l'élément $ supplémentaire créé dans nœud_feed ()


2 commentaires

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.


4 Réponses :


0
votes

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.


1 commentaires

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.



0
votes

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 $ item_elements tableau.

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.


2 commentaires

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



2
votes

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);
}


0 commentaires

4
votes

Si vous entrez dans un type de contenu spécifique, vous pouvez définir les champs d'affichage RSS conformément à cet article:

http://redfinsolutions.com/ Redfin-Blog / Show-Hide-Field-Field-Field-Field-Vues - Drupal-RSS-Feed


0 commentaires