Skip to content
Extraits de code Groupes Projets
Valider 4cb74f1e rédigé par Fil's avatar Fil
Parcourir les fichiers

amelioration de form_hidden et de parametre_url en relation avec...

parent ea2a8be6
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -1772,22 +1772,32 @@ function valeur_numerique($expr) { ...@@ -1772,22 +1772,32 @@ function valeur_numerique($expr) {
return intval($a); return intval($a);
} }
// La fonction suivante ne sert plus aujourd'hui qu'aux squelettes des // Fournit la suite de Input-Hidden correspondant aux parametres de
// balises dynamiques, en attendant une nouvelle conception qui permettra // l'URL donnee en argument
// d'eviter les redondances de calcul et d'ecriture qu'elle induit.
// Elle fournit la suite de Input-Hidden correspondant aux parametres de
// l'URL donnee en argument. Ce besoin de ne devrait pas apparaitre,
// utiliser plutot generer_form_ecrire.
// http://doc.spip.org/@form_hidden // http://doc.spip.org/@form_hidden
function form_hidden($action) { function form_hidden($action) {
$hidden = ''; $hidden = array();
if (false !== ($p = strpos($action, '?'))) if (false !== ($p = strpos($action, '?')))
foreach(preg_split('/&(amp;)?/S',substr($action,$p+1)) as $c) { foreach(preg_split('/&(amp;)?/S',substr($action,$p+1)) as $c) {
$hidden .= "\n<input name='" . list($var,$val) = explode('=', $c, 2);
entites_html(rawurldecode(str_replace('=', "' value='", $c))) . $input = '<input name="'
"' type='hidden' />"; . entites_html($var)
.'"'
. (is_null($val)
? ''
: ' value="'.entites_html(rawurldecode($val)).'"'
)
. ' type="hidden" />';
// si c'est une variable de la forme a[]=2, cumuler les input
// sinon ne conserver que le premier
if (preg_match(',\[\]$,S', $var))
$hidden[] = $input;
else
if (!isset($hidden[$var]))
$hidden[$var] = $input;
} }
return $hidden; return join("\n", $hidden);
} }
// http://doc.spip.org/@filtre_bornes_pagination_dist // http://doc.spip.org/@filtre_bornes_pagination_dist
......
...@@ -240,6 +240,7 @@ function set_request($var, $val = NULL, $c=false) { ...@@ -240,6 +240,7 @@ function set_request($var, $val = NULL, $c=false) {
// Exemples : [(#SELF|parametre_url{suite,18})] (ajout) // Exemples : [(#SELF|parametre_url{suite,18})] (ajout)
// [(#SELF|parametre_url{suite,''})] (supprime) // [(#SELF|parametre_url{suite,''})] (supprime)
// [(#SELF|parametre_url{suite})] (prend $suite dans la _request) // [(#SELF|parametre_url{suite})] (prend $suite dans la _request)
// [(#SELF|parametre_url{suite[],1})] (tableaux valeurs multiples)
// http://doc.spip.org/@parametre_url // http://doc.spip.org/@parametre_url
function parametre_url($url, $c, $v=NULL, $sep='&amp;') { function parametre_url($url, $c, $v=NULL, $sep='&amp;') {
...@@ -266,9 +267,13 @@ function parametre_url($url, $c, $v=NULL, $sep='&amp;') { ...@@ -266,9 +267,13 @@ function parametre_url($url, $c, $v=NULL, $sep='&amp;') {
if ($v === NULL) { if ($v === NULL) {
return $r[2]?substr($r[2],1):''; return $r[2]?substr($r[2],1):'';
} }
elseif (!$v) {// suppression // suppression
elseif (!$v) {
unset($url[$n]); unset($url[$n]);
} else { }
// ajout ; dans le cas d'un tableau ne rien faire, dans
// le cas d'une variable nrmale remplacer au meme endroit dans l'url
elseif (substr($r[1],-2) != '[]') {
$url[$n] = $r[1].'='.$u; $url[$n] = $r[1].'='.$u;
unset($ajouts[$r[1]]); unset($ajouts[$r[1]]);
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter