diff --git a/ecrire/exec/auteurs.php b/ecrire/exec/auteurs.php index b5d540ee7df0a6e33f846628139bc181d728f9f7..ba87c481b00c340bc49ebfb4a3cc86c5751a0579 100644 --- a/ecrire/exec/auteurs.php +++ b/ecrire/exec/auteurs.php @@ -230,7 +230,7 @@ function auteurs_href($clic, $args='', $att='') $h = generer_url_ecrire('auteurs', $args); $a = 'auteurs'; if ($_COOKIE['spip_accepte_ajax'] == 1 ) - $att .= ("\nonclick=" . ajax_action_declencheur("\"$h\"",$a)); + $att .= ("\nonclick=" . ajax_action_declencheur($h,$a)); return "<a href='$h#$a'$att>$clic</a>"; } diff --git a/ecrire/inc/actions.php b/ecrire/inc/actions.php index 41926642fa78a881a52d8d492effa53b1f5b3cd2..2d15a5b0052e20bd8b4bb0d305a543f2791f9505 100644 --- a/ecrire/inc/actions.php +++ b/ecrire/inc/actions.php @@ -179,21 +179,28 @@ function ajax_action_auteur($action, $id, $script, $args='', $corps=false, $args if ($att) $clic = "\n<div$att>$clic</div>"; return "<a href='$href'\nonclick=" - . ajax_action_declencheur("\"$ajax\"", $ancre, $fct_ajax) + . ajax_action_declencheur($ajax, $ancre, $fct_ajax) . ">$clic</a>"; } } +// +// Attention pour que Safari puisse manipuler cet evenement +// il faut onsubmit="return AjaxSqueeze(x,'truc',...)" +// et non pas onsubmit='return AjaxSqueeze(x,"truc",...)' +// // http://doc.spip.org/@ajax_action_declencheur -function ajax_action_declencheur($request, $noeud, $fct_ajax='') -{ - return "'return AjaxSqueeze(" +function ajax_action_declencheur($request, $noeud, $fct_ajax='') { + if ($request != 'this') + $request = "'".$request."'"; + + return '"return AjaxSqueeze(' . $request - . ',"' + . ",'" . $noeud - . '"' + . "'" . (!$fct_ajax ? '' : ",$fct_ajax") - . ")'"; + . ')"'; } // http://doc.spip.org/@ajax_action_greffe diff --git a/ecrire/inc/agenda.php b/ecrire/inc/agenda.php index d11738ce3988d5c5a25596ace111340bb0f2e72c..8857f4a7c537273237876b9a852d7dfeadd0646c 100644 --- a/ecrire/inc/agenda.php +++ b/ecrire/inc/agenda.php @@ -91,7 +91,7 @@ function calendrier_href($script, $annee, $mois, $jour, $type, $fin, $ancre, $im return http_href("$h$a", $clic, $titre, $style, $class, $evt); else { - $evt .= "\nonclick=" . ajax_action_declencheur("\"$h\"",$ancre); + $evt .= "\nonclick=" . ajax_action_declencheur($h,$ancre); return "<a$c$s\nhref='$h$a'$evt>$clic</a>"; } } diff --git a/ecrire/inc/discuter.php b/ecrire/inc/discuter.php index 3c0dd6f5e0a6fe75abf594bb81e8c096621429a6..5f436e12ac35587f441919887b44c5d9cbea1d79 100644 --- a/ecrire/inc/discuter.php +++ b/ecrire/inc/discuter.php @@ -32,7 +32,7 @@ function formulaire_discuter($query, $total, $debut, $total_afficher, $script, $ $h = generer_url_ecrire($script, $a); } else { $h = generer_url_ecrire('discuter', $a); - $evt = "\nonclick=" . ajax_action_declencheur("\"$h\"",'forum'); + $evt = "\nonclick=" . ajax_action_declencheur($h,'forum'); } $nav .= "[<a href='$h#forum'$evt>$i-$y</a>] "; } diff --git a/ecrire/inc/forum.php b/ecrire/inc/forum.php index ea3f66517e48bcc48300734faf26dbc5503dc07f..134f4d509cedd5e4b39b70855bb0d84393fc3dca 100644 --- a/ecrire/inc/forum.php +++ b/ecrire/inc/forum.php @@ -29,7 +29,7 @@ function affiche_navigation_forum($script, $args, $debut, $i, $pack, $ancre, $qu $nav .= "<font size=3><b>$i</b></font> |\n"; else { $h = generer_url_ecrire($script, $args . "&debut=$i", $e); - if ($e) $e = "\nonclick=" . ajax_action_declencheur("\"$h\"",$ancre); + if ($e) $e = "\nonclick=" . ajax_action_declencheur($h,$ancre); $nav .= "<a href='$h'$e>$i</a> |\n"; } } @@ -38,7 +38,7 @@ function affiche_navigation_forum($script, $args, $debut, $i, $pack, $ancre, $qu $h = generer_url_ecrire($script, $args . "&debut=$i"); - if ($e) $e = "\nonclick=" . ajax_action_declencheur("\"$h\"",$ancre); + if ($e) $e = "\nonclick=" . ajax_action_declencheur($h,$ancre); return "$nav<a href='$h'$e>...</a> |"; } diff --git a/ecrire/inc/legender_auteur.php b/ecrire/inc/legender_auteur.php index c17a2072be858145b86f217e19f4637a8421c0a3..f414786bc847ec5041d27c4ffb333f5ed8557ed2 100644 --- a/ecrire/inc/legender_auteur.php +++ b/ecrire/inc/legender_auteur.php @@ -264,7 +264,7 @@ function legender_auteur_voir($auteur, $redirect) $clic = _T("admin_modifier_auteur"); $h = generer_url_ecrire("auteur_infos","id_auteur=$id_auteur&initial=0"); if (($_COOKIE['spip_accepte_ajax'] == 1 ) AND !$redirect) { - $evt .= "\nonclick=" . ajax_action_declencheur("\"$h\"",$ancre); + $evt .= "\nonclick=" . ajax_action_declencheur($h,$ancre); $h = "<a\nhref='$h$a'$evt>$clic</a>"; } $res .= icone($clic, $h, "redacteurs-24.gif", "edit.gif", '', '',true); diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index 2e4dea3ea8a656f849070719b62940ec4c01494f..1d9f23c7121211181c8961726d54e0239cc294f1 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -30,7 +30,7 @@ function charger_fonction($nom, $dossier='exec', $continue=false) { // Securite de base if (!preg_match(',^\w+$,', $nom)) - redirige_par_entete('./'); + die(htmlspecialchars($nom)." pas autorise"); if (substr($dossier,-1) != '/') $dossier .= '/'; // Si la fonction existe deja (definie par mes_options, par exemple)