Régénérer la liste des tags à partir des articles

LudMacLudMac Member
Hello,

Le code fourni dans l'article du Wiki (http://wiki.pluxml.org/index.php?page=R%C3%A9g%C3%A9n%C3%A9rer+la+liste+des+tags+%C3%A0+partir+des+articles) semble poser des soucis.

J'ai créé la page, je l'ai chargée et 'oups' plus de tags du tout...

Merci pour votre aide
Ludo

Réponses

  • amowebamoweb Member
    Voilà, c'est corrigé. Le code est sur le wiki.
  • apparemment ce code n'est plus bon sous la v5.2
    je suis en train de modifier, via notepad++ les tags des différents pos et cela me rendrait bien service de pouvoir régénérer totalement " au propre " le fichiers tags.xml .... :)
  • bg62bg62 Member
    juin 2014 modifié
    re ... je me retrouve de nouveau avec une sacrée perte de 'tags' mais pas évident cette manip du 'wiki', sûr qu'elle fonctionne encore pour la dernière version de PluXml ???
    ou s'il y a une autre solution = je suis preneur :)
    j'ai suivi le 'wiki' et mis cette page statique avec ce code :
    [== XML ==]
    <?php
    # Régénérer tag.xml : permet de recréer la liste des tags à partir des articles. 
    # révision 1.0 par Amaury
    
    if(!defined('PLX_ROOT')) exit;
    
    global $plxShow;
    
    class art2taglist extends plxMotor
    {
    	public function __construct($plxMotor) {
    		$this->plxMotor = $plxMotor;
    
    	}
    
            function getArtDate($filename) {
                   $artInfos = $this->artInfoFromFilename($filename);
                   return $artInfos['artDate'];
            }
    }
    
    $art2taglist = new art2taglist($plxMotor);
    
    $plxGlob_arts = plxGlob::getInstance(PLX_ROOT.$plxShow->plxMotor->aConf['racine_articles']);
    $aFiles = $plxGlob_arts->query('/[0-9]{4}.*.[a-z0-9-]+.xml$/','art','rsort',0,false,'before');
    
    
    $xml = "<?xml version='1.0' encoding='".PLX_CHARSET."'?>\n";
    
    $xml .= "<document>\n";
    
    if(is_array($aFiles)) { # On a des fichiers
        while(list($k,$v) = each($aFiles)) { # On parcourt tous les fichiers
            $temp = $plxShow->plxMotor->parseArticle(PLX_ROOT.$plxShow->plxMotor->aConf['racine_articles'].$v);
             if( intval(sizeof($plx_arts[$temp['categorie']])) < $artsByCategory OR $artsByCategory == 0) {
    			$plx_arts[$temp['categorie']][] = $temp;
    	}
    
    
        }
        if($plx_arts) { # On a des articles
    		echo "<ul>";
                    # On boucle sur nos articles
    		foreach ($plx_arts as $k => $v) {
    			$cat_num = $k;
    		
    			# On boucle sur les articles de la catégories
    			while(list($null, $art) = each($v)) {
    				$art_num = $art['numero'];
    				$art_url = plxUtils::strCheck(($art['url']));
    				$art_title = plxUtils::strCheck(($art['title']));
    
    				$art_date = $art2taglist->getArtDate($art['filename']);
    
                                    $art_tags = $art['tags'];
    				echo '<li><a href="'.$plxShow->plxMotor->aConf['racine'].'?article'.$art_num.'/'.$art_url.'">'.$art_title. '</a> : ' . $art_tags . '</li>';
                                    $xml .= "<article number='" . $art_num . "' date='" . $art_date . "' active='1'><![CDATA[" . $art_tags . "]]></article>\n";
    			}
    			echo "</ul>";
            }
    
        }
    }
    
    $xml .= "</document>\n";
    plxUtils::write($xml, 'data/tags.xml');             
    
    echo "Fichier tags.xml mis à jour.";
    
    ?>
    
    apparemment le fichier a semble-t-il été de nouveau généré, mais a-t-il tout récupéré ... là, c'est une toute autre question ;)
    ( j'en ai trop .... )
  • bg62bg62 Member

    juste pour info, retesté aujourd'hui, sous PluXml 5.8.5. et fonctionne encore :)

  • janvier 2023 modifié

    apparement requiert une maj pour passer en php 8
    while(list($k,$v) = each($aFiles)) { est obsolete depuis php 7.2 et n'existe plus dans php 8x. Un foreach($aFiles as $k => $v) { fait l'affaire .
    Il y a probablement d'autre petits réglages à effectuer pour les dernières versions de PluXml et notamment pour ceux tournant en php8.

    Sinon cela reste un script très utile et mériterait d’être intégré à PluXml a mon humble avis ;)


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • Excellent, cela existe déjà :)

    Merci beaucoup


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

Connectez-vous ou Inscrivez-vous pour répondre.