From 95f4781b68923b05abdf90760c949c0792a7111f Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Fri, 28 Sep 2007 08:48:56 +0000 Subject: [PATCH] =?UTF-8?q?Personne=20n'a=20d=C3=BB=20d=C3=A9m=C3=A9nager?= =?UTF-8?q?=20un=20site=20syndiqu=C3=A9=20depuis=20l'apparition=20du=20scr?= =?UTF-8?q?ipt=20action/editer=5Fsite:=20copi=C3=A9=20du=20script=20des=20?= =?UTF-8?q?br=C3=A8ves,=20il=20demandait=20un=20champ=20'lang'=20dans=20la?= =?UTF-8?q?=20table=20Syndic=20qui=20n'en=20a=20pas.=20Quant=20=C3=A0=20la?= =?UTF-8?q?=20propagation=20des=20secteurs,=20autant=20la=20faire=20pour?= =?UTF-8?q?=20le=20seul=20champ=20concern=C3=A9=20en=20m=C3=AAme=20temps?= =?UTF-8?q?=20que=20le=20changement=20du=20champ=20id=5Frubrique.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/action/editer_site.php | 44 +++++++++++------------------------ 1 file changed, 13 insertions(+), 31 deletions(-) diff --git a/ecrire/action/editer_site.php b/ecrire/action/editer_site.php index 9988b11892..6541029bb1 100644 --- a/ecrire/action/editer_site.php +++ b/ecrire/action/editer_site.php @@ -182,10 +182,11 @@ function revisions_sites ($id_syndic, $c=false) { $champs[$champ] = corriger_caracteres($val); } - $s = spip_query("SELECT statut, id_rubrique FROM spip_syndic WHERE id_syndic=$id_syndic"); + $s = spip_query("SELECT statut, id_rubrique, id_secteur FROM spip_syndic WHERE id_syndic=$id_syndic"); $row = sql_fetch($s); $id_rubrique = $row['id_rubrique']; $statut_ancien = $row['statut']; + $id_secteur_old = $row['id_secteur']; $statut = _request('statut', $c); @@ -207,13 +208,15 @@ function revisions_sites ($id_syndic, $c=false) { $statut = $statut_ancien; // Changer de rubrique ? - // Verifier que la rubrique demandee est differente - // de la rubrique actuelle + // Verifier que la rubrique demandee est differente de l'actuelle, + // et qu'elle existe. Recuperer son secteur + if ($id_parent = intval(_request('id_parent', $c)) AND $id_parent != $id_rubrique - AND (sql_fetch(spip_query("SELECT id_rubrique FROM spip_rubriques WHERE id_rubrique=$id_parent")))) { + AND ($r = sql_fetch(spip_query("SELECT id_secteur FROM spip_rubriques WHERE id_rubrique=$id_parent")))) { $champs['id_rubrique'] = $id_parent; - + if ($id_secteur_old != $r['id_secteur']) + $champs['id_secteur'] = $r['id_secteur']; // si le site est publie // et que le demandeur n'est pas admin de la rubrique // repasser le site en statut 'prop'. @@ -230,6 +233,11 @@ function revisions_sites ($id_syndic, $c=false) { $champs['extra'] = $extra; } + if (!$champs) return; + + // Enregistrer les modifications + sql_updateq('spip_syndic', $champs, "id_syndic=$id_syndic"); + // Envoyer aux plugins include_spip('inc/modifier'); # temporaire pour eviter un bug $champs = pipeline('pre_edition', @@ -242,15 +250,6 @@ function revisions_sites ($id_syndic, $c=false) { ) ); - $update = array(); - foreach ($champs as $champ => $val) - $update[] = $champ . '=' . _q($val); - - if (!count($update)) return; - - // Enregistrer les modifications - spip_query("UPDATE spip_syndic SET ".join(', ',$update)." WHERE id_syndic=$id_syndic"); - // marquer le fait que le site est travaille par toto a telle date // une alerte sera donnee aux autres redacteurs sur exec=sites if ($GLOBALS['meta']['articles_modif'] != 'non') { @@ -258,23 +257,6 @@ function revisions_sites ($id_syndic, $c=false) { signale_edition ($id_syndic, $GLOBALS['auteur_session'], 'syndic'); } - // Si on deplace le site - // - propager les secteurs - // - changer sa langue (si heritee) - if (isset($champs['id_rubrique'])) { - propager_les_secteurs(); - - $row = sql_fetch(spip_query("SELECT lang, langue_choisie FROM spip_syndic WHERE id_syndic=$id_syndic")); - $langue_old = $row['lang']; - $langue_choisie_old = $row['langue_choisie']; - - if ($langue_choisie_old != "oui") { - $row = sql_fetch(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique")); - $langue_new = $row['lang']; - if ($langue_new != $langue_old) - spip_query("UPDATE spip_syndic SET lang = '$langue_new' WHERE id_syndic = $id_syndic"); - } - } // // Post-modifications -- GitLab