Salut,
Si la balise #SELF renvoie une chaîne un peu longue, comme ceci :
page.php3?tri=date&ordre=inverse&debut_page=100&mode=large&lang=fr
il est pour le moins assez complexe de reprendre cette url pour
l'utiliser dans la page en modifiant un paramètre ou deux. Je crois qu'à
moins d'écrire un filtre spécifique, il faut recomposer entièrement
l'url en testant la présence de chaque paramètre, avec un truc du genre:
[(page.php?[lang=(#LANG)][&id_document=(#ENV{id_document})]
(en tout cas, j'ai rien trouvé d'autre).
Ne serait-il pas pertinent dès lors d'introduire un filtre qu'on
pourrait appeler "inserer_parametre" et qui s'utiliserait comme suit :
[(#SELF|inserer_parametre{'var1','valeur'}|inserer_parametre{'var2','valeur'})]
Son action consisterait à remplacer un paramètre dans la chaîne et à
l'ajouter si ce paramètre n'est pas présent. Une sorte d'équivalent à
"inserer_attribut".
J'ai l'impression que c'est l'élément manquant pour que #SELF révèle
tout son potentiel (enfin, à moins qu'il existe un autre moyen de faire
qui m'aurait échappé, bien sûr).
Ca serait quelque chose du genre:
// modifier (ou inserer) un parametre dans une url
function inserer_parametre($url, $param, $valeur) {
if (preg_match($param, $url))
$url = preg_replace($param.'\='.$valeur,
$attribut\=[(a-zA-Z0-9)+], $url);
else
$url .= strpos($url,'?')?'&':'?'.$param.'='.$valeur;
return $url;
}
Je n'en touche pas une en ce qui concerne les expressions régulières,
donc le code ci-dessus ne marche pas, mais si l'idée est acceptée, il
devrait bien se trouver quelqu'un qui les connaît pour faire tourner ça.
François