Le fichier modèle de la page de liste des produits de catalogue est list.phtml
. Où le rendu de tous les produits de la catégorie se produit en utilisant la foreach
boucle.
Je suis confus quant au rendu du price.phtml
. Parce qu'il n'y a pas de bloc pour cela dans la poignée<catalog_category_default>
Maintenant, <?php echo $this->getPriceHtml($_product, true) ?>
retourne le prix du produit.
Comment cette méthode est-elle liée price.phtml
?
magento-1.7
price
template
Ricky Sharma
la source
la source
Réponses:
Affichage du prix du produit
La méthode
getPriceHtml()
est définie dans la classe de blocMage_Catalog_Block_Product_Abstract
.La méthode utilise un rendu de prix qui dépend du type de produit:
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 ducatalog/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: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:
Les variables
$displayMinimalPrice
et$idSuffix
sont des arguments facultatifs de lagetPriceHtml
méthode.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:la source