Page "Archives"

GzygGzyg Member
septembre 2011 modifié dans Modifications
Bonjour,

Pour la nouvelle édition de mon blog, j'ai voulu une page archive qui listerait dans un tableau tous les articles par ordre de date et où apparaîtrait également la catégorie, le nombre de commentaires (et éventuellement l'auteur).

J'ai donc fait un template static-archives.php et je l'ai nourri avec une partie des infos figurant sur le fichier core/admin/index.php

J'y ai rajouté une librairie js qui permet de trier les colonnes : http://tablesorter.com/docs/

(lien retiré)

Si ça peut inspirer quelqu'un pour coder ça dans les règles... :)


Merci, à plus,

Gzyg

Réponses

  • Malheureusement le lien vers ton blog ne semble pas fonctionner :S
  • StéphaneStéphane Member, Former PluXml Project Manager

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • GzygGzyg Member
    septembre 2011 modifié
    @ bdube30 : ha, oui, effectivement... mais je crois que je viens de comprendre pourquoi... sans avoir encore la solution...

    @ Stéphane : non, c'est pas tout à fait la même chose...

    Je veux un tableau trié par date (par défaut) avec :

    | date | titre ('lien') | auteur | catégorie | nb comm |

    un peu comme sur la page admin/index.php.


    Je retire le lien en attendant.


    à plus,

    Gzyg
  • Bon, j'ai tenté un nouveau bricolage et cette fois la page semble s'afficher :

    http://leloupetlechien.rocks-ho.fr/pluxml/index.php?static5/archives

    Par contre, je n'arrive pas à voir comment afficher le nombre de commentaires de chaque article...

    Le nouveau bricolage se base sur la fonction public function lastArtList, clonée en public function allArtList.

    J'ai essayé d'y intégrer et de bidouiller la fonction d'affichage du nombre de commentaires mais évidemment ça a foiré... :)

    Une idée ?


    Merci, à plus

    Gzyg
  • Up, please... :)

    J'utilse ce code :
    <table id="archives_table" class="tablesorter">
    
    <thead>
    	<tr class="tr_head">
    		<th class="date">Date</th>
    		<th class="title">Titre de l'article</th>
    		<th class="category">Rubrique</th>
    		<th class="nbcoms">nb com </th>
    	</tr>
    </thead>
    
    <tbody>
    
    <?php $plxShow->allArtList('
    <tr class="tr_art">
        <td class="td_dat">#art_date à #art_hour</td>
        <td class="td_art"><a href="#art_url" title="#art_title">#art_title</a></td>
        <td class="td_cat">#cat_list</td>
        <td class="td_com">#art_com</td>
    </tr>
    '); ?>
    
    </tbody>
    </table>
    
    où $plxShow->allArtList est un clone de $plxShow->lastArtList (je change juste le nombre d'articles à afficher).

    tous les #art_date, #art_hour, #art_title et #cat_list sont listés dans $row = etc...

    sauf le #art_com (appellation provisoire) que je ne sais pas où ni comment récupérer.


    Merci, à plus,

    Gzyg
  • Désolé d'insister mais c'est possible comme manip' ou pas ?


    à plus,

    Gzyg
  • Up, please.

    Je ne suis pas développeur et je tourne en rond parml toutes les fonctions.


    Merci, à plus,

    Gzyg
  • StéphaneStéphane Member, Former PluXml Project Manager
    utilise lastArtList à la place de ta fonction allArtList et mets 9999 comme deuxième paramètre

    http://devzone.pluxml.org/?plxShow/function/lastArtList

    si tu utilises la fonction dans une page statique, ne pas oublier de déclarer avant global $plxShow;

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • J'utilise déjà lastArtList en page d'accueil avec $max=12...

    Ce deuxième paramètre sert pour définir le nombre d'articles à afficher, moi je cherche à afficher le nombre de commentaires par article dans une page statique dédiée.


    Merci, à plus,

    Gzyg
  • danielsandanielsan Member
    septembre 2011 modifié
    Hello,

    un truc comme ça ?
    http://blog.test.laborandsense.com/index.php?static3/archives :D

    Cordialement,
    ____
    D.san
  • danielsandanielsan Member
    septembre 2011 modifié
    Pour la réalisation:

    1/ créer un template spécifique ( static-archives.php )
    2/ dedans, y coller:
    <?php include(dirname(__FILE__).'/header.php'); ?>
    
    <?php
    		// Réinitialisation de la boucle :
    		$plxShow = new plxShow($plxMotor);
    		$plxGlob_arts = plxGlob::getInstance(PLX_ROOT.$plxShow->plxMotor->aConf['racine_articles']);
    		$plxShow->plxMotor->motif = '/^[0-9]{4}\.(home|[0-9]*|,)*\.[0-9]{3}\.[0-9]{12}\.[a-z0-9-]+\.xml$/';
    		$plxShow->plxMotor->getArticles('all');
    ?>
    
    	<div id="section">
    
    		<div id="article">
    
    			<table border="1">
    				<thead>
    					<tr>
    						<th>Titre</td>
    						<th>Date</td>
    						<th><?php $plxShow->lang('WRITTEN_BY') ?></th>
    						<th><?php $plxShow->lang('CLASSIFIED_IN') ?></th>
    						<th><?php $plxShow->lang('TAGS') ?></th>
    						<th>Nb Commentaires</th>
    					</tr>
    				</thead>
    				<tbody>
    			<?php while($plxShow->plxMotor->plxRecord_arts->loop()): ?>
    					<tr>
    						<td><?php $plxShow->artTitle('link'); ?></td>
    						<td><?php $plxShow->artDate('#num_day #month #num_year(4)'); ?></td>
    						<td><?php $plxShow->artAuthor() ?></td>
    						<td><?php $plxShow->artCat(); ?></td>
    						<td><?php $plxShow->artTags(); ?></td>
    						<td><?php $plxShow->artNbCom();  ?></td>
    					</tr>
    			<?php endwhile; ?>
    				</tbody>
    			</table>
    
    		</div>
    
    		<?php include(dirname(__FILE__).'/sidebar.php'); ?>
    
    	</div>
    
    <?php include(dirname(__FILE__).'/footer.php'); ?>
    
    3/ créer une nouvelle page static et lui assigner ce nouveau template

    Cordialement,
    _____
    D.San
  • danielsan, grand merci, c'est exactement ça ! :)


    à plus,

    Gzyg
  • de rien :P
    par contre, je viens de me rendre compte que j'ai mis la balise <tbody> dans la boucle, à l'extérieur c'est mieux,
    j'ai fait la modif dans mon message précédent.

    Tiens nous au courant du suivi
  • Bon, encore quelques finitions de design à faire mais l'essentiel est là. :)

    J'ai remplacé #num_day #month #num_year(4) par #num_day/#num_month/#num_year(4) pour avoir l'ordre descendant intégral (sinon l'ordre était descendant par mois mais ascendant à l'intérieur de chaque mois - pas pratique à lire).

    Remplacé aussi les /td du thead par les /th voulus ;)

    Résultat visible ici : http://leloupetlechien.rocks-ho.fr/pluxml/index.php?static5/archives

    Encore merci, sujet réglé.

    (hop, maintenant, le design de la page contact !)


    à plus,

    Gzyg
  • Je vois ça, good !

    Sinon juste un truc,
    les classes que tu donnes aux balises, c'est pour le javascript ou le style ?

    Enfin, j'aime bien l'allure du site: léger et clair :P
  • Pour le style.

    À terme, le but est d'avoir des dénominations "standard" pour les class et les id, ceci pour me simplifier de futurs designs.

    Et merci pour l'allure. :)


    à plus,

    Gzyg
  • danielsandanielsan Member
    septembre 2011 modifié
    ok.

    alors si c'est pour le style, tu n'as besoin d'aucune class ou id ... à part une id pour le tableau

    le fait de séparer l'en-tête du corps du tableau ( <thead> VS <tbody> ),
    te donne la possibilité d'assigner un style pour chacun d'eux:
    div#archives table {background-color: white; color: #3F9291; font-size: 0.8em;}
    div#archives table a {color: #3F9291}
    div#archives table td, div#archives table th { margin: 0; padding: 5px; text-align: left; }
    div#archives table thead tr th {background-color: #B1B2B2;color: white;text-transform: uppercase;}
    div#archives table thead tr th:after {content: "\25BC"; float: right;}
    div#archives table thead tr th:last-child {width: 20px;}
    div#archives table thead tr th:not(:first-child) {border-left: 1px solid white; }
    div#archives table tbody tr td { border-bottom: 1px solid #B1B2B2; background-color: white; color: #3F9291;}
    div#archives table tbody tr td:first-child a { color: #B1B2B2 }
    div#archives table tbody tr td:last-child { text-align: right;}
    
    j'arrive de la sorte au même résultat que toi ( et sans image ;) )
    visible là: http://blog.test.laborandsense.com/index.php?static3/archives
  • StéphaneStéphane Member, Former PluXml Project Manager
    c'est pas terrible ça:
    $plxShow = new plxShow($plxMotor);
    
    double d'occupation mémoire, double temps de traitement.

    a noter que ce ne sera plus possible d'instancier directement plxshow dans la prochaine version de pluxml, la variable passera en singleton.

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • hiiiiii,

    j'avais trouvé l'astuce ici: http://forum.pluxml.org/viewtopic.php?id=2695
    alors comment faire ?
  • @ danielsan : effectivement, c'est pas mal... faut que je me penche sérieusement sur ces :before, :after et compagnie ! ;)

    @ stéphane : so what ?


    à plus,

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