SPIP - Contrib

SPIP - Contrib

[ar] [en] [es] [fr] [it]

41 visiteurs en ce moment

fontsizeup fontsizedown
[11 commentaires]

Les articles d’un mois

samedi 1er mars 2003, par ben.spip

  • Digg
  • Del.icio.us
  • Facebook
  • Google
  • Technorati
0 vote

Comment publier sur une seule page les articles du mois de ...

Sur un site j’ai voulu faire une sorte de journal mensuel que je puisse imprimer. Et je suis arrivé devant le problème : « comment dans SPIP sélectionner seulement ces articles ? »

Après plusieurs essais en SPIP pur... « Allez, réflechis, cela doit être possible en Spip pur », j’ai mis un peu de PHP, et hop voilà qui est fait.

Quelques explications pour ceux que cela intéresse :

Récuperation du mois et de l’année passé en paramètre dans l’url... et transformés en int pour être sûr que c’est bien un entier et pas un code malicieux ;-)

Je fais une boucle sur tout le site puis je regarde la date de l’article et je la compare à celle passée en paramètre.

Remarques :
- c’est ici que vous pouvez retreindre et prendre par exemple uniquement les articles de la rubrique XX ;
- J’ai choisi la balise #DATE de Spip, mais sachez q’il y a aussi #DATE_REDAC, #DATE_MODIF .

Et n’oublions surtout pas en fin de boucle principale de fermer le test

A noter aussi que le délai dans mois.php3 est important : pas la peine de recalculer cette page souvent.

il vous suffit maintenant d’appeler : mois.php3?id_mois=01&id_annee=2003 par exemple.

P.-S.

Attention : si vous utilisez la balise

, il ne faut afficher les notes qu’une seule fois pour l’ensemble des articles (ce bug est corrigé dans la future version 1.6 de SPIP).

Retour en haut de la page

11 Messages de forum

Voir toute la discussion

