SPIP-Contrib

SPIP-Contrib

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

288 Plugins, 197 contribs sur SPIP-Zone, 175 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 ?
  • [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

  • Refonte de l’identité graphique

    10 juillet – 32 commentaires

    Lors de la SPIP Party 2017 à Toulouse, un nouveau contributeur est venu nous présenter son travail sur une refonte du logo. Au delà de la refonte du logo, c’est une toute nouvelle identité graphique pour SPIP que Jordan nous propose. Voici une (...)

  • Agenda Fullcalendar facile

    29 octobre 2016 – 34 commentaires

    Dans un précédent article, nous expliquions comment afficher un agenda Fullcalendar sur son site avec le plugin agenda. Cependant, ceci nécessite des manipulation de squelettes, ce qui n’est pas toujours évident lorsqu’on débute. La présente (...)

  • La Fabrique

    20 avril 2012 – 315 commentaires

    La Fabrique est un outil pour webmestres ou développeurs qui souhaitent créer des plugins. La Fabrique est capable de générer le code source minimal d’un plugin pour SPIP 3 (elle accélère donc le démarrage d’un plugin) et peut s’occuper également de (...)

  • Formulaire upload

    25 septembre 2012 – 34 commentaires

    Ce plugin permet d’uploader des documents depuis l’espace public Objectifs Ce plugin permet d’ajouter un formulaire dans l’espace public pour uploader et gérer des fichiers. A priori, il peut se greffer sur tous types objets SPIP : articles, (...)

  • Publier archivelist.txt via svn/terminal

    10 août 2009 – 11 commentaires

    Objectif : mettre à jour l’index archivelist.txt Environnement : commandes svn via terminal Si vous désirez voir publié dans la zone la version paquet de votre contribution, il faut ajouter la ligne nécessaire dans le fichier archivelist.txt. (...)

Ça spipe par là