SPIP-Contrib

SPIP-Contrib

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

289 Plugins, 197 contribs sur SPIP-Zone, 54 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

11 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 2017 à 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 2017 à 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 2017 à 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 2017 à 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 2017 à 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 ?
  • [Se connecter]

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

  • Personnalisation graphique du squelette SoyezCréateurs

    19 août 2009 – 97 commentaires

    Il est possible de personnaliser l’affichage du squelette SoyezCréateurs de manière plus ou moins profonde. Changement dans les couleurs via CFG La page de CFG des couleurs de SoyezCreateurs : ecrire/ ?exec=cfg&cfg=soyezcreateurs_couleurs (...)

  • Agenda 2.0 et ultérieur

    3 novembre 2008 – 1140 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. La lecture de Calendrier Mini 2.0 est également chaudement recommandée, étant donné que Agenda 3 est dépendant de ce (...)

  • Champs Extras 3

    16 janvier 2012 – 634 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)

  • Éditorial (HTML5UP)

    27 novembre 2017 – 61 commentaires

    Squelette SPIP pour intégrer le modèle Editorial de HTML5UP https://html5up.net/editorial Configuration La page de configuration permet quelques réglages. On y défini la couleur principale du site, des informations de contact et le contenu de la (...)

  • Timeline Me

    18 janvier – 10 commentaires

    TimelineMe - ​http://mickaelr.github.io/jquery-timelineMe/ - est un plugin jquery qui permet d’afficher des informations sur une ligne de temps. Le présent plugin pour SPIP l’utilise et propose un modèle pour afficher les articles d’une rubrique de (...)