SPIP-Contrib

SPIP-Contrib

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

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

Accueil du site > Dates, calendriers et agendas > Tris par date > Toutes les brèves d’une année sur une page

Toutes les brèves d’une année sur une page

25 mai 2003 – par rabe – <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Présenter toutes les brèves d’une même année sur une page, c’est possible avec une seule boucle dans Spip 1.6 . Néanmoins si vous êtes dans une version antérieure (et que vous voulez y rester), c’est aussi possible avec un peu de PHP.

Objectif

Présenter toutes les brèves d’un site sur une même page en ne mettant que les brèves d’une même année sur la page.

Sous-objectifs

-  Par défaut, présenter les brèves de l’année en cours ;
-  Permettre la navigation d’une année à l’autre ;
-  Ne pas avoir à modifier le squelette à chaque début d’année ;
-  Récupérer les anciennes brèves (quand le site était en HTML statique avant que le webmestre ne découvre ce merveilleux outil qu’est SPIP).

Principe

On créé un fichier de squelette spécifique qu’on appelle news.php3 (on créé aussi son homologue news.html).

Pour déterminer l’année à afficher, on se base sur une variable transmise par l’URL qu’on appelle var_nav_year(le « var_ » est là pour optimiser le cache de SPIP)
L’appel de la page « news » doit se faire de la forme news.php3 ?var_nav_year=AAAA où AAAA est l’année désirée.

Haut dans le squelette, on vérifie au préalable que var_nav_year est positionnée. Si non, on la force sur l’année en cours.
On en profite pour ramener systématiquement toute année demandée antérieure à la première année dispo sur cette première année (ici 2000. Si l’URL a 1998 dans var_nav_year, on remet 2000).

De même, si on demande une année postérieure à l’année en cours, on ramène var_nav_year à l’année en cours.
On conserve l’année à retenir dans une variable PHP $id_annee

Une fois que id_annee est renseignée, on va afficher les news correspondant à cette année.

L’utilisation des variables étant difficile au sein des boucles SPIP, on construit une boucle BREVES qui affiche toutes les news du site.
A l’intérieur de cette boucle, on introduit un bout de PHP qui fait la sélection des brèves en comparant l’année de la brève avec id_annee.

En dehors de la boucle, si on est sur la plus ancienne année, on fait un include de la « vieille » page statique des news :

( Normalement, la boucle n’a rien ramené !)

Reste le problème de la navigation.
Pour interroger les brèves d’une année antérieure, on vérifie qu’on est pas sur la dernière année dispo :

Pour interroger les brèves d’une année postérieure, on vérifie qu’on est pas sur l’année courante :

Pour la présentation, on peut écrire en haut de page :

Un exemple ?

Un exemple ici http://www.dreamnev.org/fr/news.php3
(désolé, je suis nul en présentation)

Limites du projet

-  Que se passe-t-il si le 1er janvier d’une nouvelle année, il n’y a pas encore de news pour cette année ?
-  D’une manière générale, l’absence de news pour une année donnée n’est pas gérée.

Contact

Je suis à votre disposition : Raphaël BESSON

Avril 2003

Bon courage !

P.-S.

Note des admin : Si vous êtes à jour dans les versions de SPIP, 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(BREVES){par date}{annee_relatif=0}>

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

Voir la documentation sur la gestion des dates

Retour en haut de la page

Vos commentaires

  • Le 29 mai 2003 à 14:30, par silicium En réponse à : > Toutes les news d’une année sur une page

    une erreur s’est glissée dans le code !

    Dans le paragraphe Pour interroger les brèves d’une année postérieure, on vérifie qu’on est pas sur l’année courante :

    Il faut enlever la parenthèse fermante de :

    echo "<a href='news.php3?var_nav_year=".($id_annee + 1)."'>");

    en echo "<a href='news.php3?var_nav_year=".($id_annee + 1)."'>";

    Je déconseille de coder en dur le nom du script. si on le change il faut retourner dans le script modifier le code à la main. A la place, utilisez $PHP_SELF

    Exemple : echo "<a href=\"$PHP_SELF?var_nav_year=" . ($id_annee - 1)."\">";

    Répondre à ce message

  • Le 29 mai 2003 à 22:52, par Groelk En réponse à : > Toutes les news d’une année sur une page

    Et comment faire pour afficher sur une même page brèves ET articles classés ENSEMBLE par année de publication ?

    • Le 31 mai 2003 à 22:24, par Raphael BESSON En réponse à : > Toutes les news d’une année sur une page

      Salut,

      Pour avoir les news et les articles, il suffit de faire deux boucles sur le même principe l’une en dessous de l’autre : la première sur les brèves, la seconde sur les articles.

      A+

    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.