affichage des articles par mois et année (juste les dates)

Le jeudi, 8 mai 2003, à 17:30 Europe/Paris, karim Belkacem a écrit :

serieux Jean Luc, Chapeau bas, c'est nickel, c'est exactement ce que je voulais, je suis bluffer :slight_smile:

bon, j'ai une autre colle :slight_smile: ne te sens pas obligé

une fois que je suis dans ma page articles_mensuelles.php3 avec la liste des articles du mois

je souhaite placer une navigation du style

« février 2003 (mars 2003) avril 2003 »

tu proposerais koi (en sachant que ce tu proposes marche)

Je vais passer mon temps à faire du PHP, moi :-). J'ai un treuil de canot de la SNSM au 1/15e qui m'attend moi :wink:

Il faut faire une boucle comme précédemment pour récupérer la succession des articles histoire de déterminer quel est le précédent et le suivant. Mais cette fois ci, il est préférable de la faire«a plat»

<?php
  // recupere le mois et l'annee en cours
  
  $cur_annee = $_GET['id_annee'];
  $cur_mois = $_GET['id_mois'];
  $archives = array();
?>
<BOUCLE_archive2(ARTICLES){par date}>
<?php
     $a = '[(#DATE|annee)]';
     $nm = '[(#DATE|nom_mois)]';
     $m = [(#DATE|mois)];
     $archives[$a.$m] = $m.' '.$nm.' '.$a;
   ?>
</BOUCLE_archive2>
<?
  // ensuite on exploite le tableau

  $index = $cur_annee.$cur_mois;
  // cherche l'element selectionne
  while(list($key,$courant) = each($archives)) {
    if ($key == $index) {
      break;
    }
    $precedent = $courant;
  }

  $suivant = current($archives);

  if (isset($precedent)) {
    $mois_annee = explode(' ',$precedent);
    $mois = $mois_annee[0];
    $nom_mois = $mois_annee[1];
    $annee = $mois_annee[2];
    echo '<a href="?id_mois='.$mois.'&id_annee='.$annee.'">&lt;&lt; '.$nom_mois.' '.$annee.'</a> ';
  }
  
  if (isset($courant)) {
    $mois_annee = explode(' ',$courant);
    $mois = $mois_annee[0];
    $nom_mois = $mois_annee[1];
    $annee = $mois_annee[2];
    echo ' ('.$nom_mois .' '.$annee.') ';
  }
    
  if ($suivant !== FALSE) {
    $mois_annee = explode(' ',$suivant);
    $mois = $mois_annee[0];
    $nom_mois = $mois_annee[1];
    $annee = $mois_annee[2];
    echo '<a href="?id_mois='.$mois.'&id_annee='.$annee.'">'.$nom_mois.' '.$annee.' &gt;&gt;</a> ';
  }
?>

--
Navimodélisme RC - Jean-Luc Béchennec
http://navi.modelisme.com - mailto:navirc@free.fr
Abonnez-vous au groupe de discussion sur le modélisme
naval radiocommandé : mailto:navirc-subscribe@yahoogroupes.fr

magnifique ! mais, car je suis un peu nul, on fait comment pour exploiter ça et afficher le contenu des articles de chaque mois?

jc

<?php
    // recupere le mois et l'annee en cours
        $cur_annee = $_GET['id_annee'];
    $cur_mois = $_GET['id_mois'];
    $archives = array();
?>
<BOUCLE_archive2(ARTICLES){par date}>
<?php
    $a = '[(#DATE|annee)]';
    $nm = '[(#DATE|nom_mois)]';
    $m = [(#DATE|mois)];
    $archives[$a.$m] = $m.' '.$nm.' '.$a;
  ?>
</BOUCLE_archive2>
<?
    // ensuite on exploite le tableau

    $index = $cur_annee.$cur_mois;
    // cherche l'element selectionne
    while(list($key,$courant) = each($archives)) {
        if ($key == $index) {
            break;
        }
        $precedent = $courant;
    }

    $suivant = current($archives);

    if (isset($precedent)) {
        $mois_annee = explode(' ',$precedent);
        $mois = $mois_annee[0];
        $nom_mois = $mois_annee[1];
        $annee = $mois_annee[2];
        echo '<a href="?id_mois='.$mois.'&id_annee='.$annee.'">&lt;&lt; '.$nom_mois.' '.$annee.'</a> ';
    }
        if (isset($courant)) {
        $mois_annee = explode(' ',$courant);
        $mois = $mois_annee[0];
        $nom_mois = $mois_annee[1];
        $annee = $mois_annee[2];
        echo ' ('.$nom_mois .' '.$annee.') ';
    }
           if ($suivant !== FALSE) {
        $mois_annee = explode(' ',$suivant);
        $mois = $mois_annee[0];
        $nom_mois = $mois_annee[1];
        $annee = $mois_annee[2];
        echo '<a href="?id_mois='.$mois.'&id_annee='.$annee.'">'.$nom_mois.' '.$annee.' &gt;&gt;</a> ';
    }
?>

--
Navimodélisme RC - Jean-Luc Béchennec
http://navi.modelisme.com - mailto:navirc@free.fr
Abonnez-vous au groupe de discussion sur le modélisme
naval radiocommandé : mailto:navirc-subscribe@yahoogroupes.fr

Je sais pas mais j'irais jeter un coup d'¦il sur Spip Contrib, qui propose
un bon article sur l'affichage par mois. Ça marche bien :

http://www.uzine.net/spip_contrib/article.php3?id_article=79

--
Ivan

jc a écrit :

magnifique ! mais, car je suis un peu nul, on fait comment pour
exploiter ça et afficher le contenu des articles de chaque mois?

jc

<?php
// recupere le mois et l'annee en cours

$cur_annee = $_GET['id_annee'];
$cur_mois = $_GET['id_mois'];
$archives = array();
?>
<BOUCLE_archive2(ARTICLES){par date}>
<?php
$a = '[(#DATE|annee)]';
$nm = '[(#DATE|nom_mois)]';
$m = [(#DATE|mois)];
$archives[$a.$m] = $m.' '.$nm.' '.$a;
?>
</BOUCLE_archive2>
<?
// ensuite on exploite le tableau

$index = $cur_annee.$cur_mois;
// cherche l'element selectionne
while(list($key,$courant) = each($archives)) {
if ($key == $index) {
break;
}
$precedent = $courant;
}

$suivant = current($archives);

if (isset($precedent)) {
$mois_annee = explode(' ',$precedent);
$mois = $mois_annee[0];
$nom_mois = $mois_annee[1];
$annee = $mois_annee[2];
echo '<a href="?id_mois='.$mois.'&id_annee='.$annee.'">&lt;&lt;
'.$nom_mois.' '.$annee.'</a> ';
}

if (isset($courant)) {
$mois_annee = explode(' ',$courant);
$mois = $mois_annee[0];
$nom_mois = $mois_annee[1];
$annee = $mois_annee[2];
echo ' ('.$nom_mois .' '.$annee.') ';
}

if ($suivant !== FALSE) {
$mois_annee = explode(' ',$suivant);
$mois = $mois_annee[0];
$nom_mois = $mois_annee[1];
$annee = $mois_annee[2];
echo '<a
href="?id_mois='.$mois.'&id_annee='.$annee.'">'.$nom_mois.' '.$annee.'
&gt;&gt;</a> ';
}
?>

Ivan a écrit:

Je sais pas mais j'irais jeter un coup d'¦il sur Spip Contrib, qui propose
un bon article sur l'affichage par mois. Ça marche bien :

http://www.uzine.net/spip_contrib/article.php3?id_article=79

ça marche, merci beaucoup ! :slight_smile:
jc

Ivan a écrit:

Je sais pas mais j'irais jeter un coup d'¦il sur Spip Contrib, qui propose
un bon article sur l'affichage par mois. Ça marche bien :

http://www.uzine.net/spip_contrib/article.php3?id_article=79

en fait ça marche en partie... une fois l'enthousiasme calmé je vois bien que c'est TOUS les articles de la base (c'un certain mois)qui sont affichés ! quelqu'un pourrait me dire comment je peux n'afficher que les articles d'une seule rubrique? j'ai essayé ça : (ARTICLES){id_rubrique=3} mais ça marche pô...

jc a écrit :

Ivan a écrit:

Je sais pas mais j'irais jeter un coup d'¦il sur Spip Contrib, qui propose
un bon article sur l'affichage par mois. Ça marche bien :

http://www.uzine.net/spip_contrib/article.php3?id_article=79

en fait ça marche en partie... une fois l'enthousiasme calmé je vois
bien que c'est TOUS les articles de la base (c'un certain mois)qui sont
affichés ! quelqu'un pourrait me dire comment je peux n'afficher que les
articles d'une seule rubrique? j'ai essayé ça :
(ARTICLES){id_rubrique=3} mais ça marche pô...

Voici comment j'ai mis en pratique le code pour mon site de test.

1) Dans la page qui donne accès à mes archives (archives étant les news
autre que celles du mois en cours), j'ai :
(ici je me base sur la rubrique 1, qui comporte l'éditorial, mais c'est
arbitraire).

<BOUCLE_preselect(ARTICLES){id_rubrique=1}{par date}{inverse}{0,1}>
<BOUCLE_archives(ARTICLES){id_rubrique=1}{age_relatif>0}{par date}{inverse}>
<table width="500" border="0" cellpadding="0" cellspacing="0"
align="center">
<tr>
<td valign="baseline" width="500" height="12" class="LIVREauteur"><a
href=mois.php?id_rubrique=1&id_mois=[(#DATE|mois)]&id_annee=[(#DATE|annee)]>
<font color="#000000"><img src="/images_commun/puce_grise.gif" width="8"
height="11" align="baseline" border="0">
Question Chine n&deg;#SURTITRE</font></a> <span
class="ARTICLEsoustitre">([(#DATE|nom_mois)]
[(#DATE|annee)])</span></td>
</tr>
</table>
<br>
</BOUCLE_archives>
</BOUCLE_preselect>

À l'écran on a :

Question Chine n°3 (juin 2002)
Question Chine n°2 (mai 2002)
Question Chine n°1 (avril 2002)

Chaque titre étant un lien.

2) Dans la page de présentation du mois en question, j'ai :

<BOUCLE_select(ARTICLES){id_rubrique}{par num titre}>
<?
$annee_article='[(#DATE|annee)]';
$mois_article='[(#DATE|mois)]';

if ($annee_article==$id_annee and $mois_article==$id_mois ) {
?>
[
<table width="498" border="0" cellspacing="7" cellpadding="0"
align="center">
<tr>
<td width="498" class="TitreCentreGras">(#CHAPO)</td>
</tr>
</table>
]
<table width="498" border="0" cellpadding="0" cellspacing="0"
align="center">
<tr>
<td valign="top" width="498"
class="ARTICLETitre">[(#TITRE|supprimer_numero)][<br>
<span class="LIVREauteur">(#SOUSTITRE)</span>]</td>
</tr>
</table>
[
<table width="500" border="0" cellspacing="1" cellpadding="0"
align="center">
<tr>
<td width="500" class="LIVREediteur">(#DESCRIPTIF)</td>
</tr>
</table>
]
<table width="500" border="0" cellspacing="10" cellpadding="0"
align="center">
<tr>
<td width="500" class="ARTICLETexte">#TEXTE</td>
</tr>
</table>
<table width="500" border="0" cellpadding="0" cellspacing="0"
align="center">
<tr>
<td align="justify" class="filetH" width="500">&nbsp; </td>
</tr>
</table>
<? } ?>
</BOUCLE_select>

Dans mon exemple, on affiche sur une page tous les articles dont le mois et
l'année sont passés dans l'URL et cela pour une rubrique donnée évidemment
(dans mon cas, la 1 par défaut au départ).

Tu peux voir le site de test ici :
http://QCtest.levillage.org/rubrique.php?id_rubrique=18

--
Ivan

très fort... merci !

Salut tout le monde,
Je débute et je voudrais savoir, pour ceux qui connaissent bien OSX sur Mac si je peux me configurer en serveur pour tester Spip et tous les exercices, les squelettes. Plutôt que d'être obligé de me connecter sur mon serveur chez OVH pour tester...
ça me coute un peu cher tout çà...
Voili-voilou
Ce serait cool...
Merci,
Mimix

Bonjour,

J'ai installé la 1.6 et j'ai un petit problème dasn l'interface /ecrire.
En effet lors de la frappe du texte, dès lors que l'on se rapproche de la
marge de droite et qu'on la dépasse.... l'ascenseur disparait et ne revient
pas ce qui est génant pour effectuer les corrections ou naviguer de haut en
bas dans le texte. Je suis en 1027 x 768 sur un 15 pouces LCD philips avec
IE6.
Le phénomne se produit sur quasiment tous les écrans.
Une solution docteur ?

merci

Balme
--------------------------------
www.oulala.net
infos@oulala.net
--------------------------------