Die Vorlagendatei der Katalogproduktliste lautet list.phtml
. Wobei das Rendern aller Produkte in der Kategorie mithilfe einer foreach
Schleife erfolgt.
Ich bin verwirrt über die Darstellung der price.phtml
. Weil es keinen Block dafür im Griff gibt<catalog_category_default>
Jetzt wird <?php echo $this->getPriceHtml($_product, true) ?>
der Preis des Produkts zurückgegeben.
Wie ist diese Methode verknüpft price.phtml
?
magento-1.7
price
template
Ricky Sharma
quelle
quelle
Antworten:
Produktpreisanzeige
Die Methode
getPriceHtml()
ist in der Blockklasse definiertMage_Catalog_Block_Product_Abstract
.Die Methode verwendet einen Preisrenderer, der vom Produkttyp abhängt:
Der Preisrenderer ist ein Block mit einer zugehörigen Vorlage. Beides hängt vom Produkttyp ab.
Wenn für den angegebenen Produkttyp kein Block oder keine Vorlage definiert ist, werden standardmäßig der
catalog/product_price
Block und diecatalog/product/price.phtml
Vorlage verwendet.Wo sind die Preisrenderer und Vorlagen für Produkttypen definiert?
Die Preisblöcke und Renderer werden normalerweise mithilfe von Layout-XML angegeben, sodass Module, die neue Produkttypen hinzufügen, problemlos auch ihre eigenen Renderer hinzufügen können. Beispielsweise. Das Produktpaket fügt den Preisrenderer wie folgt in die
bundle.xml
Layoutdatei ein:Benutzerdefinierte Preisvorlagen oder Renderer
Mit demselben Mechanismus können auch die Standardrenderer überschrieben werden. Wenn Sie nur die Vorlage ändern und den Standardpreisblocktyp beibehalten möchten, rufen Sie einfach
addPriceBlockType
die Layoutdatei mit dem Standardblock (siehe oben) und Ihrer Vorlage auf.Rendern des Preisblocks
Der Code zum Rendern des Preisblocks sieht folgendermaßen aus:
Die Variablen
$displayMinimalPrice
und$idSuffix
sind optionale Argumente für diegetPriceHtml
Methode.Das
$idSuffix
wird in der Preisvorlage verwendet, um die CSS-ID des<span>
Tags zu vervollständigen, das den tatsächlichen Preis umgibt. Beispiel:quelle