Afficher Articles Récents

Bonjour,
voilà je suis l'heureux propriétaire du site http://blogotheme.free.fr/ , comme vous voyez j'ai sur la colonne de gauche un menu qui affiche les 5 derniers articles, pour cela j'ai utilisé les fonctions du flux rss, c'est à dire :
$pluxml = new pluxml(PLX_CONF);
$pluxml->getMode('syndic', '/^[0-9]{4}.([0-9]{3}|home)(.[a-z0-9-]*)*.xml$/', $pluxml->config['bypage_rss']);

	if($pluxml->aCats && $pluxml->aFiles){
	$pluxml->getUsedCategories();
	$pluxml->pagination();
	$pluxml->getFiles();
	$pluxml->getArticles();
	}
	?>
	<?php while($pluxml->result->loop()){
	$num = $pluxml->result->f('file_num')+0;
	echo'<li><a href="'.$pluxml->config['racine'].'?'.$num.'-'.$pluxml->result->f('art_name').'">'.$pluxml->result->f('title').'</a></li>';
	}
	?>
Je voudrais savoir si il n'y a pas un moyen plus simple de faire ça et à savoir aussi qu'il y a un bug lorsque l'une des catégories possède plus d'1 page, cela n'affiche pas pareille que sur la 1ère page.
Merci d'avance à ceux qui m'aideront :).

Réponses

  • Plus simple ? Non je ne vois pas comment. Tu trouve cela trop long ?

    Pour le bug j'attendrai que ton site marche et je regarde ça :)
  • Ce n'est pas que je trouve ça trop long mais comme on dit pourquoi faire compliquer quand on peut faire simple :D.
    Sinon le site fonctionne de mon côté.
  • Haha, merci fightsoul, tu m'as trouvé le moyen simple pour faire ma signature dynamique dont j'ai tant besoin :D
  • Et bien merci ;)
    par contre pour le bug je comprend pas pourquoi sa fait ça mais bon :/
  • Ben, pour ton bug, c'est simple (je l'ai aperçu en codant la signature) :

    Il suffit d'étudier la fonction :
    getMode(string le_mode, int le_nombre_d-articles_a_recuperer);

    Or le nombre d'articles à récupérer est le nombre d'article à afficher par page de syndication ($pluxml->config).
    Supprime ce truc et remplace-le par un nombre ou une variable.

    Le reste est enfantin ;)
  • guimers8guimers8 Member
    mars 2007 modifié
    Je ne vois pas ce que ça change..? S'il y a plus d'articles dans une catégorie que "d'articles récents" montrés, ça fait toujours bugguer la "pagination" ..

    Que faire ?
    Mon code :
    <?php
    $pluxml2 = new pluxml(PLX_CONF);
    $pluxml2->getMode('syndic', '/^[0-9]{4}.([0-9]{3}|home)(.[a-z0-9-]*)*.xml$/', 5);
    
        if($pluxml2->aCats && $pluxml->aFiles){
        $pluxml2->getUsedCategories();
        $pluxml2->pagination();
        $pluxml2->getFiles();
        $pluxml2->getArticles();
        }
        ?>
    
        <?php while($pluxml2->result->loop())
        {
            $num = $pluxml2->result->f('file_num')+0;
            echo '<li><a href="'.$pluxml2->config['racine'].'?'.$num.'-'.$pluxml2->result->f('art_name').'">'.$pluxml2->result->f('title').'</a></li>';
        }
        ?>
    
    Merci. :)

    EDIT : Résolu avec FlopALaMite N°15. :) Merci!
  • WinksWinks Member
    avril 2007 modifié
    J'ai réussis à taton à faire un bon truc dans le menu mais ça a tout cassé mon bloc central, regardez par vous même.
  • bricabrica Member
    @guimers8 : si le problème est résolu, pourrais-tu publier le code corrigé ? Je te remercie.
  • vous etes sous quel version de pluxml ? flopa 15 ?
  • Merci pour ce petit script vachement utile. Par contre se serait parfait si tu me disais comment afficher en plus du titre, la date de l'article. J'ai essayé mais sans succès >.>!

    Merci.
  • DitiDiti Member
    Tu pourrais avoir la date, générée par la balise <dc:date> de RSS, mais ça te renvoie une date au format UNIX.
  • C'est quel forme le format UNIX?

    De plus le code principal du programe n'utilise pas le RSS. Il doit bien exister un moyen d'afficher la date également, quitte à modifier légèrement le core de pluxml. Je me trompe?
  • Re,
    j'ai trouvé un autre moyen pour avoir les X derniers articles publiés.
    Voici le code à copier dans le fichier functions.php (situé dans core/lib/) :
    case 'lastarticles':
    			if($option == ''){
    				$nb_art = 5;
    			}else{
    				$nb_art = $option;
    			}
    			$doc = PLX_DOC.$pluxml->config['racine_xml'];
    			$q = $pluxml->con->query('/^[0-9]{4}.([0-9]{3}|home)(.[a-z0-9-]*)*.xml$/', 'rsort', 0, $nb_art);
    			echo "<ul>\n";
    			foreach($q as $article){
    				$b = $pluxml->parseArticle($doc.$article);
    				$num = $b['file_num']+0;
    				echo '<li><a href="?'.$num.'-'.$b['art_name'].'">'.$b['title'].'</a></li>'."\n";
    			}
    			echo '</ul>';
    		break;
    
    Ensuite dans votre template il suffis de mettre <? __('lastarticles', X); ?>, X étant le nombre d'article que vous voulez afficher. Si vous mettez simplement <? __('lastarticles'); ?> les 5 derniers articles seront affichés.
  • Bonne idée, cet usage de méthodes privées dans un fichier à part. On va reprendre ça dans le Brain de la prochaine version.
  • YGDYGD Member
    Arf... c'est quand meme plus simple que ce que j'avais ecrit avec un ami...
    => http://forum.pluxml.org/viewtopic.php?pid=6870#p6870

    merci pour ce magnifique petit bout de code! ;)
Connectez-vous ou Inscrivez-vous pour répondre.