SPIP-Contrib

SPIP-Contrib

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

291 Plugins, 198 contribs sur SPIP-Zone, 94 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

  • Facteur

    21 janvier 2010 – 424 commentaires

    Un plugin pour regrouper toutes les fonctions avancées autour de l’envoi de courriels. Introduction SPIP propose une fonction générique envoyer_mail() pour envoyer un courriel. Elle est assez simple d’utilisation mais peut paraître limitée (...)

  • Owl Carousel 2

    30 novembre 2017 – 43 commentaires

    Owl Carousel est un diaporama jQuery adaptable aux différentes tailles d’écran, qu’on peut actionner par glisser, il utilise CSS3 mais il est compatible avec les vieux navigateurs, et il est aussi paramétrable. Le présent plugin permet d’utiliser (...)

  • GIS 4

    11 août 2012 – 1535 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

  • Le Couteau Suisse

    4 mai 2007 – 1861 commentaires

    Ce plugin propose d’introduire facilement de simples fonctionnalités supplémentaires à SPIP et qui s’avèrent rapidement indispensables ! Par exemple : le contrôle de nombreuses variables « cachées » de SPIP, des améliorations ou facilités typographiques, (...)

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 2533 commentaires

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins (...)