2012-06-27 112 views
0

所以我找到了一个关于动态期权定价问题的答案,但这导致我被困住了。我可以理解大部分答案,但是当涉及到XML和模块实现时,我就迷了路。Magento中的核心覆盖

这里就是我想要做的事:

http://www.magentocommerce.com/boards/viewthread/260544/#t348802

需要重写Mage_Catalog_Model_Product_Type_Price模型和Mage_Catalog_Block_Product_View_Options块。改性Price.php

位于

/app/core/local/rtega/dynamicPrice/Model/Product/Type/Price.php

改性选项。 php位于

/app/core/local/rtega/dyna micPrice /座/产品/浏览/ Options.php

有无rtega_dynamicPrice.xml在

/应用程序的/ etc /模块/

下面是电流config.xml位于

/应用/核心/本地/ rtega/dynamicPrice的/ etc/

<?xml version="1.0"?> 
<config> 
    <modules> 
    <rtega_dynamicPrice> 
     <version>1.0.0</version> 
    </rtega_dynamicPrice> 
    </modules> 
    <global> 
    <blocks> 
     <catalog> 
     <rewrite> 
      <product_view_options>rtega_dynamicPrice_Block_Product_View_Options</product_view_options> 
     </rewrite> 
     </catalog> 
    </blocks> 
    <catalog> 
     <product> 
     <type> 
      <configurable> 
      <price_model>rtega_dynamicPrice_Model_Product_Type_Price</price> 
      </configurable> 
     </type> 
     </product> 
    </catalog> 
    </global> 
</config> 

任何帮助,不胜感激!

回答

3

有三件事要提。首先,我不知道Magento会如何处理你的“rtega”和“dynamicPrice”的套管。这可能会导致现在或未来的问题。我推荐的套子是“Rtega”和“Dynamicprice”。但它可能会很好。

其次,你的块重写xml看起来不错,但是重写目录模型是不正确的。我希望看到:

<config> 
    ... 
    <global> 
     ... 
     <models> 
      <catalog> 
       <rewrite> 
        <product_type_price>rtega_dynamicPrice_Model_Product_Type_Price</product_type_price> 
       </rewrite> 
      </catalog> 
     </models> 
     ... 
    </global> 
    ... 
</config> 

,最好的办法去想这是打破它,你如何实例摆在首位的原始模型。在这种情况下,我们会打电话

Mage::getModel("catalog/product_type_price"); 

所以第一个XML节点是“模型”,因为这是一个模型,接下来的XML节点是斜杠(目录)前面的部分,然后添加一个重写标签,斜线成为下一个XML节点,像这样再经过:

/app/core/local/rtega/dynamicPrice/Model/Product/Type/Price.php and 
/app/core/local/rtega/dynamicPrice/Block/Product/View/Options.php 

如果你是:

<models> 
    <catalog> 
     <rewrite> 
      <product_type_price> 

第三,在这种情况下它看到你所提到的文件是在是很重要的还没有这样做,你应该d来定义这样的类:

class rtega_dynamicPrice_Model_Product_Type_Price extends Mage_Catalog_Model_Product_Type_Price { 

然后只是重新定义你想修改的函数。

我希望这可以帮助你一些!

+0

自动装载机不会喜欢小写文件夹的名称。 codePool下的所有文件夹和文件名必须在区分大小写的文件系统上大写。 – benmarks