From 492377ad0271c5218c6eb8b204998323fd218fa2 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Fri, 5 Oct 2007 15:32:26 +0000
Subject: [PATCH] Abstraction des clauses avec WHERE dans les UPDATE sur un
 seul champ
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Dépot obtenu par:

{{{
for i in $(grep -l 'spip_query..UPDATE.*SET[^,]*WHERE.*; *$' [a-i]*/*php|grep -v inc/meta.php)
do
echo $i
sed 's/spip_query."UPDATE *\([^ ]*\) *SET *\([^ ,=]*\) *= *\([^,"$W+,)]*[^$, ]\) *WHERE *\(.*;\)/sql_updateq("\1", array("\2" => \3), "\4/;s/ => [^$a-z]\(\$[a-z0-9_]*\)[^a-z_]/ => \1/' $i > x
mv x $i
done
}}}

et retrait de deux transformations mal venues.

Attention pour ceux qui réutilisent ces scripts: les Regexp sont parfois spécifiques à l'état actuel du code de SPIP.
---
 ecrire/action/editer_message.php        | 2 +-
 ecrire/action/editer_signatures.php     | 4 ++--
 ecrire/action/poster_forum_prive.php    | 2 +-
 ecrire/action/referencer_traduction.php | 4 ++--
 ecrire/action/supprimer.php             | 4 ++--
 ecrire/action/supprimer_traduction.php  | 4 ++--
 ecrire/balise/formulaire_signature.php  | 2 +-
 ecrire/genie/syndic.php                 | 2 +-
 ecrire/inc/acces.php                    | 2 +-
 ecrire/inc/ajouter_documents.php        | 2 +-
 ecrire/inc/modifier.php                 | 4 ++--
 ecrire/inc/rubriques.php                | 2 +-
 12 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/ecrire/action/editer_message.php b/ecrire/action/editer_message.php
index 18df99769a..d97a24c017 100644
--- a/ecrire/action/editer_message.php
+++ b/ecrire/action/editer_message.php
@@ -53,7 +53,7 @@ function action_editer_message_post_supprimer($id_message) {
 // http://doc.spip.org/@action_editer_message_post_vu
 function action_editer_message_post_vu($id_message, $id_auteur) {
 	spip_log("efface $id_message $id_auteur");
-	spip_query("UPDATE spip_auteurs_messages SET vu='oui' WHERE id_message=$id_message AND id_auteur=$id_auteur");
+	sql_updateq("spip_auteurs_messages", array("vu" => 'oui'), "id_message=$id_message AND id_auteur=$id_auteur");
 
 }
 
diff --git a/ecrire/action/editer_signatures.php b/ecrire/action/editer_signatures.php
index 23bbbc6b24..df5812370e 100644
--- a/ecrire/action/editer_signatures.php
+++ b/ecrire/action/editer_signatures.php
@@ -32,10 +32,10 @@ function action_editer_signatures_post($r)
 
 	if ($id < 0){
 		$id = 0 - $id;
-		$result_forum = spip_query("UPDATE spip_signatures SET statut='poubelle' WHERE id_signature=$id");
+		$result_forum = sql_updateq("spip_signatures", array("statut" => 'poubelle'), "id_signature=$id");
 
 	} elseif ($id > 0){
-		$result_forum = spip_query("UPDATE spip_signatures SET statut='publie' WHERE id_signature=$id");
+		$result_forum = sql_updateq("spip_signatures", array("statut" => 'publie'), "id_signature=$id");
 
 	}
 
diff --git a/ecrire/action/poster_forum_prive.php b/ecrire/action/poster_forum_prive.php
index ec737a7914..3e70a1230e 100644
--- a/ecrire/action/poster_forum_prive.php
+++ b/ecrire/action/poster_forum_prive.php
@@ -41,7 +41,7 @@ function action_poster_forum_prive_post($r)
 		calculer_threads();
 
 		if ($objet == 'id_message') {
-			spip_query("UPDATE spip_auteurs_messages SET vu = 'non' WHERE id_message=$id");
+			sql_updateq("spip_auteurs_messages", array("vu" => 'non'), "id_message=$id");
 
 		}
 
diff --git a/ecrire/action/referencer_traduction.php b/ecrire/action/referencer_traduction.php
index b1fada5e37..e6188d4b19 100644
--- a/ecrire/action/referencer_traduction.php
+++ b/ecrire/action/referencer_traduction.php
@@ -27,12 +27,12 @@ function action_referencer_traduction_dist() {
 			redirige_par_entete(urldecode(_request('redirect')) . $err);
 	} elseif (preg_match(",^(\d+)\D-(\d+)$,", $arg, $r))  {
 	  // supprimer le lien de traduction
-		spip_query("UPDATE spip_articles SET id_trad=0 WHERE id_article=" . $r[1]);
+		sql_updateq("spip_articles", array("id_trad" => 0), "id_article=" . $r[1]);
 		// Verifier si l'ancien groupe ne comporte plus qu'un seul article. Alors mettre a zero.
 		$cpt = sql_fetsel("COUNT(*) AS n", "spip_articles", "id_trad=" . $r[2]);
 
 		if ($cpt['n'] == 1)
-			spip_query("UPDATE spip_articles SET id_trad = 0 WHERE id_trad=" . $r[2]);
+			sql_updateq("spip_articles", array("id_trad" => 0), "id_trad=" . $r[2]);
 	} elseif (preg_match(",^(\d+)\D(\d+)\D(\d+)$,", $arg, $r)) {
 	  // modifier le groupe de traduction de $r[1] (SQL le trouvera)
 		spip_query("UPDATE spip_articles SET id_trad = " . $r[3] . " WHERE id_trad =" . $r[2]);
diff --git a/ecrire/action/supprimer.php b/ecrire/action/supprimer.php
index ee7b2c9cde..2b8ef8c111 100644
--- a/ecrire/action/supprimer.php
+++ b/ecrire/action/supprimer.php
@@ -59,7 +59,7 @@ function action_supprimer_rubrique($r)
 		sql_delete("spip_auteurs_rubriques", "id_rubrique=$id_rubrique AND id_auteur=$id_auteur");
 		$n = sql_countsel("spip_auteurs_rubriques", "id_auteur=$id_auteur");
 		if (!$n)
-			spip_query("UPDATE spip_auteurs SET statut='1comite' WHERE id_auteur=$id_auteur");
+			sql_updateq("spip_auteurs", array("statut" => '1comite'), "id_auteur=$id_auteur");
 	}
 
 	// Une rubrique supprimable n'avait pas le statut "publie"
@@ -79,7 +79,7 @@ function supprimer_document_et_vignette($arg)
 	if ($row = sql_fetch($result)) {
 		spip_unlink(get_spip_doc($row['fichier']));
 		sql_delete("spip_documents", "id_document=$arg");
-		spip_query("UPDATE spip_documents SET id_vignette=0 WHERE id_vignette=$arg");
+		sql_updateq("spip_documents", array("id_vignette" => 0), "id_vignette=$arg");
 		sql_delete("spip_documents_articles", "id_document=$arg");
 		sql_delete("spip_documents_rubriques", "id_document=$arg");
 		sql_delete("spip_documents_breves", "id_document=$arg");
diff --git a/ecrire/action/supprimer_traduction.php b/ecrire/action/supprimer_traduction.php
index 1249a6b7e8..400f1540cb 100644
--- a/ecrire/action/supprimer_traduction.php
+++ b/ecrire/action/supprimer_traduction.php
@@ -26,13 +26,13 @@ function action_supprimer_traduction_dist() {
 // http://doc.spip.org/@action_supprimer_traduction_post
 function action_supprimer_traduction_post($r)
 {
-	spip_query("UPDATE spip_articles SET id_trad=0 WHERE id_article=" . $r[1]);
+	sql_updateq("spip_articles", array("id_trad" => 0), "id_article=" . $r[1]);
 	// Si l'ancien groupe ne comporte plus qu'un seul article
 	// mettre a zero.
 
 	$cpt = sql_fetsel("COUNT(*) AS n", "spip_articles", "id_trad=" . $r[2]);
 
 	if ($cpt['n'] == 1)
-		spip_query("UPDATE spip_articles SET id_trad = 0 WHERE id_trad=" . $r[2]);
+		sql_updateq("spip_articles", array("id_trad" => 0), "id_trad=" . $r[2]);
 }
 ?>
diff --git a/ecrire/balise/formulaire_signature.php b/ecrire/balise/formulaire_signature.php
index 4a9f7db6a5..9fd9903c5d 100644
--- a/ecrire/balise/formulaire_signature.php
+++ b/ecrire/balise/formulaire_signature.php
@@ -126,7 +126,7 @@ function reponse_confirmation($var_confirm = '') {
 				OR
 			$_GET['refus'] == _action_auteur("supprimer signature $id_signature", '', '', 'alea_ephemere_ancien')
 			)) {
-			spip_query("UPDATE spip_signatures SET statut='poubelle' WHERE id_signature=$id_signature");
+			sql_updateq("spip_signatures", array("statut" => 'poubelle'), "id_signature=$id_signature");
 			$confirm = _T('info_signature_supprimee');
 		} else $confirm = _T('info_signature_supprimee_erreur');
 		return '';
diff --git a/ecrire/genie/syndic.php b/ecrire/genie/syndic.php
index bb41a7f2b4..8c6936748e 100644
--- a/ecrire/genie/syndic.php
+++ b/ecrire/genie/syndic.php
@@ -121,7 +121,7 @@ function syndic_a_jour($now_id_syndic, $statut = 'off') {
 	}
 
 	// Noter que la syndication est OK
-	spip_query("UPDATE spip_syndic SET syndication='oui' WHERE id_syndic=$now_id_syndic");
+	sql_updateq("spip_syndic", array("syndication" => 'oui'), "id_syndic=$now_id_syndic");
 
 	return false; # c'est bon
 }
diff --git a/ecrire/inc/acces.php b/ecrire/inc/acces.php
index 549091f6f4..13e94b589e 100644
--- a/ecrire/inc/acces.php
+++ b/ecrire/inc/acces.php
@@ -113,7 +113,7 @@ function verifier_low_sec ($id_auteur, $cle, $action='') {
 // http://doc.spip.org/@effacer_low_sec
 function effacer_low_sec($id_auteur) {
 	if (!$id_auteur = intval($id_auteur)) return; // jamais trop prudent ;)
-	spip_query("UPDATE spip_auteurs SET low_sec = '' WHERE id_auteur = $id_auteur");
+	sql_updateq("spip_auteurs", array("low_sec" => ''), "id_auteur = $id_auteur");
 }
 
 // http://doc.spip.org/@initialiser_sel
diff --git a/ecrire/inc/ajouter_documents.php b/ecrire/inc/ajouter_documents.php
index 55a679650a..647dd31122 100644
--- a/ecrire/inc/ajouter_documents.php
+++ b/ecrire/inc/ajouter_documents.php
@@ -222,7 +222,7 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode,
 	$id_document_lie = $id_document=intval($id_document);
 	if ($mode == 'vignette' AND  $id_document) {
 		# on force le statut "document" de ce fichier (inutile ?)
-		spip_query("UPDATE spip_documents SET mode='document' WHERE id_document=$id_document");
+		sql_updateq("spip_documents", array("mode" => 'document'), "id_document=$id_document");
 		$id_document = 0;
 	}
 
diff --git a/ecrire/inc/modifier.php b/ecrire/inc/modifier.php
index 667751a9b3..465edf2127 100644
--- a/ecrire/inc/modifier.php
+++ b/ecrire/inc/modifier.php
@@ -114,14 +114,14 @@ function marquer_doublons_documents($champs,$id,$id_table_objet,$table_objet){
 	include_spip('base/abstract_sql');
 	$GLOBALS['doublons_documents_inclus'] = array();
 	traiter_modeles($champs['chapo'].$champs['texte'],true); // detecter les doublons
-	spip_query("UPDATE spip_documents_$table_objet SET vu='non' WHERE $id_table_objet=$id");
+	sql_updateq("spip_documents_$table_objet", array("vu" => 'non'), "$id_table_objet=$id");
 	if (count($GLOBALS['doublons_documents_inclus'])){
 		// on repasse par une requete sur spip_documents pour verifier que les documents existent bien !
 		$in_liste = calcul_mysql_in('id_document',
 			$GLOBALS['doublons_documents_inclus']);
 		$res = sql_select("id_document", "spip_documents", $in_liste);
 		while ($row = sql_fetch($res)) {
-			spip_query("UPDATE spip_documents_$table_objet SET vu='oui' WHERE $id_table_objet=$id AND id_document=" . $row['id_document']);
+			sql_updateq("spip_documents_$table_objet", array("vu" => 'oui'), "$id_table_objet=$id AND id_document=" . $row['id_document']);
 		}
 	}
 }
diff --git a/ecrire/inc/rubriques.php b/ecrire/inc/rubriques.php
index 173a45de19..38c838fc2e 100644
--- a/ecrire/inc/rubriques.php
+++ b/ecrire/inc/rubriques.php
@@ -90,7 +90,7 @@ function depublier_branche_rubrique_if($id_rubrique)
 		if (sql_countsel("spip_documents_rubriques",  "id_rubrique=$id_pred"))
 			return $id_pred != $id_rubrique;;
 
-		spip_query("UPDATE spip_rubriques SET statut='0' WHERE id_rubrique=$id_pred");
+		sql_updateq("spip_rubriques", array("statut" => '0'), "id_rubrique=$id_pred");
 #		spip_log("depublier_rubrique $id_pred");
 
 		$r = sql_fetsel("id_parent", "spip_rubriques", "id_rubrique=$id_pred");
-- 
GitLab