29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
17-02-2012 : Pétition pour une protection de l’apiculture et des consommateurs face au lobby des OGM
Logo de mon site
Logo de mon site
Faire un don

Luxpopuli / eZ Publish / Configuration / eZ Publish : créer une redirection personnalisée





Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox
zero papier grâce aux catalogues et promos en ligne de bonial

eZ Publish : créer une redirection personnalisée

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 :

Affichage du panier avec le template basket.tpl de l'extension ezwebin

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