SPIP-Contrib

SPIP-Contrib

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

273 Plugins, 191 contribs sur SPIP-Zone, 35 visiteurs en ce moment

Accueil du site > Dates, calendriers et agendas > Tris par date > Seleccionar elementos por su día de publicación

Seleccionar elementos por su día de publicación

7 octobre 2005 – par Martin Gaitan

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

2 votes

He aquí un nuevo criterio para seleccionar elementos de un bucle publicados un determinado día de la semana.

Esta función, colocada en el archivo mes_fonctions.php3 añade un nuevo criterio de selección utilizable en cualquier bucle que tenga contexto de fecha. El nuevo criterio joursemaine toma un parámetro numérico, entre 0 y 6 que indica el día de la semana a seleccionar (0=Domingo 6=Sábado).

Por ejemplo, para tener todos los artículos publicados un Lunes lluvioso ;), se utilizará un bucle :

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

El código

  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. }

Algunas explicaciones

  1. Es necesario encontrar el bucle antes de agregarle una limitación (where) :$boucle = &$boucles[$idb];($boucles es la tabla de todos los bucles presentes en la página y $idb el nombre del bucle actual)
  1. Es necesario encontrar también la columna correcta de fecha, en función del tipo del bucle que sea, así pues :$table_date[$boucle->type_requete];que devuelve la columna de fecha para el tipo de bucle en cuestión.
  1. A continuación, se debe decir a qué tabla se hace referencia :$date = $boucle->id_table . ".$date";
  1. Se calcula el valor del parámetro
    if(!$crit->param[0]) {
      $jour = 0;
    } else
      $jour = calculer_liste($crit->param[0], array(), $boucles, $boucle->id_parent);
    • Si no se pasa un criterio, se toma 0 (domingo) por defecto
    • Si no, se « calcula » el criterio, así se puede pasar una baliza como parámetro si se quiere.
  1. Se construye la sentencia where de sql y se tiene en cuenta el not para invertir el criterio en caso de que esté presente el criterio inverse
  1. Probablemente, si se pasa una baliza como parámetro, el valor devuelto sea vacío. No se puede saber eso antes de haber calculado esta baliza, es necesario pues hacer la prueba :(($jour != '')?$jour:'0') que se evaluará en el último momento, cuando se conozca el valor de la baliza

Un ejemplo de utilización

Se puede ver un ejemplo de utilización en esta página del bloc de notas de desordre.net que construye una semana compuesta aleatoriamente a partir de 7 bucles del tipo

(ARTICLES){0,1}{par hasard}{joursemaine X}
Retour en haut de la page

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

  • Zpip-dist en HTML5

    15 juin 2010 – 10 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Une surcharge des squelettes Zpip-dist qui tire parti des nouvelles balises offertes par la spécification HTML5. Attention, ce plugin n’est plus compatible avec les nouvelles versions de Zpip, qui a connu plusieurs incompatibilités de nomenclature (...)

  • Une licence pour un article

    18 avril 2007 – 25 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Sur une idée originale de erational, voici un plugin permettant de lier une licence à un article.

  • Plugin Parrainage

    6 novembre 2011 – <blink style='color:red;'>public|spip|ecrire:commentaire</blink>

    Permettre aux utilisateurs d’inviter leurs contacts à s’inscrire sur le site. Description Vous connaissez le web moderne et son cortège d’applis toujours en version « beta » et de buzz sur le dernier réseau à la mode ? Vous voulez vous aussi vous y (...)

  • Formulaire de contact libre

    27 avril 2011 – 36 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Dans SPIP il n’y a pas un formulaire de contact, mais autant de formulaires de contact que d’auteurs. Cette phrase de Romy, dans son article Une page de contact dans mon SPIP, pointe un petit manque de SPIP. La possibilité d’insérer rapidement un (...)

  • Plugin Mot de Passe Compliqué

    2 novembre 2007 – 16 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin ajoute un testeur de complexité de mot de passes dans les formulaires de choix de mot de passe de SPIP.