Tampilan harga produk
Metode getPriceHtml()
ini didefinisikan dalam kelas blok Mage_Catalog_Block_Product_Abstract
.
Metode ini menggunakan penyaji harga yang tergantung pada jenis produk:
$type_id = $product->getTypeId(); // e.g. simple, configurable, bundle, grouped, ...
$this->_preparePriceRenderer($type_id)
Penyaji harga adalah blok dengan templat terkait. Keduanya tergantung pada jenis produk.
Jika tidak ada blok atau template yang ditentukan untuk jenis produk yang ditentukan, itu default ke catalog/product_price
blok dan catalog/product/price.phtml
template.
Di mana penentu harga dan templat untuk jenis produk ditentukan?
Blok harga dan penyaji biasanya ditentukan menggunakan tata letak XML, sehingga modul yang menambahkan jenis produk baru dapat dengan mudah menambahkan penyaji mereka sendiri juga. Sebagai contoh. produk yang dibundel menambahkan renderer harganya sebagai berikut dalam bundle.xml
file tata letak:
<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>
Templat harga khusus atau penyaji
Menggunakan mekanisme yang sama juga memungkinkan untuk mengganti penyaji default. Jika Anda hanya ingin mengubah template, dan tetap menggunakan tipe blok harga default, cukup panggil addPriceBlockType
file layout dengan blok default (lihat di atas) dan template Anda.
Merender blok harga
Kode untuk benar-benar membuat blok harga terlihat seperti ini:
$this->_preparePriceRenderer($type_id)
->setProduct($product)
->setDisplayMinimalPrice($displayMinimalPrice)
->setIdSuffix($idSuffix)
->toHtml();
The $displayMinimalPrice
dan $idSuffix
variabel argumen opsional dengan getPriceHtml
metode.
public function getPriceHtml($product, $displayMinimalPrice = false, $idSuffix = '')
The $idSuffix
digunakan dalam template harga untuk menyelesaikan id CSS dari <span>
tag seputar harga sebenarnya, misalnya:
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">