Magento-使用替代的;价格.phtml“;(除了现有的)

Magento-使用替代的;价格.phtml“;(除了现有的),magento,Magento,我正在寻找一种方法,在一个特定位置使用替代的模板/目录/产品/price.phml,并在所有其他位置继续使用现有的price.phtml文件 为了进一步解释,我需要显示常规价格,然后在其正下方显示另一个特殊价格-但仅在产品页面上显示(对于正在显示的主产品)。这个特殊价格不是可以通过目录价格规则计算的价格,所以我编写了自己的模块来进行计算。因此,无论我在哪里显示价格,我都希望使用常规的ol'模板/catalog/product/price.phtml文件显示价格。。。但是对于产品页面(主产品-不是

我正在寻找一种方法,在一个特定位置使用替代的
模板/目录/产品/price.phml
,并在所有其他位置继续使用现有的price.phtml文件

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

通常我只是查看布局xml文件(例如catalog.xml)来查找这些类型的内容,但是price.phtml有点特殊——它并没有那么简单。就我的一生而言,我不知道是否有一种简单的方法可以在被浏览的页面上有条件地交换它。我知道我可以更新price.phtml来打印这个额外的价格,然后使用css将价格隐藏在任何地方,但如果可能的话,我宁愿不这样做


(您可能还想知道我只有简单的产品。)

这可以在布局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>

目录/产品/价格-custom.phtml
或在php块中

请参见此处的示例:

图像\u目录\u块\u产品\u摘要

protected $_priceBlockDefaultTemplate = 'catalog/product/price.phtml';
protected $_tierPriceDefaultTemplate  = 'catalog/product/view/tierprices.phtml';

创建一个
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>

目录/产品/价格\u产品\u页面.phtml
创建一份
catalog/product/price.phtml
的副本,并将其放入
YOURTEMPLATE/templates/product/product\u price\u页面。phtml


这将覆盖模板中的price.phtml,并将其替换为
product\u price\u页面。phtml

实现它的正确方法:

<PRODUCT_TYPE_simple>
    <reference name="product.info.simple">
        <action method="addPriceBlockType"><type>simple</type><block>catalog/product_price</block><template>catalog/product/price-product-page.phtml</template></action>
    </reference>
</PRODUCT_TYPE_simple>

<PRODUCT_TYPE_configurable>
    <reference name="product.info.configurable">
        <action method="addPriceBlockType"><type>configurable</type><block>catalog/product_price</block><template>catalog/product/price-product-page.phtml</template></action>
    </reference>
</PRODUCT_TYPE_configurable>

simplecatalog/product_pricecatalog/product/price-product-page.phtml
可配置目录/product\U价格目录/product/price-product-page.phtml

我最近有一个类似的要求,在产品页面上使用不同的价格模板是首选的解决方案

价格块似乎是Magento中的一个特例(至少在RWD主题中),它在catalog.xml中定义为
句柄中的块类型和名称:

<block type="catalog/product_price_template" name="catalog_product_price_template" />

我接受了你的建议,把它和钟表匠的建议结合起来。下面是我所做工作的概述:我创建了一个扩展Mage_Catalog_Block_Product_Abstract的类,并用我自己模板文件的路径重写了$\u priceBlockDefaultTemplate变量。然后在local.xml布局文件中,根据这里的讨论,我对magento absact类方法做了一个修改,不能使用config rewrite重写。有人能确认吗?您的建议很有帮助,因为它使我走上了正确的道路。最后我做了这个,mymodule/simple是我创建的一个类,扩展了Mage_Catalog_Block_Product_Abstract。感谢您的帮助。使用删除“”,效果很好!thanks@SamuelLiew和Ryan Lucier您能为所有产品类型推荐类似的流程吗?我想对所有产品类型使用alternate price.phtml文件。@harishannam创建一个新问题,并链接到此问题。@harishannam使用编辑器窗口上方的“链接”按钮。。。?很抱歉你被停职了;恕我直言,SE网络太快了,无法惩罚或“堆积”人们的问题P
<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>
<catalog_product_view>
    <reference name="product.info">
        <action method="addPriceBlockType">
            <type>simple</type>
            <block>catalog/product_price</block>
            <template>catalog/product/price_product_page.phtml</template>
        </action>
        <action method="addPriceBlockType">
            <type>configurable</type>
            <block>catalog/product_price</block>
            <template>catalog/product/price_product_page.phtml</template>
        </action>
        <!-- Set for each product type as necessary e.g. bundled, virtual etc... -->
    </reference>
</catalog_product_view>