- 1
[Opened] {formurlparam} et moteur d'URL significant
Posted by yan_vn on 01/07/2010 08:51
Bonjour à tous,
Tout d'abord meilleurs voeux pour 2010.
Après quelques mois passés à faire plein d'autres choses, je me remet au développement de mon site web qui utilise Jelix. J'avoue que j'ai été plus qu'agréablement surpris de voir que même après pas mal de temps c'est très facile de se replonger dans un site développé avec Jelix. Le temps de reprendre un peu ses marques et si on a été propre dans son développement tout coule clairement.
Je vous explique ma situation et mon problème. Tout d'abord j'utilise la version 1.1.5. J'ai une page qui affiche des tarifs. Cette page comporte un petit formulaire avec une liste déroulante pour changer la devise. A la soumission le formulaire envoie en GET la nouvelle devise sans que le reste des paramètre ne soit modifiés pour que ce soit la même page qui s'affiche.
Tout fonctionne bien avec le moteur d'URL "basic_significant". J'ai voulu passer avec le moteur "significant" que je trouve très bien fait (sauf qu'un paramètre "optionnel" avec une valeur par défaut serait appréciable, mais je comprends la difficulté technique de générer des URL comme ça). Et là ça ne marche plus! En fait, {formurlparam} ne me génère plus les champs cachés contenant les paramètres du code de la page et du code de la section pour permettre à mon action d'aller chercher la bonne page en BDD.
J'ai essayé de triturer mon fichier urls.xml pour voir si ça venait de là, mais rien n'y fait... En fait quand on regarde l'URL générée dans le HTML, on voit bien des "/" en trop sans les paramètres... Comme si {formurl} n'arrivait pas à trouver les paramètres.
En cherchant sur le forum tout ce que j'ai trouvé c'est ce post http://jelix.org/forums/read.php?5,5419,(..) mais mon besoin me paraît plus simple...
Pour info le code de mon template (un extrait simplifié) :
<form action="{formurl 'public~default:index@classic'}" method="GET"> {formurlparam 'public~default:index@classic', array('section'=>$code_section,'page'=>$code_page)} <h5 style="display:inline; font-weight:bold;">{$produit->public_1} {$produit->devise}</h5> {if $produit->devise != $deviseencours} <h5 style="display:inline; font-weight:bold;">(≅ {$produit->public_1|tauxchange:$produit->devise,$deviseencours} {$deviseencours})</h5> {/if} <h6 style="display:inline;">{jlocale 'public~base.tarifs.base.'.$produit->base}</h6> <select name="devise" onChange="javascript:this.form.submit();"> {foreach $listedevises as $devise} <option value="{$devise->devise}" {if $devise->devise == $deviseencours}selected{/if}>{$devise->devise}</option> {/foreach} </select> <h5>{$produit->conditions_long}.</h5></td> </form>
et mon urls.xml :
<classicentrypoint name="index" default="true" noentrypoint="true"> <url pathinfo="/public/fr/:section/:page" module="public" action="index" noentrypoint="true"> <param name="section" /> <param name="page" /> <static name="langue" value="fr_FR" /> </url> <url pathinfo="/public/en/:section/:page" module="public" action="index" noentrypoint="true"> <param name="section" /> <param name="page" /> <static name="langue" value="en_EN" /> </url> <url pathinfo="/public/:section/:page" module="public" action="index" noentrypoint="true"> <param name="section" /> <param name="page" /> </url> </classicentrypoint>
Merci d'avance pour votre aide! Yannick.
Yannick DEVOS - http://www.nature-mekong.com/
[Opened] Re: {formurlparam} et moteur d'URL significant
Posted by bballizlife on 01/07/2010 12:13
Bonjour,
Il est tout à fait normal que {formurlparam}
ne génère rien avec le moteur d'url significant, c'est son fonctionnement.
Ton problème vient du fait que tu ne déclare par ton url correctement dans {formurl}
vu que tu ne lui donne pas les paramètres. jUrl ne peut donc pas générer l'url complète.
{formurl 'public~default:index@classic', array('section'=>$code_section,'page'=>$code_page)}
Je pense que ça devrait mieux fonctionner
N'importe comment c'est dans la doc
- 1