Pages 1 | 2

  • Répondre à ce message

    6 septembre 2005 23:11 , par klaus++

    Pour afficher les articles d’un mois quelconque je passe la valeur offset dans l’url. Le scripte l’utilise pour définir un mois relatif au mois courant.

    Cet exemple de code est la version simplifiée d’un scripte qui affiche une sorte d’agenda basée sur #DATE_REDAC

  • Répondre à ce message

    15 novembre 2004 14:58 , par François Schreuer

    Salut Ben,

    Ce serait intéressant de mettre cette contrib à jour pour la 1.8 en utilisant la récupération de paramètres d’url dans les boucles, histoire de se débarasser de php.

  • Répondre à ce message

    22 avril 2004 00:33 , par JMSE

    Il est possible a partir de la version 1.6 faire cela en SPIP pur à l’intérieur d’un squelette.

    Voici la boucle : <BOUCLE_principale(ARTICLES){par date}{mois_relatif=0}>

    Et il suffit que cette boucle possède la date dans le contexte ou dans l’url ( ... par exemple nomDuFichier.php3 ?date=2004/04 )

    Voir la documentation sur la gestion des dates

  • Répondre à ce message

    6 mars 2004 17:36 , par Phiip

    Je ne comprends pas commment une page html peut avoir du code php...

    J’ai un message d’erreur systématique "Fatal error : Maximum execution time exceeded in your script on line 67" (ou d’autres ligne). Etant sous online, j’imagine que ça signifie que la requête est trop longue...

    Enfin... on aura essayé !

    Voir en ligne : Le zine Lapin

  • Répondre à ce message

    8 novembre 2003 09:38 , par Pascal

    Pas vraiment besoin de php pour afficher les articles d’un mois en SPIP. Il faut tester par année et mois relatifs. Le modèle et le code sont téléchargeables gratuitement sur le site mentionné ci-dessous.

    Voir en ligne : Atypik [.biz] - Votre site facile à installer, à mettre à jour et performant à utiliser

  • Répondre à ce message

    16 octobre 2003 21:35 , par jul

    Désolé, mais tu ne réponds pas avec la question en terme "simplifiés" avec une démarche méthodique pour les neophytes. J’ai un blog et je cherche à faire des archives, genre (articles du 07/2003, du 08/2003...etc) Maintenant, je crois que c’est que ce que tu me propose de faire, encore faut il comprendre ta démarche... Par exemple,les lignes : $id_annee=intval($GLOBALS[’id_annee’]) ; $id_mois=intval($GLOBALS[’id_mois’]) ;, ou les met on ?

    Merci d’etre plus simple dans la démarche à suivre...

    Voir en ligne : Comment faire ?

  • Répondre à ce message

    29 août 2003 01:25 , par Sam

    C’est bien dommage... Il faut laisser SPIP récupérer un maximum d’enregistrements de la base (et fabriquer en conséquence un fichier PHP monstrueux), juste pour ensuite en sélectionner seulement certains... Bonjour les performances... :-/ Mais effectivement, je n’ai pas trouvé pour le moment d’autre solution pour faire des sélections à partir de variables passées dans l’URL qui ne soient pas les classiques id_xx. N’existe-t-il donc pas une meilleure solution...

  • Répondre à ce message

    18 juin 2003 13:04 , par Toulcaz

    Merci pour ce superbe article, bien pratique. Je suis en train de développer un weblog sous spip. Je veux mettre en place un petit calendrier permettant de retrouver les articles en cliquant sur une date. Ca marche désormais avec une précision journalière. Il me reste maintenant à faire en sorte que les dates s’affichent en gras quand il y a des articles et à rajouter une fonction mois précédent. Néanmoins, cet article m’a permis d’aller plus vite. Grâce à lui et SPIP, j’aurais réussi à développer ce blog en 2 jours.

    Voir en ligne : http://nico.cazals.free.fr/weblog

  • Répondre à ce message

    7 juin 2003 23:59 , par victorio

    Pour ma par j’ai pris une autre solution. Je sais pas ce que cela va donnée encore car je développe encore les pages, mais pour le moment ça colle a ce que je veux. J’ai donc deux sites qui marche en numéro pour cela j ?ai créé un groupe de mots nommé "numéro", ensuite j ?ai créé des mots nommé "#1" "#2" etc...

    Le premier publie les articles au fil du temps. Mais quand on passe au numéros suivant on peu imprimer les numéros précédents. Dans le second la date de parution de tous les articles du numéro est la même. Et tout les articles appartiennent a un seul numéro. Je n ?ai pour le moment pas trouver comment assigner automatiquement la date en fonction du numéro choisi mais faut dire aussi que je ne me suis pas posé la question. Pour l ?instant cela donne de bon résultats sans une seul ligne de code php, non pas que j ?en sois pas capable mais je préfère rester dans la logique SPIP standars . Mais comme mes sites son pas fini encore vous pourrez pas voir grand choses.

    Voir en ligne : Jeux d’Ombres, lumières sur les jeux de rôles amateurs.

  • Répondre à ce message

    1er mai 2003 18:09 , par Sébastien

    J’ai trouvé par hasard un autre moyen d’afficher les articles (ou les brèves) d’un mois et cela sans rajouter de php. C’est assez dégueulasse mais ça marche :

    <BOUCLE_archives(BREVES){id_rubrique}{annee=2003}{mois=$id_mot}{par date}{inverse}>#TITRE<br /></BOUCLE_archives>

    Il suffit ensuite d’appeler la page en rajoutant à la fin de l’url : id_mot=2 pour février par exemple.

    Vous pouvez voir un exemple là : http://www.essentielpc.com/s/rubriq...

    En fait, on détourne la variable $id_mot pour s’en servir de paramètre. Je pense que l’on peut faire la même chose avec une autre variable pour l’année. C’est pas très propre, je ne suis pas sûr qu’au niveau sécurité ce soit le top, mais ça permet d’éviter au serveur de faire plein de comparaisons inutiles sur les dates (en effet, dans l’exemple précédent, c’est le code php qui est mis en cache et qui est donc exécuté à chaque fois que l’on appelle la page).

    Voilà, je me disais que ça pourrait peut-être servir à quelqu’un.

    Voir en ligne : Essentiel PC

Pages 1 | 2

Répondre à cet article

Retour en haut de la page

Ça discute par ici

SPIP | Squelette | | Plan du site | Suivre la vie du site RSS 2.0