Affichage du prix du produit
La méthode getPriceHtml()
est définie dans la classe de bloc Mage_Catalog_Block_Product_Abstract
.
La méthode utilise un rendu de prix qui dépend du type de produit:
$type_id = $product->getTypeId(); // e.g. simple, configurable, bundle, grouped, ...
$this->_preparePriceRenderer($type_id)
Le rendu des prix est un bloc avec un modèle associé. Les deux dépendent du type de produit.
Si aucun bloc ou modèle n'est défini pour le type de produit spécifié, il s'agit par défaut du catalog/product_price
bloc et du catalog/product/price.phtml
modèle.
Où sont définis les rendus de prix et les modèles pour les types de produits?
Les blocs de prix et les moteurs de rendu sont généralement spécifiés à l'aide de la disposition XML, de sorte que les modules qui ajoutent de nouveaux types de produits peuvent également facilement ajouter leurs propres moteurs de rendu. Par exemple. le produit fourni ajoute son rendu de prix comme suit dans le bundle.xml
fichier de mise en page:
<default>
<reference name="catalog_product_price_template">
<action method="addPriceBlockType">
<type>bundle</type>
<block>bundle/catalog_product_price</block>
<template>bundle/catalog/product/price.phtml</template>
</action>
</reference>
</default>
Modèles de prix ou rendus personnalisés
En utilisant le même mécanisme, il est également possible de remplacer les rendus par défaut. Si vous souhaitez simplement modifier le modèle et conserver le type de bloc de prix par défaut, appelez simplement addPriceBlockType
le fichier de mise en page avec le bloc par défaut (voir ci-dessus) et votre modèle.
Rendre le bloc de prix
Le code pour rendre réellement le bloc de prix ressemble à ceci:
$this->_preparePriceRenderer($type_id)
->setProduct($product)
->setDisplayMinimalPrice($displayMinimalPrice)
->setIdSuffix($idSuffix)
->toHtml();
Les variables $displayMinimalPrice
et $idSuffix
sont des arguments facultatifs de la getPriceHtml
méthode.
public function getPriceHtml($product, $displayMinimalPrice = false, $idSuffix = '')
Le $idSuffix
est utilisé dans le modèle de prix pour compléter l'ID CSS de la <span>
balise entourant le prix réel, par exemple:
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">