From e91b83b76e43fab7775db7057184fc67d4f2b314 Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Thu, 14 Dec 2006 09:47:41 +0000 Subject: [PATCH] =?UTF-8?q?le=20flag=20boucle->statut=20en=20presence=20du?= =?UTF-8?q?=20critere=20statut=20est=20generalise=20:=20boucle->modificate?= =?UTF-8?q?ur['criteres'][xxx]=20est=20positionn=C3=A9=20a=20true=20pour?= =?UTF-8?q?=20chaque=20critere=20xxx=20rencontr=C3=A9=20permet=20aux=20plu?= =?UTF-8?q?gins=20de=20faire=20varier=20le=20contenu=20par=20defaut=20des?= =?UTF-8?q?=20boucles=20en=20fonction=20des=20criteres?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/public/boucles.php | 16 ++++++++-------- ecrire/public/criteres.php | 5 ++++- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/ecrire/public/boucles.php b/ecrire/public/boucles.php index 7141c818f4..aa046b55d2 100644 --- a/ecrire/public/boucles.php +++ b/ecrire/public/boucles.php @@ -58,7 +58,7 @@ function boucle_ARTICLES_dist($id_boucle, &$boucles) { $mstatut = $id_table .'.statut'; // Restreindre aux elements publies - if (!$boucle->statut) { + if (!$boucle->modificateur['criteres']['statut']) { if (!$GLOBALS['var_preview']) { $boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'"); if ($GLOBALS['meta']["post_dates"] == 'non') @@ -80,7 +80,7 @@ function boucle_AUTEURS_dist($id_boucle, &$boucles) { $mstatut = $id_table .'.statut'; // Restreindre aux elements publies - if (!$boucle->statut) { + if (!$boucle->modificateur['criteres']['statut']) { // Si pas de lien avec un article, selectionner // uniquement les auteurs d'un article publie if (!$GLOBALS['var_preview']) @@ -110,7 +110,7 @@ function boucle_BREVES_dist($id_boucle, &$boucles) { $mstatut = $id_table .'.statut'; // Restreindre aux elements publies - if (!$boucle->statut) { + if (!$boucle->modificateur['criteres']['statut']) { if (!$GLOBALS['var_preview']) $boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'"); else @@ -137,7 +137,7 @@ function boucle_FORUMS_dist($id_boucle, &$boucles) { $boucle->where[]= array("'='", "'$id_table." ."id_parent'", 0); } // Restreindre aux elements publies - if (!$boucle->statut) { + if (!$boucle->modificateur['criteres']['statut']) { if ($GLOBALS['var_preview']) $boucle->where[]= array("'IN'", "'$mstatut'", "'(\"publie\",\"prive\")'"); else @@ -160,7 +160,7 @@ function boucle_SIGNATURES_dist($id_boucle, &$boucles) { $boucle->from[$id_table] = "spip_signatures"; // Restreindre aux elements publies - if (!$boucle->statut) { + if (!$boucle->modificateur['criteres']['statut']) { $boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'"); } return calculer_boucle($id_boucle, $boucles); @@ -193,7 +193,7 @@ function boucle_RUBRIQUES_dist($id_boucle, &$boucles) { $mstatut = $id_table .'.statut'; // Restreindre aux elements publies - if (!$boucle->statut) { + if (!$boucle->modificateur['criteres']['statut']) { if (!$GLOBALS['var_preview']) if (!isset($boucle->modificateur['tout'])) $boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'"); @@ -244,7 +244,7 @@ function boucle_SYNDICATION_dist($id_boucle, &$boucles) { // Restreindre aux elements publies - if (!$boucle->statut) { + if (!$boucle->modificateur['criteres']['statut']) { if (!$GLOBALS['var_preview']) { $boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'"); } else @@ -264,7 +264,7 @@ function boucle_SYNDIC_ARTICLES_dist($id_boucle, &$boucles) { $mstatut = $id_table .'.statut'; // Restreindre aux elements publies, sauf critere contraire - if ($boucle->statut) {} + if ($boucle->modificateur['criteres']['statut']) {} else if ($GLOBALS['var_preview']) $boucle->where[]= array("'IN'", "'$mstatut'", "'(\"publie\",\"prop\")'"); else { diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php index 4f8136a683..7fbe7e88de 100644 --- a/ecrire/public/criteres.php +++ b/ecrire/public/criteres.php @@ -690,11 +690,14 @@ function calculer_critere_infixe($idb, &$boucles, $crit) { $table = $calculer_critere_externe($boucle, $boucle->jointures, $col, $desc, ($crit->cond OR $op !='='), $t); } } + // tag du critere pour permettre aux boucles de modifier leurs requetes par defaut en fonction de ca + $boucles[$idb]->modificateur['criteres'][$col] = true; + // ajout pour le cas special d'une condition sur le champ statut: // il faut alors interdire a la fonction de boucle // de mettre ses propres criteres de statut // http://www.spip.net/@statut (a documenter) - + // garde pour compatibilite avec code des plugins anterieurs, mais redondant avec la ligne precedente if ($col == 'statut') $boucles[$idb]->statut = true; // ajout pour le cas spécial des forums -- GitLab