Ürün fiyat göstergesi
Yöntem getPriceHtml()blok sınıfında tanımlanır Mage_Catalog_Block_Product_Abstract.
Yöntem, ürün türüne bağlı olarak bir fiyat oluşturucu kullanır:
$type_id = $product->getTypeId(); // e.g. simple, configurable, bundle, grouped, ...
$this->_preparePriceRenderer($type_id)
Fiyat oluşturucu, ilişkili bir şablona sahip bir bloktur. Her ikisi de ürün tipine bağlıdır.
Belirtilen ürün türü için tanımlanmış bir blok veya şablon yoksa, varsayılan olarak catalog/product_priceblok ve catalog/product/price.phtmlşablon için kullanılır.
Ürün türleri için fiyat oluşturucular ve şablonlar nerede tanımlanır?
Fiyat blokları ve oluşturucular genellikle düzen XML'si kullanılarak belirtilir, böylece yeni ürün türleri ekleyen modüller kendi oluşturucularını da kolayca ekleyebilir. Örneğin. paketlenen ürün fiyat düzenleyicisini bundle.xmldüzen dosyasında aşağıdaki gibi ekler :
<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>
Özel fiyat şablonları veya oluşturucular
Aynı mekanizmayı kullanarak varsayılan oluşturucuları geçersiz kılmak da mümkündür. Yalnızca şablonu değiştirmek ve varsayılan fiyat bloğu türünü korumak istiyorsanız addPriceBlockType, düzen dosyasını varsayılan blok (yukarıya bakın) ve şablonunuzla arayın .
Fiyat bloğunu oluşturma
Aslında fiyat bloğunu oluşturmak için kod şuna benzer:
$this->_preparePriceRenderer($type_id)
->setProduct($product)
->setDisplayMinimalPrice($displayMinimalPrice)
->setIdSuffix($idSuffix)
->toHtml();
$displayMinimalPriceVe $idSuffixdeğişkenler isteğe bağlı argümanlar olan getPriceHtmlyöntem.
public function getPriceHtml($product, $displayMinimalPrice = false, $idSuffix = '')
$idSuffixCSS kimliği tamamlamak için fiyat şablonunda kullanılan <span>örneğin gerçek fiyatı, çevreleyen etikete:
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">