SPIP-Contrib

SPIP-Contrib

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

288 Plugins, 197 contribs sur SPIP-Zone, 186 visiteurs en ce moment

Accueil > Dates, calendriers et agendas > Affichage selon dates > Pense-bête pour le critère age

Pense-bête pour le critère {age}

23 octobre 2013 – par Thiébaut – commentaires

10 votes

Ceci est une « contribution pédagogique », qui montre par l’exemple comment développer une nouvelle fonctionnalité pour SPIP.

Quand on découvre le critère {age}, on a parfois du mal à en comprendre la logique. Une fois cette logique comprise, on a parfois du mal à s’en souvenir. Cette modeste contribution est juste là pour servir de pense-bête.

A la différence du critère {date}, qui permet de sélectionner un article en fonction de la date passée dans l’URL [1], le critère {age} sélectionne les articles en fonction de la durée qui sépare leur date de publication en ligne de la date courante [2].

Avec le plugin Agenda, on a même la possibilité d’utiliser deux variantes pour la gestion des événements : {age_debut} et {age_fin}

Quelques tableaux pour comprendre la logique de SPIP

Utilisation du critère {age} pour marquer une date de début
Age Comparateur Valeur C’est à dire Ce qui signifie Et si rien d’autre n’est précisé...
age <= -1 +1 jour depuis demain... jusqu’à la fin du monde
age <= 0 aujourd’hui depuis aujourd’hui... jusqu’à la fin du monde
age <= 1 -1 jour depuis hier... jusqu’à la fin du monde
age <= 2 -2 jours depuis avant-hier... jusqu’à la fin du monde
age <= 365 -365 jours depuis un an... jusqu’à la fin du monde
Utilisation du critère {age} pour marquer une date de fin
Age Comparateur Valeur C’est à dire Ce qui signifie Et si rien d’autre n’est précisé...
age >= 1 -1 jour jusqu’à hier depuis l’aube des temps
age >= 0 aujourd’hui jusqu’à aujourd’hui depuis l’aube des temps
age >= -1 +1 jour jusqu’à demain depuis l’aube des temps
age >= -2 +2 jours jusqu’à après demain depuis l’aube des temps
age >= -365 +365 jours jusque dans un an depuis l’aube des temps

Remarque : les tableaux ci-dessus utilisent les comparateurs non stricts <= ou >=... c’est à dire incluant la valeur spécifiée. L’utilisation des comparateurs stricts < ou > exclut les valeurs spécifiées. C’est à dire :

  • {age>=1} signifie jusqu’à hier inclus
  • {age>1} signifie jusqu’à hier non inclus , donc jusqu’à avant-hier
Frise chronologique récapitulative représentant la logique de spip
Valeur SPIP 365 30 7 1 0 -1 -7 -30 -365
Traduction il y a 1 an il y a 1 mois il y a 1 semaine hier 0 demain dans 1 semaine dans 1 mois dans 1 an

Quelques exemples d’utilisation

  • Sur ma page d’accueil, je souhaite afficher les évènements en cours et programmés jusque dans les 30 prochains jours, en commençant par ceux qui s’achèveront en premier :
    <BOUCLE_alaffiche(EVENEMENTS){age_fin<=0}{age_debut>=-30}{par date_fin}{statut=publie}>
  • Sur les articles auxquels les évènements sont associés, je mets deux boucles :
    1. Une boucle avant le texte de l’article, pour afficher les évènements en cours ou à venir dans les 180 prochains jours :
      <BOUCLE_lesevenementsalaffiche(EVENEMENTS){id_article} {age_fin<=0}{age_debut>=-180} {par date_fin}>
    2. Une boucle après le texte de l’article, pour afficher les évènements passés, jusqu’à 180 jours en arrière :
      <BOUCLE_lesevenementspasses(EVENEMENTS){id_article} {age_debut<=180}{age_fin>0} {par date_fin}>

P.-S.

  1. N’hésitez pas à rajouter d’autres exemples dans le forum, pour compléter l’article.
  2. Dans la page « Astuces longues » du carnet wiki, vous trouverez la définition d’un critère ages pour comparer l’âge en minutes, heures, mois ou années.

Dernière modification de cette page le 28 décembre 2016

Retour en haut de la page

Vos commentaires

  • Le 23 juin à 11:22, par Keny972 En réponse à : Pense-bête pour le critère {age}

    Bonjour,

    J’essaye d’utiliser ce critère pour un objet éditorial que j’ai crée via nouveau plugin. mais du coup dans une boucle pour cet objet INCIDENT, spip ne reconnait pas le critère. Y a t-il moyen de le redéfinir pour mon nouvel objet ?

    1. <BOUCLE_incidents (INCIDENTS) {etat = clos}{par date_debut}{inverse}{age < 7} >
    • Le 23 juin à 11:26, par Maïeul En réponse à : Pense-bête pour le critère {age}

      Normalement cela dépend de la bonne déclaration des champs dans ton declarer_tables_objets_sql

    • Le 23 juin à 11:45, par Keny972 En réponse à : Pense-bête pour le critère {age}

      ce serait le champ date_debut ?
      Voici une partie de mon code :

      //-- Table INCIDENTS ------------------------------------------
         $incidents = array(
             "id_incident"  => "bigint(21) NOT NULL AUTO_INCREMENT",
             "date_debut"  =>  "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
             "date_fin"  =>  "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
             "titre" =>  "text NOT NULL",
             "descriptif"  =>  "text NOT NULL",
             "engins_engages"  =>  "text NOT NULL",
             "adresse"  =>  "text NOT NULL",
             "nb_sp_pres"  =>  "bigint(11) DEFAULT '0' NOT NULL",
             "statut"  =>  "varchar(20) DEFAULT '0' NOT NULL",
             "id_auteur"  =>  "bigint(21) NOT NULL",
             "maj"  =>  "TIMESTAMP",
             'nb_cs' => 'bigint(15) DEFAULT \'0\'',
             'etat' => 'text NOT NULL',
         );

      $incident_key = array(
             "PRIMARY KEY"  =>  "id_incident",
             "KEY id_auteur"  =>  "id_auteur"
         );
      $tables_principales["spip_incidents"] = array(
             "type" => "incident",
             "principale" => "oui",
             "field" => $incidents,
             "key" => $incident_key,
             "texte_objets" => "incident:titre_incidents"
         );
    • Le 23 juin à 11:48, par Maïeul En réponse à : Pense-bête pour le critère {age}

      ah bah du coup ce sera {age_debut}> et {age_fin} selon le champ date correspondant.

    • Le 23 juin à 12:34, par Keny972 En réponse à : Pense-bête pour le critère {age}

      Merci, j’aurais pu chercher un moment.
      :D

    Répondre à ce message

  • Le 6 octobre 2016 à 11:54, par Eric En réponse à : Pense-bête pour le critère {age}

    Ok, je pense avoir trouvé : {age_debut<1}{age_fin>-1}

    Répondre à ce message

  • Le 6 octobre 2016 à 11:48, par Eric En réponse à : Pense-bête pour le critère {age}

    Bonjour, j’éprouve des difficultés à afficher les événements (plugin agenda) de toute la journée de 00:01 à 23:59 ? Quelqu’un connaît-il les bons critères ?

    Pour le moment j’utilise une boucle avec les critères {age_debut<=1}{age_fin>=-1}

    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

  • Le Squelette Zpip

    11 novembre 2009 – 363 commentaires

    Ce squelette n’est plus maintenu, il est remplacé par SPIPr-dist Zpip est un modèle de squelette réutilisable, modulaire et disposant d’une galerie de thèmes. Ce modèle de squelette rend l’installation d’un site avec son thème plus facile, et la (...)

  • Calendrier Mini 2.0

    19 mai 2012 – 243 commentaires

    Ce plugin ajoute la balise #CALENDRIER_MINI qui insère un petit widget de navigation par mois dans les dates des évènements. Fonctionnement du mini calendrier Le mini calendrier présente un mois à la fois. Les jours du mois comportant des (...)

  • Galleria (fr)

    16 novembre 2011 – 183 commentaires

    Une galerie d’image qui utilise la librairie javascript Galleria. Description Ce plugin vous permet d’ajouter des galeries d’images à vos articles. La galerie créée utilise la librairie javascript Galleria. Le plugin propose un modèle nommé (...)

  • PortePlume Equation

    10 juin 2012 – commentaires

    Version pour spip 2.1 et 3.0 du plugin Spip Equation Ce plugin rend plus simple l’intégration dans un texte de formules mathématiques et d’équations. Dans ce but il ajoute un groupe de boutons dans la barre typographique qui permet d’intégrer les (...)

  • Agenda 2.0

    3 novembre 2008 – 1101 commentaires

    Voici la version pour SPIP 2.0 du Plugin Agenda pour SPIP 1.9.2, avec une interface remaniée pour encore plus de plaisir. Pour une documentation concernant l’utilisation d’Agenda 3 pour SPIP 3, veuillez pour l’instant vous référer à SPIP 3, Agenda (...)