Flux RSS d'un tag ?

Bonjour à tous,

Je cherche à faire adhérer mon blog http://www.jeoffrey54.com au planète libre : http://www.planet-libre.org/inscription.php.

L'ennui, c'est qu'il me faut l'adresse de mon RSS pour le tag "planet-libre". J'ai bien l'adresse de mon flux RSS, mais est-il possible d'obtenir un flux RSS uniquement pour un certain tag ?

Bonne journée,

Jeoffrey

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour
    il n'y a rien de prevu pour dans PluXml
    Je note cette demande pour la prochaine version

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Arf dommage :S.

    Une estimation possible à me donner (jours, semaines, mois) ? Car j'aurais aimé postuler pour le planet-libre assez rapidement :).
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour

    Pour ne pas te faire attendre jusqu'à la prochaine sortie de PluXml.
    Voici les modifications toutes fraiches codées ce matin pour avoir le flux rss d'un tag.
    Bon y a quelques manips à faire, j'espere ne rien avoir oublié en copiant tout ici.


    fichier lib/lang/fr/core.php

    après la ligne:
    $LANG = array(
    

    ajouter:
    'L_ARTFEED_RSS_TAG'				=> 'Fil Rss des articles ce tag',
    

    fichier core/lib/class.plx.show.php

    ajouter le code suivant (avant ?> à la fin du fichier)
    	/**
    	 * Méthode qui affiche un lien vers le fil Rss des articles d'un tag
    	 *
    	 * @param	type		type de flux (obsolete)
    	 * @param	tag			nom du tag
    	 * @return	stdout
    	 * @scope	home,categorie,article,tags,archives
    	 * @author	Stephane F
    	 **/
    
    	public function tagFeed($type='rss', $tag='') {
    
    		# Hook Plugins
    		if(eval($this->plxMotor->plxPlugins->callHook('plxShowTagFeed'))) return;
    
    		if($tag=='' AND $this->plxMotor->mode == 'tags')
    			$tag = $this->plxMotor->cible;
    
    		echo '<a href="'.$this->plxMotor->urlRewrite('feed.php?rss/tag/'.plxUtils::strCheck($tag)).'" title="'.L_ARTFEED_RSS_TAG.'">'.L_ARTFEED_RSS_TAG.'</a>';
    
    
    	}
    


    fichier core/lib/class.plx.feed.php , fonction: __construct

    en dessous de la ligne:
    $this->getUsers(PLX_ROOT.$this->aConf['users']);
    

    ajouter:
    $this->getTags(PLX_ROOT.$this->aConf['tags']);
    


    fichier core/lib/class.plx.feed.php , fonction: fprechauffage

    au DESSUS de la ligne
    		elseif($this->get AND preg_match('#^(?:atom/|rss/)?commentaires/?$#',$this->get)) {
    

    ajouter le code suvante:
    		elseif($this->get AND preg_match('#^(?:atom/|rss/)?tag\/([a-z0-9-]+)/?$#',$this->get,$capture)) {
    			$this->mode = 'tag';
    			$this->cible = $capture[1];
    			$ids = array();
    			$datetime = date('YmdHi');
    			foreach($this->aTags as $idart => $tag) {
    				if($tag['date']<=$datetime) {
    					$tags = array_map("trim", explode(',', $tag['tags']));
    					$tagUrls = array_map(array('plxUtils', 'title2url'), $tags);
    					if(in_array($this->cible, $tagUrls)) {
    						if(!isset($ids[$idart])) $ids[$idart] = $idart;
    						if(!isset($cibleName)) {
    							$key = array_search($this->cible, $tagUrls);
    							$cibleName=$tags[$key];
    						}
    					}
    				}
    			}
    			if(sizeof($ids)>0) {
    				$this->motif = '/('.implode('|', $ids).').[home|'.$this->activeCats.',]*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/';
    			}
    
    		}
    

    fichier core/lib/class.plx.feed.php , fonction: demarrage

    remplacer les lignes suivantes
    		# Flux d'articles
    		else {
    			# Flux des articles d'une catégorie précise
    			if($this->cible) {
    

    par
    		# Flux d'articles pour un tag
    		elseif($this->mode == 'tag') {
    			$this->getArticles(); # Recupération des articles (on les parse)
    		}
    		# Flux d'articles
    		else {
    			# Flux des articles d'une catégorie précise
    			if($this->cible) {
    

    et remplacer la ligne suivante:
    	case 'article' : $this->getRssArticles(); break;
    

    par
    	case 'article' :
    	case 'tag':
    		$this->getRssArticles(); break;
    


    fichier tags.php du theme

    au dessus de la ligne:
    <p id="pagination"><?php $plxShow->pagination(); ?></p>
    

    ajouter:
    <p class="feed-arts"><?php $plxShow->tagFeed(); ?></p>
    

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • JeoffreyJeoffrey Member
    juillet 2012 modifié
    Hello,

    Désolé, j'ai cette erreur :
    Catchable fatal error: Object of class plxFeed could not be converted to string in /home/jeoffrey/www/jeoffrey54.com/dev/core/lib/class.plx.feed.php on line 60
    

    Edit : trouvé :).

    Remplacer :
    $this->$this->getUsers(PLX_ROOT.$this->aConf['users']);
    

    Par :
    $this->getUsers(PLX_ROOT.$this->aConf['users']);
    

    Dans le code que tu me fournis ;).
  • StéphaneStéphane Member, Former PluXml Project Manager
    Merci Jeoffrey
    J'ai corrigé mon post

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • En tout cas merci, ça fonctionne parfaitement bien !

    Est-il prévu que cette amélioration soit présente dans la version 5.1.7 de PluXml ?
  • StéphaneStéphane Member, Former PluXml Project Manager
    Absolument

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Par contre, j'ai un petit soucis avec ce code =/.

    Je m'explique :

    http://www.jeoffrey54.com/tag/planet-libre

    Normalement, vous ne devez pas voir l'article "Spotify sur une Debian Wheezt". Pourtant, si en bas de page, vous cliquez sur les flux RSS de ce tag :

    http://www.jeoffrey54.com/feed/rss/tag/planet-libre

    Vous verrez qu'un article ne comportant pas le tag "planet-libre" fait partie du flux RSS...
  • HarukaHaruka PluXml Project Manager
    Une solution beaucoup plus simple, c'est de te créer une catégorie "Planete Libre" et de leur envoyer le flux RSS de ta catégorie. Pour en avoir discuter avec eux, ça leur convient.
  • Hum, mais comment puis-je obtenir le flux RSS d'une catégorie ? Je n'ai pas vu de lien proposé dans PluXML...
  • HarukaHaruka PluXml Project Manager
    Par exemple, avec mon blog ça donne ça : http://p3ter.fr/feed/rss/categorie1

    Avec le thème par défaut, le lien est tout en bas sur la page de chaque catégorie.
  • Hum, apparemment mon soucis est plus large que cela : http://forum.pluxml.org/viewtopic.php?pid=27323#p27323
  • Ce vieux post ressort en cas de recherche sur Google pour "pluxml tag rss"
    Il me semble que ça a été implémenté depuis (PLUXML 5.1.7 du 25/01/2013 ?)
    Auquel cas le wiki n'est pas à jour http://wiki.pluxml.org/index.php?page=Gestion+des+flux+de+syndication
Connectez-vous ou Inscrivez-vous pour répondre.