Valider 168c9482 rédigé par Fil's avatar Fil
Parcourir les fichiers

resoud les bugs graphiques du formulaires_mots + unifie ajax et non ajax sur...

resoud les bugs graphiques du formulaires_mots + unifie ajax et non ajax sur les liens GET (pas encore POST, c'est plus complique). #518
parent 64ce7d41
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+34 −31
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -115,51 +115,54 @@ function ajax_action_auteur($action, $id, $script, $args, $corps=false, $args_aj
{
	$ancre = "$action-" . intval($id);

	// Formulaire (POST)
	// methodes traditionnelle et ajax a unifier...
	if (is_string($corps)) {

		// Methode traditionnelle
		if ($_COOKIE['spip_accepte_ajax'] != 1) {
		if (is_string($corps)) {
			return redirige_action_auteur($action,
				$id,
				$script,
				"$args#$ancre",
				$corps,
				"\nmethod='post'");
		} else {
			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
	//
	$ancre = '"' . $ancre . '"';
		// Methode Ajax
		else {
			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, $ancre)'");
	} else {
				"\nmethod='post'
				onsubmit='return AjaxSqueeze(this, \"$ancre\")'");
		}
	}

	// Lien (GET)
	else {
		list($clic, $att) = $corps;

		$href = redirige_action_auteur($action,
			$id,
			$script,
			"$args#$ancre",
			false);

		if ($args AND !$args_ajax) $args_ajax = "&$args";
		$ajax = redirige_action_auteur($action,
			$id,
			$action,
			"var_ajax=1&script=$script$args_ajax");
		return "<div$att><a onclick='AjaxSqueeze(\"$href\",$ancre)'>$clic</a></div>";

		$clic = "<a href='$href' onclick='return !AjaxSqueeze(\"$ajax\",\"$ancre\");'>$clic</a>";

		return (!$att)
		? $clic
		: "<div$att'>$clic</div>";
	}
}

+12 −5
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -106,8 +106,8 @@ function mots_ressemblants($mot, $table_mots, $table_ids='') {
function formulaire_mots($objet, $id_objet, $cherche_mot, $select_groupe, $flag_editable) {
	global $connect_statut, $spip_lang_rtl, $spip_lang_right, $spip_lang;

	$visible = $cherche_mot OR ($flag_editable === 'ajax');
	spip_log("fm '$cherche_mot' '$flag_editable' '$visible' '$select_groupe'");
	$visible = ($cherche_mot OR ($flag_editable === 'ajax'));
#	spip_log("fm '$cherche_mot' '$flag_editable' '$visible' '$select_groupe'");

	if ($objet == 'article') {
		$table_id = 'id_article';
@@ -164,10 +164,17 @@ function formulaire_mots($objet, $id_objet, $cherche_mot, $select_groupe, $flag_
		}
	}

	$res .= afficher_mots_cles($flag_editable, $objet, $id_objet, $table, $table_id, $url_base, $visible)
	$form = afficher_mots_cles($flag_editable, $objet, $id_objet, $table, $table_id, $url_base, $visible);

	// n'envoyer que le formulaire si on est appele par ajax
	if ($flag_editable === 'ajax')
		return $form;

	// Envoyer titre + div-id + formulaire + fin
	return $res
		. "<div id='editer_mot-$id_objet'>".$form."</div>"
		. fin_cadre_enfonce(true);

	return  ($flag_editable === 'ajax') ? $res : "<div id='editer_mot-$id_objet'>$res</div>";
}

// http://doc.spip.org/@inserer_mot