afficher en home les articles d'une catégorie

jfpjfp Member
bonsoir, j'ai du mal a voir dans template.php comment remonter en home les articles d'une catégorie (j'ai déjà séparé la boucle article en mode home et mode catégorie). Y a t'il un moyen d'utiliser la boucle article avec un numéro de catégorie ?

je parle de cette boucle :
<?php # Liste d'articles # ?>
				<?php while($pluxml->result->loop()):?>
				<div class="post">
					<h2 class="articletitle"><?php __('title', 'link'); ?></h2>
					<?php __('chapo'); ?>

				</div>
				<?php endwhile; ?>

Réponses

  • Ça m'intéresse aussi tiens :).
  • jfp a écrit:
    bonsoir, j'ai du mal a voir dans template.php comment remonter en home les articles d'une catégorie (j'ai déjà séparé la boucle article en mode home et mode catégorie). Y a t'il un moyen d'utiliser la boucle article avec un numéro de catégorie ?
    Qu'est ce que tu entends par "remonter en home les articles d'une catégorie" ?
  • jfpjfp Member
    Salut,
    j'envisage par exemple en mode home d'avoir donc mais article "home", mais également de lister les titres d'articles d'une partie news par exemple.
  • Cela va demander de modifier quelque peu Pluxml, personnellement je n'ai pas le temps de te réaliser cela, reste à voir si ça interesse quelqu'un d'autre de ce pencher sur le problème.
  • jfpjfp Member
    ok, merci quand même. Je vais voir ce que je peux faire en récupérant directement les fichiers xml portant les id de la catégorie en question.

    Merci pour ce petit moteur léger et efficace et ta disponibilité. Je me ferai un plaisir de montrer le résultat dès que mon projet est un point :)
  • jfpjfp Member
    mars 2007 modifié
    Alors voilà ce que j'ai fait - attention bidouille !!! -
    J'ai utilisé comme base le fichier "atom.php" qui s'occupe de récupérer les infos concernant tous les articles. Dans mon cas, il s'agit de récupérer la liste des articles d'une catégorie précise dans un swf, j'ai donc dupliqué ce fichier atom.php en getxmlArticles.php, que je vais consulter via mon swf avec l'objet xml. j'ai utilisé la boucle __('categorie') pour créer un noeud contenant l'url et le nom de la catégorie.

    Dans mon fichier flash, je vais filtrer les articles, et récupérer les articles de la catégorie qui m'intéresse. Le gros hic, c'est qu'a terme, quand il y aura 3000 articles, je parserai dans mon flash ces 3000 articles pour récupérer les dix pauvres articles de la catégorie qui m'intéresse. Mais bon, avant qu'il y ai 3000 articles, j'ai le temps de trouver un solution plus adaptée.

    voici le fichie atom.php modifié :
    <?php
    # Copyright (c) 2006 Skyline-arts.com. All rights reserved.
    
    header('Content-Type: text/xml; charset=ISO-8859-1');
    
    define('PLX_DOC', '');
    define('PLX_CONF', 'conf/configuration.xml');
    
    require_once PLX_DOC.'lib/class.pluxml.php';
    require_once PLX_DOC.'lib/class.glob.php';
    require_once PLX_DOC.'lib/class.recordset.php';
    require_once PLX_DOC.'lib/lib.util.php';
    require_once PLX_DOC.'lib/functions.php';
    
    $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();
    }
    
    echo '<?xml version="1.0" encoding="ISO-8859-1" ?>';?>
    <articles>
    <?php while($pluxml->result->loop()){?>
    	
    	<?php if ($pluxml->result->f('chapo') != ''){
    		$content = $pluxml->result->f('chapo');
    	}else{
    		$content = $pluxml->result->f('content');
    	}
    	$num = $pluxml->result->f('file_num')+0;
      echo '
      <entry>
    
    	<title>'.$pluxml->result->f('title').'</title> 
    	<link href="'.$pluxml->config['racine'].'?'.$num.'-'.$pluxml->result->f('art_name').'" />';?>
     <?php __('categorie'); ?>
    
     <?php echo'</entry>';
    
    }?>	
    </articles>
    
    Question, y a t'il un moyen de créer un xml sur cette base ne listant qu'une catégorie précise? :)
  • Salut, il faut modifier cette ligne :
    $pluxml->getMode('syndic', '/^[0-9]{4}.([0-9]{3}|home)(.[a-z0-9-]*)*.xml$/', $pluxml->config['bypage_rss']);
    
    et remplacer ([0-9]{3}|home) par le code de la catégorie (par exemple 003)
  • NicoNico Member
    Hélas jfp pour l'instant, Pluxml utilise le nom des fichiers XML pour savoir à quelle catégorie l'article appartient. Cette combine avec des expressions régulière est utilisée un peu partout dans le code. Skyline est en train de revoir le code pour le simplifier et éviter ce genre de chose. J'espère que quand tu auras 3000 articles, une classe PHP pourra directement te renvoyer un tableau avec les articles de la catégorie que tu souhaites. :)
  • jfpjfp Member
    mars 2007 modifié
    Super, merci fightsoul Ca a l'air de marcher très bien !!


    Nico>>"une classe PHP pourra directement te renvoyer un tableau avec les articles de la catégorie que tu souhaites."
    Oui un truc style getArticles('002', 10) ca serait super! Mais bon vu que c'est pas moi qui serait capable de la faire je vais prendre mon mal en patience ;)


    A noter que j'ai changé l'encodage des fichiers Pluxml en UTF-8, afin de pouvoir récupérer du texte correctement dans flash, et ça marche sans aucuns soucis.
  • Nico a écrit:
    Hélas jfp pour l'instant, Pluxml utilise le nom des fichiers XML pour savoir à quelle catégorie l'article appartient. Cette combine avec des expressions régulière est utilisée un peu partout dans le code. Skyline est en train de revoir le code pour le simplifier et éviter ce genre de chose. J'espère que quand tu auras 3000 articles, une classe PHP pourra directement te renvoyer un tableau avec les articles de la catégorie que tu souhaites. :)
    Il y aura un fichier index un de ces quatre :)
Connectez-vous ou Inscrivez-vous pour répondre.