From 2f7581491685fbfed7a15b2628f4dfcec6fd922b Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Wed, 23 Aug 2006 10:20:49 +0000
Subject: [PATCH] =?UTF-8?q?Harmonisation=20Ajax:=20les=20fonctions=20ajax?=
 =?UTF-8?q?=5Faction=5Fauteur=20et=20redirige=5Faction=5Fauteur=20admetten?=
 =?UTF-8?q?t=20les=20memes=20arguments=20afin=20qu'il=20soit=20plus=20faci?=
 =?UTF-8?q?le=20de=20passer=20en=20mode=20Ajax=20lorsque=20la=20partie=20c?=
 =?UTF-8?q?orrespondante=20du=20DOM=20est=20configur=C3=A9e=20pour.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Idéalement il faudrait aussi qu'elles retourne le meme genre de résultat (un formulaire ou un <A href=X>clic</A>) mais ça impose de revoir menu_langues, icone et icone_horizontale.

Aussi: explication de la variable d'URL select_groupe sortant auparavant d'on
ne savait où dans le formulaire mot (voir depot suivant).
---
 ecrire/exec/breves_voir.php |  9 ++++-----
 ecrire/exec/naviguer.php    |  4 ++--
 ecrire/exec/sites.php       |  3 ++-
 ecrire/inc/actions.php      | 37 +++++++++++++++++++++----------------
 ecrire/inc/documents.php    | 10 +++++-----
 ecrire/inc/forum.php        |  2 +-
 ecrire/inc/petition.php     |  2 +-
 7 files changed, 36 insertions(+), 31 deletions(-)

diff --git a/ecrire/exec/breves_voir.php b/ecrire/exec/breves_voir.php
index 35083b43c6..a24152a7d3 100644
--- a/ecrire/exec/breves_voir.php
+++ b/ecrire/exec/breves_voir.php
@@ -20,7 +20,7 @@ include_spip('base/abstract_sql');
 include_spip("inc/indexation");
 
 // http://doc.spip.org/@afficher_breves_voir
