From 21fcb7d2daebc3101510a1fe1e48225f079e5cbd Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Fri, 30 Sep 2005 22:30:50 +0000 Subject: [PATCH] trois patches : - "0" n'est pas vide (pif) - verifier que les champs de date existent avant de trier 'par date', etc (pif) - le critere {mode=image} etait casse (jdegreef) - http://forum.spip.org/fr_177334.html --- ecrire/articles.php3 | 2 +- ecrire/auteur_infos.php3 | 4 +++- ecrire/breves_voir.php3 | 2 +- ecrire/mots_edit.php3 | 2 +- ecrire/sites.php3 | 2 +- inc-compilo.php3 | 28 +++++++++++++++------------- inc-criteres.php3 | 28 ++++++++++++++++------------ 7 files changed, 38 insertions(+), 30 deletions(-) diff --git a/ecrire/articles.php3 b/ecrire/articles.php3 index 1c6fed582d..a8d9652ee1 100644 --- a/ecrire/articles.php3 +++ b/ecrire/articles.php3 @@ -209,7 +209,7 @@ if ($changer_virtuel && $flag_editable) { $result = spip_query($query); } -if ($titre && !$ajout_forum && $flag_editable) { +if (strval($titre)!=='' AND !$ajout_forum AND $flag_editable) { $champs = array('surtitre', 'titre', 'soustitre', 'descriptif', 'nom_site', 'url_site', 'chapo', 'texte', 'ps'); $champs_version = array(); foreach ($champs as $nom_champ) { diff --git a/ecrire/auteur_infos.php3 b/ecrire/auteur_infos.php3 index a9e0f2030d..8873e4874c 100644 --- a/ecrire/auteur_infos.php3 +++ b/ecrire/auteur_infos.php3 @@ -78,7 +78,9 @@ if ($id_auteur) { // // Modification (et creation si besoin) // -if ($nom) { // si on poste un nom, c'est qu'on modifie une fiche auteur + +// si on poste un nom, c'est qu'on modifie une fiche auteur +if (strval($nom)!='') { $auteur['nom'] = corriger_caracteres($nom); // login et mot de passe diff --git a/ecrire/breves_voir.php3 b/ecrire/breves_voir.php3 index 1bfffbc7bd..8716abdc55 100644 --- a/ecrire/breves_voir.php3 +++ b/ecrire/breves_voir.php3 @@ -42,7 +42,7 @@ if (($id_breve == 0) AND ($new == "oui")) { } -if ($titre AND $modifier_breve) { +if (strval($titre)!='' AND $modifier_breve) { $titre = addslashes($titre); $texte = addslashes($texte); $lien_titre = addslashes($lien_titre); diff --git a/ecrire/mots_edit.php3 b/ecrire/mots_edit.php3 index 0ea3c2895d..42ee8a2c75 100644 --- a/ecrire/mots_edit.php3 +++ b/ecrire/mots_edit.php3 @@ -28,7 +28,7 @@ if ($connect_statut == '0minirezo' AND $connect_toutes_rubriques) { $result = spip_query($query); } - if ($titre_mot) { + if (strval($titre_mot)!='') { if ($new == 'oui' && $id_groupe) { $id_mot = spip_abstract_insert("spip_mots", '(id_groupe)', "($id_groupe)"); diff --git a/ecrire/sites.php3 b/ecrire/sites.php3 index e74e65de23..4d056ce127 100644 --- a/ecrire/sites.php3 +++ b/ecrire/sites.php3 @@ -118,7 +118,7 @@ if ($nouveau_statut AND $flag_administrable) { } } -if ($nom_site AND $modifier_site == 'oui' AND $flag_editable) { +if (strval($nom_site)!='' AND $modifier_site == 'oui' AND $flag_editable) { $nom_site = addslashes($nom_site); $url_site = addslashes($url_site); $descriptif = addslashes($descriptif); diff --git a/inc-compilo.php3 b/inc-compilo.php3 index 807d3c50de..bf481205b7 100644 --- a/inc-compilo.php3 +++ b/inc-compilo.php3 @@ -487,20 +487,22 @@ function compile_cas($tableau, $descr, &$boucles, $id_boucle='') { erreur_squelette(_T('zbug_info_erreur_squelette')); } // switch - if ($avant == "''") $avant = ''; - if ($apres == "''") $apres = ''; - if ($avant||$apres||($altern!="''")) - { - $t = '$t' . $descr['niv']; - $res = (!$avant ? "" : "$avant . ") . - $t . - (!$apres ? "" : " . $apres"); - $code = "(($t = $code) ?\n\t$tab($res) :\n\t$tab($altern))"; - } + if ($avant == "''") + $avant = ''; + if ($apres == "''") + $apres = ''; + if ($avant||$apres||($altern!="''")) { + $t = '$t' . $descr['niv']; + $res = (!$avant ? "" : "$avant . ") . + $t . + (!$apres ? "" : " . $apres"); + $code = "((strval($t = $code)!='')" + ." ?\n\t$tab($res) :\n\t$tab($altern))"; + } if ($code != "''") - $codes[]= (($GLOBALS['var_mode_affiche'] == 'validation') ? - "array(" . $p->ligne . ", '$commentaire', $code)" - : (($GLOBALS['var_mode_affiche'] == 'code') ? + $codes[]= (($GLOBALS['var_mode_affiche'] == 'validation') ? + "array(" . $p->ligne . ", '$commentaire', $code)" + : (($GLOBALS['var_mode_affiche'] == 'code') ? "\n// $commentaire\n$code" : $code)); } // foreach diff --git a/inc-criteres.php3 b/inc-criteres.php3 index 74e4d1d2bb..8c9d3a9af2 100644 --- a/inc-criteres.php3 +++ b/inc-criteres.php3 @@ -232,9 +232,10 @@ function critere_parinverse($idb, &$boucles, $crit, $sens) { $boucle->select[] = $texte . " AS $as"; $order = "'$as'"; } - else if ($par == 'date') { - $order = "'".$boucle->id_table.".". - $GLOBALS['table_date'][$boucle->type_requete] + else if ($par == 'date' + AND isset($GLOBALS['table_date'][$boucle->type_requete])) { + $order = "'".$boucle->id_table."." + .$GLOBALS['table_date'][$boucle->type_requete] ."'"; } // par champ. Verifier qu'ils sont presents. @@ -309,8 +310,8 @@ function critere_agenda($idb, &$boucles, $crit) $parent = $boucles[$idb]->id_parent; - // les valeur $date et $type doivent etre connus à la compilation - // autrement dit ne pas être des champs + // les valeurs $date et $type doivent etre connus a la compilation + // autrement dit ne pas etre des champs $date = array_shift($params); $date = $date[0]->texte; @@ -514,15 +515,18 @@ function calculer_critere_infixe($idb, &$boucles, $crit) { $col = 'id_rubrique'; // Cas particulier : expressions de date - else if (ereg("^(date|mois|annee|heure|age|age_relatif|jour_relatif|mois_relatif|annee_relatif)(_redac)?$", $col, $regs)) { - list($col, $col_table) = - calculer_critere_infixe_date($idb, $boucles, $regs[1], $regs[2]); - } + else if ($table_date[$type] + AND preg_match(",^(date|mois|annee|heure|age|" + ."age_relatif|jour_relatif|mois_relatif|annee_relatif)(_redac)?$,", + $col, $regs)) { + list($col, $col_table) = + calculer_critere_infixe_date($idb, $boucles, $regs[1], $regs[2]); + } // HACK : selection des documents selon mode 'image' - // (a creer en dur dans la base) - else if ($type == 'documents' AND $col == 'mode' AND $val[0] == "'image'") - $val[0] = "'vignette'"; + // => on cherche en fait 'vignette' + else if ($type == 'documents' AND $col == 'mode') + $val[0] = str_replace('image', 'vignette', $val[0]); else { $nom = $table_des_tables[$type]; -- GitLab