Afficher des achives par mois : une bidouille

Hello,

Personne n'a trouvé de réponse à mon problème, qui était d'afficher des
articles par mois.

J'ai donc retourné le problème dans tous les sens et trouvé un bidouille
acceptable, qui peut resservir a d'autres ou servir de base.

Voici :

      <table border="0" cellspacing="0" cellpadding="3" width="406">
      <tr>
      <td><img src="IMG-steph/spacer.gif" width="14" height="1"
border="0"></td>
      <td valign="top">
      <span class='texteune'>
      <BOUCLE_coupflash(ARTICLES){id_secteur=2}{par date}{inverse}{" - "}>
      <?php $lemoisliste="[(#DATE|mois)][(#DATE|annee)]";
      if ($lemoischiffre != $lemoisliste) {
      echo "</span></td></tr><tr><td></td><td><span
class='titreune'>[(#DATE|nom_mois|majuscules)]
[(#DATE|annee)]<br></span><span class='texteune'>";
      $lemoischiffre = $lemoisliste;
      }
      ?>
      <a href="#URL_ARTICLE">#TITRE</a>
      </BOUCLE_coupflash>
      </span></td></tr>
      </table>

En fait les articles sont listés par ordre de date et le mois et l'année de
chaque article est comparé. S'il change (donc si l'on passe de aout 2002 à
juillet 2002, il écrit du code html, qui passe une ligne de table et écrit
le mois et l'année. Puis c'est reparti pour le listage des articles.

Il y a quelques petits défauts à cette bidouille
1) les ultra de l'html trouverons que je crée des lignes de tables vides et
que c'est peu catholique. Mais bon on voit pire tous les jours.
2) on ne peut pas trier pour chaque mois les articles par rubriques.
3) le petit tiret qui sépare les articles {" - "} se retrouve écrit à la fin
de chaque mois puisque mon intertitre avec la date est une bidouille. Ce
problème ne se pose pas si on n'utilise pas le {" - "} mais des <br> pour
séparer les articles.
4) je n'ai pas mis de date limite dans mons cas mais un {date < 365} peut
limiter les articles renvoyé.

Voilà. Si quelqu'un a une meilleure idée ou des corrections, ça peut
servir...

Stéphane

--

Que tous les hommes soient Frères,
c'est le rêve des gens qui n'ont pas de frère.

Charles Chincholle

Je ne vois pas trop comment faire autrement. Au moins ça fonctionne.
Tu m'apprends qqch : comment utiliser SPIP dans PHP, alors que j'essayais de
récupérer des variables SPIP en PHP. Evidemment c'est plus logique : le
script lu en premier doit se trouver à l'intérieur du script lu en second.

2) on ne peut pas trier pour chaque mois les articles par rubriques.

Tu peux au moins rajouter la rubrique derrière le titre en faisant une
boucle rubrique

J'ai fait aussi une bidouille (quelques lignes ajoutées à
ecrire/inc_texte.php3 + un nom de style à indiquer dans le texte de
l'article en tête du tableau) pour afficher des tableaux en fonction d'un
style. J'ai besoin d'afficher du texte sur 2 colonnes, tout en conservant la
possibilité d'afficher les tableaux SPIP par défaut. Ca fonctionne mais ce
n'est pas tout à fait présentable encore, et je vous le soumettrai si ça
intéresse qqn.

Bernard Martin-Rabaud
mel@ediweb.org

-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net]De la part de
Stephane Noël
Envoyé : samedi 24 août 2002 16:22
À : spip@rezo.net
Objet : [Spip] Afficher des achives par mois : une bidouille

Hello,

Personne n'a trouvé de réponse à mon problème, qui était d'afficher des
articles par mois.

J'ai donc retourné le problème dans tous les sens et trouvé un bidouille
acceptable, qui peut resservir a d'autres ou servir de base.

Voici :

      <table border="0" cellspacing="0" cellpadding="3" width="406">
      <tr>
      <td><img src="IMG-steph/spacer.gif" width="14" height="1"
border="0"></td>
      <td valign="top">
      <span class='texteune'>
      <BOUCLE_coupflash(ARTICLES){id_secteur=2}{par date}{inverse}{" - "}>
      <?php $lemoisliste="[(#DATE|mois)][(#DATE|annee)]";
      if ($lemoischiffre != $lemoisliste) {
      echo "</span></td></tr><tr><td></td><td><span
class='titreune'>[(#DATE|nom_mois|majuscules)]
[(#DATE|annee)]<br></span><span class='texteune'>";
      $lemoischiffre = $lemoisliste;
      }
      ?>
      <a href="#URL_ARTICLE">#TITRE</a>
      </BOUCLE_coupflash>
      </span></td></tr>
      </table>

En fait les articles sont listés par ordre de date et le mois et l'année de
chaque article est comparé. S'il change (donc si l'on passe de aout 2002 à
juillet 2002, il écrit du code html, qui passe une ligne de table et écrit
le mois et l'année. Puis c'est reparti pour le listage des articles.

Il y a quelques petits défauts à cette bidouille
1) les ultra de l'html trouverons que je crée des lignes de tables vides et
que c'est peu catholique. Mais bon on voit pire tous les jours.
2) on ne peut pas trier pour chaque mois les articles par rubriques.
3) le petit tiret qui sépare les articles {" - "} se retrouve écrit à la fin
de chaque mois puisque mon intertitre avec la date est une bidouille. Ce
problème ne se pose pas si on n'utilise pas le {" - "} mais des <br> pour
séparer les articles.
4) je n'ai pas mis de date limite dans mons cas mais un {date < 365} peut
limiter les articles renvoyé.

Voilà. Si quelqu'un a une meilleure idée ou des corrections, ça peut
servir...

Stéphane

--

Que tous les hommes soient Frères,
c'est le rêve des gens qui n'ont pas de frère.

Charles Chincholle

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.uzine.net/spip