所以我一直在研究一個Magento模塊,當用戶沒有登錄時隱藏價格。我得到它的工作感謝@AlanStorm,但我只是想確保它我正在爲最好的方法而努力。最好在模板中調用模板Magento
我所做的是設定不同的模板爲* catalog_product_price_template *塊,並從那裏我做了所有的邏輯
<?php $_message = Mage::getStoreConfig('catalog/pricehideconfig/title');
$_enabled = Mage::getStoreConfig('catalog/pricehideconfig/active');
$_current_template = Mage::getBaseDir('design')
. '/frontend/'
. Mage::getSingleton('core/design_package')->getPackageName() . '/'
. Mage::getSingleton('core/design_package')->getTheme('frontend') .'/'
. 'template/catalog/product/price.phtml';
$_default_template = Mage::getBaseDir('design') . '/frontend/base/default/template/catalog/product/price.phtml';
?>
<p>
<?php if ( $_enabled && !($this->helper('customer')->isLoggedIn())) { ?>
<?php echo $_message; ?>
<?php } else {
if (file_exists($_current_template)){
include $_current_template;
} else{
include $_default_template;
}
} ?>
</p>
然而,兩個部分似乎真的不自然
調用「原始'或默認模板代碼的價格感覺不對,Magento是否提供任何功能來做到這一點,在模板中調用默認模板,同時檢查模板是否存在於當前包中,然後恢復爲默認模板,如果沒有?
我認爲模板應該只用於演示文稿,所以變量賦值應該移動到一個塊,但我不能這樣做,因爲我只是設置模板,而不是擴展* Mage_Catalog_Block_Product_Price_Template *
首先,這邏輯屬於塊類定義,而不是一個模板。 – benmarks