SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano

273 Plugins, 191 contribs sur SPIP-Zone, 33 visiteurs en ce moment

Accueil du site > Dates, calendriers et agendas > Tris par date > Afficher les articles par semaine

Afficher les articles par semaine

24 août 2005 – par archiloque, mortimer – <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

1 vote

Voici des filtres et des boucles pour faire un affichage hebdomadaire des articles du site.

Lister les articles sur une période

On commence par faire une boucle qui affiche une liste entre certaines dates :

Cette boucle liste les articles dont la date est comprise entre #ENV{debut} et #ENV{fin}. C’est à dire entre la date passée dans l’url par « debut » et la date passée dans l’url par « fin ».

On pourra donc appeler une page contenant cette boucle avec une url du genre archive.php3?debut=2004-01-01&fin=2004-12-31 qui affiche les articles de l’année 2004.

Créer des liens hebdomadaires

Maintenant, il faudrait pouvoir générer ce genre de lien pour diriger les visiteurs vers la page qui affiche les articles de la bonne semaine.

On crée donc une boucle qui va lister toutes les semaines disponibles [1] :

Ici, on regarde tous les articles du site [2] et grâce au filtre unique, on affiche un lien pour chaque semaine contenant au moins un article.

Cette boucle dépend des filtres (à placer dans mes_fonctions.php3) suivant :

  • debut_semaine retourne la date du premier jour de la semaine (les semaines commencent le Dimanche),
  • fin_semaine retourne la date du dernier jour de la semaine,
  • semaine retourne le numéros de la semaine dans l’année.

Un démo de cette méthode se trouve dans les archives du bloc-notes du désordre.


Des liens pour un blog

Dans le cas très particulier où l’on utilise SPIP pour faire seulement un blog, et qu’il n’y a pas de page spécifique pour les articles — c’est à dire que les articles ne sont que des entrées sur la page d’une rubrique. Les liens entre articles (à base de artXXX) et ceux générés par la balise #URL_ARTICLE ne doivent pas faire un lien vers la page de l’article mais vers la page de la période contenant l’article — une page rubrique avec la semaine contenant l’article spécifié en paramètre dans l’url.

On peut faire cela en utilisant la fonctionnalité des url personnalisées en ajoutant ce code dans ecrire/mes_options.php3 :

Ensuite dans le squelette de la rubrique qui affiche les articles de la période mettre une ancre contenant l’id de l’article, par exemple :

Si vous avez un mélange de rubriques de blog et de non-blog [3], la même méthode peut-être utilisée en marquant avec un mot clé les rubriques constituant un blog [4], il faut alors modifier le début de la fonction de génération d’URL :

P.-S.

On pourrait utiliser cette méthode pour faire des affichages selon d’autres périodes (année scolaire, etc...) en faisant des filtres qui retournent la date du début et de la fin de la période voulue.

Si vous avez des propositions, n’hésitez pas à les ajouter dans le forum ou sur le wiki.

Notes

[1pour faire des listes imbriquées selon l’année, voir l’article « Usage du filtre “unique” pour classer des articles ».

[2mais on pourrait ajouter d’autres critères, pour limiter la rubrique par exemple.

[3c’est à dire un ou plusieurs rubriques de blog avec un ou plusieurs rubriques n’étant pas des blogs

[4le même mot-clé pourra servir dans le squelette de rubrique pour permuter entre un affichage normal et un affichage blog

Retour en haut de la page

Vos commentaires

  • Le 12 août 2007 à 18:33, par zerocool En réponse à : Afficher les articles par semaine

    bonjour
    j’aimerai faire la meme chose mais par mois est ce quelqu’un peux m’aider
    merci

    • Le 31 août 2007 à 22:08, par michel En réponse à : Afficher les articles par semaine

      voici une petite contribution pour un affichage par mois
      si tu veux afficher plusieurs mois du dois remplacer 31 par le nombre de jours que tu souhaites afficher (ex : 61 pour deux mois)

      function debut_mois($date)
      $ladate = strtotime($date) ;
      return date(’Y-m-d’,$ladate - (24*3600*date(’d’,$ladate))) ;

      function fin_mois($date)
      $ladate = strtotime($date) ;
      return date(’Y-m-d’,$ladate + (24*3600*(31-date(’d’,$ladate)))) ;

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d'abord sur gravatar.com (gratuit et indolore) et n'oubliez pas d'indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Zpip-dist en HTML5

    15 juin 2010 – 10 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Une surcharge des squelettes Zpip-dist qui tire parti des nouvelles balises offertes par la spécification HTML5. Attention, ce plugin n’est plus compatible avec les nouvelles versions de Zpip, qui a connu plusieurs incompatibilités de nomenclature (...)

  • Une licence pour un article

    18 avril 2007 – 25 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Sur une idée originale de erational, voici un plugin permettant de lier une licence à un article.

  • Plugin Parrainage

    6 novembre 2011 – <blink style='color:red;'>public|spip|ecrire:commentaire</blink>

    Permettre aux utilisateurs d’inviter leurs contacts à s’inscrire sur le site. Description Vous connaissez le web moderne et son cortège d’applis toujours en version « beta » et de buzz sur le dernier réseau à la mode ? Vous voulez vous aussi vous y (...)

  • Formulaire de contact libre

    27 avril 2011 – 36 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Dans SPIP il n’y a pas un formulaire de contact, mais autant de formulaires de contact que d’auteurs. Cette phrase de Romy, dans son article Une page de contact dans mon SPIP, pointe un petit manque de SPIP. La possibilité d’insérer rapidement un (...)

  • Plugin Mot de Passe Compliqué

    2 novembre 2007 – 16 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin ajoute un testeur de complexité de mot de passes dans les formulaires de choix de mot de passe de SPIP.