17
août
2011
Récupérer les view parameters dans une vue
août
2011
Dans une template « classique », on a accès à la variable $view_parameters.
Celle-ci contient les valeurs des paramètres personnalisés passés dans l’url.
Par exemple pour l’url suivante :
http://www.example.com/my/url/alias/(couleur)/vert/(prix)/34
On pourra accéder aux paramètres « couleur » et « prix » à l’aide de la variable $view_parameters :
La couleur est : {$view_parameters.couleur}
Le prix est : {$view_parameters.prix}
Le prix est : {$view_parameters.prix}
Par contre, vous n’avez pas accès à $view_parameters dans une vue d’un module.
Mais on peut quand même les récupérer à l’aide du code suivant :
$uri = eZURI::instance( eZSys::requestURI() );
$viewParameters = $uri->UserParameters();
$viewParameters = $uri->UserParameters();
On peut ensuite facilement les passer à une template :
<span style="color:#777;">// Récupérer les view_parameters</span>
$uri = eZURI::instance( eZSys::requestURI() );
$viewParameters = $uri->UserParameters();
<span style="color:#777;">// Instancier la template</span>
$tpl = templateInit();
$tpl->setVariable( 'view_parameters', $viewParameters );
<span style="color:#777;">// Renvoyer le résultat de la vue</span>
$Result = array();
$Result['content'] = $tpl->fetch( "design:<ma/template.tpl>" );
$uri = eZURI::instance( eZSys::requestURI() );
$viewParameters = $uri->UserParameters();
<span style="color:#777;">// Instancier la template</span>
$tpl = templateInit();
$tpl->setVariable( 'view_parameters', $viewParameters );
<span style="color:#777;">// Renvoyer le résultat de la vue</span>
$Result = array();
$Result['content'] = $tpl->fetch( "design:<ma/template.tpl>" );
En espérant que ça puisse vous aider,
Thomas.