Personnalisation du mini panier

Appréciation moyenne:  / 20
Très mauvaisTrès bien 

Virtuemart: personnaliser le mini panier

La page par défaut gérant l'affichage du mini panier est:

/www/components/com_virtuemart/themes/default/templates/common/minicart.tpl.php

Premier objectif:

essayer de faire en sorte que virtuemart n'utilise plus pour le mini panier ce template default mais le mien.

Pour ce faire, on utilise la technique de duplication de template, comme expliquée ici:

Création, modification et gestion de templates personnalisés avec Virtuemart

Donc, il s'agit maintenant d'aller modifier la page:

/www/components/com_virtuemart/themes/custom/templates/common/minicart.tpl.php
si custom est le nom de notre nouveau template virtuemart.

Enlever le lien et l'image Virtuemart en cas de panier vide:

Dans minicart.tpl.php donc, repérer dès les premières lignes le code php qui insère le lien et l'image:

if($empty_cart) { ?>
  <div style="margin: 0 auto;">
    <?php if(!$vmMinicart) { ?>
        <a href="http://virtuemart.net/" target="_blank">
          <img src="<?php echo $mm_action_url ?>components/com_virtuemart/shop_image/ps_image/menu_logo.gif" alt="VirtueMart" width="80" border="0" /></a>
        <br />
    <?php }
    echo $VM_LANG->_('PHPSHOP_EMPTY_CART') ?>
  </div>
<?php } 

ligne 4: c'est le lien

ligne 5: c'est l'image

On peut donc changer ici le lien de l'image, et l'image évidemment.

Si on souhaite que le mini-panier ne s'affiche pas lorsqu'il est vide, le plus simple est de remplacer le code ci-dessus par celui-ci

if($empty_cart) { ?>
    <div style="margin: 0 auto;">
    </div>
<?php } 

Je souhaite modifier maintenant les messages qui vont s'afficher à l'écran, par exemple lorsque le panier est vide.
A la place de 'votre panier est actuellement vide' je vais mettre 'Votre panier est vide'

Petite modif mais intéressante dans l'étude pour les suivantes.

Repérons dans notre page 'PHPSHOP_EMPTY_CART' qui semble être (si mon anglais est correct) la variable que l'on cherche.
  Remplaçons-là par notre texte directement pour voir l'impact:

echo 'Votre panier est actuellement vide';//$VM_LANG->_('PHPSHOP_EMPTY_CART')

C'est ok, mon message s'affiche.

Pour modifier les messages de façon propre et sans craindre une mise à jour de virtuemart, se reporter à cet article:

Virtuemart et la personnalisation des messages

On va ensuite essayer de modifier le div conteneur du mini-panier pour pouvoir le piloter via css.

Cette partie fera l'objet d'un développement ultérieur:

Au départ il est créé comme ça:

il faut encadrer ce div avec le mien:

id="conteneur_panier_gauche"