Magento - 使用替代的"price.phtml"(除了现有的)

sha*_*une 5 magento

我正在寻找一种方法,template/catalog/product/price.phml在一个特定的位置使用备用,并继续使用所有其他位置的现有price.phtml文件.

为了进一步解释,我需要显示正常价格,然后在其下方显示另一个特价 - 但仅在产品页面上显示(对于显示的主要产品).这个特殊价格不是可以通过目录价格规则计算的价格,因此我编写了自己的模块来进行计算.因此,在我显示价格的任何地方,我想用常规的ol' template/catalog/product/price.phtml文件显示...但对于产品页面(主要产品 - 不是相关的,加售等)我想使用我自己的自定义template/catalog/product/price-custom.phtml模板文件.有人可以帮忙吗?

通常我只是查看布局xml文件(例如catalog.xml)来查找这些类型的东西,但price.phtml有点特别 - 它并不那么简单.而对于我的生活,我无法弄清楚是否有一种简单的方法可以在被查看的页面上有条件地交换它.我知道我可以更新price.phtml总是打印出这个额外的价格,然后用css来隐藏价格到处都有,但我宁愿不这样做,如果可能的话.

(你也许想知道我只有简单的产品.)

clo*_*eek 5

这可以在布局XML文件中完成:

<layout>
    <PRODUCT_TYPE_simple>
        <reference name="product.clone_prices">
            <action method="setTemplate">
                <template>catalog/product/price-custom.phtml</template>
            </action>
        </reference>
    </PRODUCT_TYPE_simple>
</layout>
Run Code Online (Sandbox Code Playgroud)


小智 5

创建一个local.xml文件,将其放入app/frontend/default/YOURTEMPLATE/layout

local.xml文件中,添加:

<?xml version="1.0" encoding="UTF-8"?>
<layout>
    <!-- Override price template on product view page -->               
    <PRODUCT_TYPE_simple>
        <reference name="product.info.simple">
            <action method="setTemplate">
                <template>catalog/product/price_product_page.phtml</template>
            </action>
        </reference>
    </PRODUCT_TYPE_simple>
    <!-- /Override price template on product view page -->              
</layout>
Run Code Online (Sandbox Code Playgroud)

创建一个副本catalog/product/price.phtml并将其放入YOURTEMPLATE/templates/product/product_price_page.phtml

这将覆盖模板中的price.phtml,并替换为product_price_page.phtml


Cha*_* E. 1

或者在你的 php 块中。

请参阅此处的示例:

Mage_Catalog_Block_Product_Abstract

protected $_priceBlockDefaultTemplate = 'catalog/product/price.phtml';
protected $_tierPriceDefaultTemplate  = 'catalog/product/view/tierprices.phtml';
Run Code Online (Sandbox Code Playgroud)