SPIP-Contrib

SPIP-Contrib

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

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

Accueil > Dates, calendriers et agendas > Tris par date > Sélectionner les éléments par leur jour de publication

Sélectionner les éléments par leur jour de publication

22 septembre 2005 – par archiloque, mortimer – commentaires

Toutes les versions de cet article : [français] [français]

1 vote

Voici un nouveau critère pour limiter une boucle à des éléments publiés seulement un certain jour de la semaine.

Cette fonction, placée dans votre fichier mes_fonctions ajoute à un nouveau critère utilisable dans n’importe quelle boucle ayant une date. Le nouveau critère joursemaine prend un paramètre numérique, entre 0 et 6 qui indique le jour de la semaine à sélectionner (0=Dimanche, 6=Samedi).

Par exemple, pour avoir tous les articles publiés un Lundi pluvieux, on utilisera une boucle :

  1. <BOUCLE_lundi(ARTICLES) {joursemaine 1}>
  2. #TITRE
  3. </BOUCLE_lundi>

Télécharger

Le code

  1. function critere_joursemaine($idb, &$boucles, $crit) {
  2. global $table_date;
  3. $boucle = &$boucles[$idb];
  4. $date = $table_date[$boucle->type_requete];
  5. $date = $boucle->id_table . ".$date";
  6. if(!$crit->param[0]) {$jour = "'0'";}
  7. else
  8. $jour = calculer_liste($crit->param[0], array(), $boucles, $boucle->id_parent);
  9. $boucle->where[] = "DATE_FORMAT($date, '%w') ".(($crit->not)?'!=':'=')." \".(($jour != '')?$jour:'0').\"";
  10. }

Télécharger

Quelques explications

  1. il faut trouver la boucle avant de lui ajouter une limitation (where) :
    $boucle = &$boucles[$idb];
    ($boucles étant le tableau de toutes les boucles de la page et à $idb
    le nom de la boucle actuelle)
  2. il faut aussi trouver la bonne colonne de date, en fonction du type de la
    boucle, il y a donc :
    $table_date[$boucle->type_requete];
    qui retourne la colonne de date pour ce type de boucle.
  3. ensuite, on doit aussi dire à quelle table on fait référence :
    $date = $boucle->id_table . ".$date";
  4. On calcule la valeur du paramètre :
    if(!$crit->param[0]) {
      $jour = 0;
    } else
      $jour = calculer_liste($crit->param[0], array(), $boucles, $boucle->id_parent);
    • Si y’en a pas, c’est qu’on a passé 0 (dimanche)
    • sinon, on « calcule » le critère, ainsi on peut passer une balise en paramètre si on veut.
  5. on construit le where et on prend en compte le « not » pour
    inverser le critère au cas ou.
  6. il se peut que, si l’on passe une balise en paramètre, la valeur retourné soit vide. On ne peut pas savoir cela avant d’avoir calculé cette balise, il faut donc faire le test :
    (($jour != '')?$jour:'0') qui sera évalué au dernier moment, quand on connait la valeur de la balise.

Un exemple d’utilisation

On peut voir un exemple d’utilisation sur cette page du bloc note du desordre qui construit une semaine composite prise au hasard à partir de 7 boucles du genre

(ARTICLES){0,1}{par hasard}{joursemaine X}

NB : des utilisations moins tordues sont surement possibles

Dernière modification de cette page le 25 novembre 2011

Retour en haut de la page

Vos commentaires

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

  • Plugin Modèles media

    25 avril 2011 – 180 commentaires

    Les modèles , et produisent chacun un résultat différent et ce résultat, pour les images, dépend du fait qu’elle soit dans le portfolio ou non. Ce plugin propose une nouvelle série de modèles ayant un comportement unifié et indépendant du mode des (...)

  • Qrcode

    3 novembre 2010 – 45 commentaires

    Les QrCodes sont des codes barres lisibles essentiellement par les téléphones portables et permettent d’échanger avec ceux-ci diverses informations, et en particulier des liens. Ce plugin à pour objet de permettre à spip d’utiliser des QrCodes pour (...)

  • Speedsyndic pour SPIP 2 et SPIP 3

    11 octobre 2010 – 27 commentaires

    Ce plugin est une version compatible spip 2.0.x / 2.1 / 3.1 du plugin Speedsyndic Note : Une bonne partie du texte ci-dessous a été pompé de cet article, expliquant la version précédente du plugin. je n’ai fait qu’adapter le code pour spip 2, (...)

  • LIM : alléger l’espace privé

    20 avril 2015 – 41 commentaires

    Ce plugin permet de désactiver l’affichage de blocs ou de boutons, présents par défaut dans SPIP mais qui peuvent devenir inutiles dans le cadre de votre projet. Il allège du coup l’interface d’édition et supprime d’éventuels risques de confusion (...)

  • HTML Purifier

    5 janvier 2011 – commentaires

    Pour sécuriser l’affichage de certains textes (ceux qui proviennent potentiellement non pas des rédacteurs, mais de visiteurs non enregistrés ou de contributeurs externes, comme les forums ou les contenus des sites syndiqués), SPIP utilise en interne (...)

Ça spipe par là