-function afficher_breves_voir($id_breve, $changer_lang, $cherche_mot)
+function afficher_breves_voir($id_breve, $changer_lang, $cherche_mot, $select_groupe)
 {
 	global $champs_extra, $options, $connect_statut, $les_notes,$spip_display;
 	$result = spip_query("SELECT * FROM spip_breves WHERE id_breve='$id_breve'");
@@ -129,7 +129,7 @@ if ($flag_editable AND ($options == 'avancees' OR $statut == 'publie')) {
 
 
 if ($GLOBALS['meta']["articles_mots"]!='non' AND $flag_editable AND $options == 'avancees') {
-  echo formulaire_mots('breves', $id_breve, $cherche_mot, $flag_editable);
+  echo formulaire_mots('breve', $id_breve, $cherche_mot, $select_groupe, $flag_editable);
 }
 
 
@@ -243,7 +243,7 @@ function exec_breves_voir_dist()
 {
 global $id_breve, $id_parent, $texte, $titre, $statut,
   $annee, $mois, $jour, $lien_titre, $lien_url,$champs_extra,
-  $new, $modifier_breve, $changer_lang, $cherche_mot, 
+  $new, $modifier_breve, $changer_lang, $cherche_mot,  $select_groupe,  
   $connect_statut;
 
 $id_breve = intval($id_breve);
@@ -300,7 +300,6 @@ if (($id_breve == 0) AND ($new == "oui")) {
 			}
 		}
 	}
-	
 }
 
 if ($jour AND $connect_statut == '0minirezo') {
@@ -315,6 +314,6 @@ if ($jour AND $connect_statut == '0minirezo') {
 	if ($new == 'oui')
 		redirige_par_entete(
 			generer_url_ecrire('breves_voir', 'id_breve='.$id_breve, '&'));
- afficher_breves_voir($id_breve, $changer_lang, $cherche_mot);
+	afficher_breves_voir($id_breve, $changer_lang, $cherche_mot, $select_groupe);
 }
 ?>
diff --git a/ecrire/exec/naviguer.php b/ecrire/exec/naviguer.php
index cd9a94da49..204be4baf2 100644
--- a/ecrire/exec/naviguer.php
+++ b/ecrire/exec/naviguer.php
@@ -24,7 +24,7 @@ charger_generer_url();
 // http://doc.spip.org/@exec_naviguer_dist
 function exec_naviguer_dist()
 {
-	global $new, $id_parent, $id_rubrique, $spip_display,  $connect_statut, $champs_extra, $cherche_mot, $descriptif, $texte, $titre;
+	global $new, $id_parent, $id_rubrique, $spip_display,  $connect_statut, $champs_extra, $cherche_mot,  $select_groupe, $descriptif, $texte, $titre;
 
 
 	$flag_editable = ($connect_statut == '0minirezo' AND (acces_rubrique($id_parent) OR acces_rubrique($id_rubrique))); // id_parent necessaire en cas de creation de sous-rubrique
@@ -132,7 +132,7 @@ function exec_naviguer_dist()
 /// Mots-cles
 	    if ($GLOBALS['meta']["articles_mots"] != 'non' AND $id_rubrique > 0) {
 	      echo "\n<p>",
-		formulaire_mots('rubriques', $id_rubrique,  $cherche_mot, $flag_editable);
+		formulaire_mots('rubrique', $id_rubrique,  $cherche_mot,  $select_groupe, $flag_editable);
 	    }
 
 
diff --git a/ecrire/exec/sites.php b/ecrire/exec/sites.php
index 72d4599188..cfaa3012e3 100644
--- a/ecrire/exec/sites.php
+++ b/ecrire/exec/sites.php
@@ -30,6 +30,7 @@ function exec_sites_dist()
   $annee,
   $champs_extra,
   $cherche_mot,
+  $select_groupe, 
   $descriptif,
   $id_parent,
   $id_syndic,
@@ -330,7 +331,7 @@ if ($flag_editable AND ($options == 'avancees' OR $statut == 'publie')) {
  echo "\n";
 
 if ($flag_editable AND $options == 'avancees') {
-  echo formulaire_mots('syndic', $id_syndic,  $cherche_mot, $flag_editable);
+  echo formulaire_mots('syndic', $id_syndic,  $cherche_mot,  $select_groupe, $flag_editable);
 }
 echo pipeline('affiche_milieu',array('args'=>array('exec'=>'sites','id_syndic'=>$id_syndic),'data'=>''));
 
diff --git a/ecrire/inc/actions.php b/ecrire/inc/actions.php
index 8b06930f94..0858ae2514 100644
--- a/ecrire/inc/actions.php
+++ b/ecrire/inc/actions.php
@@ -105,15 +105,15 @@ function redirige_action_auteur($action, $arg, $ret, $gra='', $mode=false, $atts
 		$atts);
 }
 
-
 // Retourne un formulaire d'execution de $action sur $id,
 // revenant a l'envoyeur $script d'arguments $args.
 // Utilise Ajax si dispo, en ecrivant le resultat dans le innerHTML du noeud
 // d'attribut  id = $action-$id (cf. AjaxSqueeze dans layer.js)
 
 // http://doc.spip.org/@ajax_action_auteur
-function ajax_action_auteur($action, $id, $corps, $script, $args_ajax, $args)
+function ajax_action_auteur($action, $id, $script, $args, $corps=false, $args_ajax='')
 {
+	$ancre = "$action-" . intval($id);
 
 	// Methode traditionnelle
 	if ($_COOKIE['spip_accepte_ajax'] != 1) {
@@ -121,40 +121,45 @@ function ajax_action_auteur($action, $id, $corps, $script, $args_ajax, $args)
 			return redirige_action_auteur($action,
 				$id,
 				$script,
-				$args,
+				"$args#$ancre",
 				$corps,
 				"\nmethod='post'");
 		} else {
-			list($clic, $class) = $corps;
-			$href = redirige_action_auteur($action,
-				$id,
-				$script,
-				$args,
-				null,
-				"\nmethod='post'");
-			return "<div class='$class'><a href='$href'>$clic</a></div>";
+			list($clic, $att) = $corps;
+
+			$clic = "<a href='"
+			.  redirige_action_auteur($action,
+						  $id,
+						  $script,
+						  "$args#$ancre",
+						  false)
+			. "'>$clic</a>";
+
+			return (!$att)
+			? $clic
+			: "<div$att'>$clic</div>";
 		}
 	}
 
 	//
 	// Ajax
 	//
-	$pere = '"' . "$action-" . intval($id) . '"';
-
+	$ancre = '"' . $ancre . '"';
+	if ($args AND !$args_ajax) $args_ajax = "&$args";
 	if (is_string($corps)) {
 		return redirige_action_auteur($action,
 				$id,
 				$action,
 				"var_ajax=1&script=$script$args_ajax",
 				$corps,
-				"\nmethod='post' onsubmit='return AjaxSqueeze(this, $pere)'");
+				"\nmethod='post' onsubmit='return AjaxSqueeze(this, $ancre)'");
 	} else {
-		list($clic, $class) = $corps;
+		list($clic, $att) = $corps;
 		$href = redirige_action_auteur($action,
 				$id,
 				$action,
 				"var_ajax=1&script=$script$args_ajax");
-		return "<div class='$class' onclick='AjaxSqueeze(\"$href\",$pere)'>$clic</div>";
+		return "<div$att><a onclick='AjaxSqueeze(\"$href\",$ancre)'>$clic</a></div>";
 	}
 }
 
diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php
index c45c6f1591..e394431fd7 100644
--- a/ecrire/inc/documents.php
+++ b/ecrire/inc/documents.php
@@ -480,11 +480,11 @@ function bouton_tourner_document($id, $id_document, $script, $rot, $type, $img,
 {
   return ajax_action_auteur("tourner",
 			    "$id_document-$rot",
-			    array(http_img_pack($img, $title, ''),
-				  'bouton_rotation'),
 			    $script,
-"&id_document=$id_document&id=$id&type=$type",
-"&show_docs=$id_document&id_$type=$id#tourner-$id_document");
+			    "show_docs=$id_document&id_$type=$id#tourner-$id_document",
+			    array(http_img_pack($img, $title, ''),
+				  " class='bouton_rotation'"),
+			    "&id_document=$id_document&id=$id&type=$type");
 }
 
 //
@@ -926,7 +926,7 @@ function formulaire_documenter($id_document, $document, $script, $type, $id, $an
 	  "' type='submit' />" .
 	  "</div>\n";
 
-	$corps = ajax_action_auteur("documenter", $id_document, $corps, $script, "&id_document=$id_document&id=$id&type=$type&ancre=$ancre","show_docs=$id_document&id_$type=$id#$ancre");
+	$corps = ajax_action_auteur("documenter", $id_document, $script, "show_docs=$id_document&id_$type=$id#$ancre", $corps, "&id_document=$id_document&id=$id&type=$type&ancre=$ancre");
 
 	$corps .= 
 	  $vignette .
diff --git a/ecrire/inc/forum.php b/ecrire/inc/forum.php
index 264cffa326..714f51ba20 100644
--- a/ecrire/inc/forum.php
+++ b/ecrire/inc/forum.php
@@ -267,7 +267,7 @@ function formulaire_poster($id_article, $script, $args, $ajax=false) {
 	. ">\n\t<input type='submit' class='fondo' style='font-size:10px' value='"
 	. _T('bouton_changer')
 	. "' /></div>\n";
-	return ajax_action_auteur('poster', $id_article, $r, $script, $args, $args);
+	return ajax_action_auteur('poster', $id_article, $script, $args, $r);
 
 }
 ?>
diff --git a/ecrire/inc/petition.php b/ecrire/inc/petition.php
index 0b643c17a4..b07cb05908 100644
--- a/ecrire/inc/petition.php
+++ b/ecrire/inc/petition.php
@@ -91,6 +91,6 @@ function formulaire_petitionner($id_article, $script, $args, $ajax=false)
 	$res .="<input type='submit' CLASS='fondo' VALUE='"._T('bouton_changer')."' STYLE='font-size:10px' />";
 	$res .="</span>";
 
-	return ajax_action_auteur('petitionner', $id_article, $res, $script, $args, $args);
+	return ajax_action_auteur('petitionner', $id_article, $script, $args, $res);
 }
 ?>
-- 
GitLab