Date de publication: le vendredi 18 février 2011 à 01h20
Dernière modification: par Pascal BOYER le vendredi 18 février 2011 à 03h13
» Article suivant: eZ Publish : un workflow pour plusieurs événements
Cet article explique comment créer une redirection personnalisée, c'est à dire vers un nœud particulier, associée à un bouton de type submit.
Dans le cas présent, je prendrai pour exemple la vue qui affiche le panier lié au système d'e-commerce pour y ajouter une redirection.
La vue du panier
Voici à quoi peut ressembler l'affichage du panier en utilisant comme base de travail le template extension/ezwebin/design/ezwebin/templates/shop/basket.tpl :
Fig. 1: Affichage du panier avec l'URI http://monsite.fr/shop/basket
Code du bouton Poursuivre mes achats
Le bouton Poursuivre mes achats est associé, par défaut, au code suivant (un peu modifié par rapport au code original) dans le template basket.tpl :
<div class="buttonblock"> <input class="button" type="submit" name="ContinueShoppingButton" value="Poursuivre mes achats" /> <input class="button" type="submit" name="CheckoutButton" value="Régler mes achats" /> </div>
Par défaut, ce bouton renvoie vers la page précédente, c'est à dire vers la page produit contenant le lien qui a mené au panier.
Cependant, il peut être préférable, par exemple, de renvoyer l'utilisateur vers la racine de la rubrique à laquelle appartient le produit qui vient d'être ajouté au panier où vers tout autre endroit du site.
Le fichier kernel/shop/basket.php
Il va donc falloir, dans un premier temps, modifier ce fichier en prenant exemple sur le contenu du fichier kernel/content/action.php
Voici donc les lignes à ajouter à la partie du code traitant la variable ContinueShoppingButton associée au bouton Poursuivre mes achats:
if ( $http->hasPostVariable( "ContinueShoppingButton" ) ) { // LES DEUX LIGNES CI-DESSOUS CRÉENT LA REDIRECTION LORSQUE L'ON CLIQUE SUR LE BOUTON Poursuivre mes achats if ( $http->hasPostVariable( 'retourURI' ) ) { return $module->redirectTo( $http->postVariable( 'retourURI' ) ); } <-- ici le reste du code existant -->
Le nouveau code du bouton Poursuivre mes achats
Il faut à présent adapter le code lié au bouton dans le template basket.tpl :
<div class="buttonblock"> <input type="hidden" name="retourURI" value="content/view/full/398" />{* ICI ON INDIQUE LE NOEUD DE REDIRECTION QUAND ON CLIQUE SUR LE BOUTON «Annuler» *} <input class="button" type="submit" name="ContinueShoppingButton" value="Poursuivre mes achats" /> <input class="button" type="submit" name="CheckoutButton" value="Régler mes achats" /> </div>
Ne reste plus qu'à vider les caches.
:
Lors de la prochaine mise à jour de eZ Publish, le fichier kernel/content/action.php sera bien évidemment écrasé. Il faudra donc prendre soin de faire une sauvegarde préalable pour la rétablir la mise à jour terminée.
Commentaires














