From c206f2648169ee8e205eab65073102cd914d897c Mon Sep 17 00:00:00 2001 From: renato <renato@rezo.net> Date: Sat, 21 Feb 2009 20:37:21 +0000 Subject: [PATCH] introduit les valuers date_default et date_redac_default dans le contexte quand SPIP ajoute la date d'office. --- ecrire/public/criteres.php | 19 +++++++++++++------ ecrire/public/parametrer.php | 10 ++++++---- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php index 851c77ee2c..dfd271bbcf 100644 --- a/ecrire/public/criteres.php +++ b/ecrire/public/criteres.php @@ -723,9 +723,13 @@ function calculer_critere_DEFAUT($idb, &$boucles, $crit) // inserer la condition (cf {lang?}) // traiter a part la date, elle est mise d'office par SPIP, if ($crit->cond) { - if (tester_param_date('articles', $col)) - $pred = '@$Pile["env"][\'' . $col ."']"; - else $pred = calculer_argument_precedent($idb, $col, $boucles); + $pred = calculer_argument_precedent($idb, $col, $boucles); + if ($col == "date" OR $col == "date_redac") { + if($pred == "\$Pile[0]['".$col."']") { + $pred = "(\$Pile[0]['{$col}_default']?'':$pred)"; + } + } + if ($op == '=' AND !$crit->not) $where = array("'?'", "(is_array($pred))", critere_IN_cas ($idb, $boucles, 'COND', $arg, $op, array($pred), $col), @@ -947,9 +951,12 @@ function calculer_critere_infixe_ops($idb, &$boucles, $crit) $val = 'id_parent'; // un critere conditionnel sur date est traite a part // car la date est mise d'office par SPIP, - if ($crit->cond AND tester_param_date('articles', $col)) - $val ='@$Pile["env"][\'' . $col ."']"; - else $val = calculer_argument_precedent($idb, $val, $boucles); + $val = calculer_argument_precedent($idb, $val, $boucles); + if ($crit->cond AND ($col == "date" OR $col == "date_redac")) { + if($val == "\$Pile[0]['".$col."']") { + $val = "(\$Pile[0]['{$col}_default']?'':$val)"; + } + } $val = array(kwote($val)); } } else { diff --git a/ecrire/public/parametrer.php b/ecrire/public/parametrer.php index b65cad6670..48c4794525 100644 --- a/ecrire/public/parametrer.php +++ b/ecrire/public/parametrer.php @@ -89,13 +89,15 @@ function public_parametrer_dist($fond, $contexte='', $cache='', $connect='') { // Rajouter d'office ces deux parametres // (mais vaudrait mieux que le compilateur sache le simuler // car ca interdit l'usage de criteres conditionnels dessus). - if (!isset($contexte['date'])) + if (!isset($contexte['date'])) { $contexte['date'] = date("Y-m-d H:i:s"); - else $contexte['date'] = normaliser_date($contexte['date']); + $contexte['date_default'] = true; + } else $contexte['date'] = normaliser_date($contexte['date']); - if (!isset($contexte['date_redac'])) + if (!isset($contexte['date_redac'])) { $contexte['date_redac'] = date("Y-m-d H:i:s"); - else $contexte['date_redac'] = normaliser_date($contexte['date_redac']); + $contexte['date_redac_default'] = true; + } else $contexte['date_redac'] = normaliser_date($contexte['date_redac']); // Passer le nom du cache pour produire sa destruction automatique $page = $fonc(array('cache' => $cache), array($contexte)); -- GitLab