Magento 1.7自定义模块可以重写类但不插入块

时间:2013-11-01 21:11:47

标签: magento module rewrite override

我在magento 1.7.0.2中创建了一个自定义模块,可以完成两件事。好吧,目前它做了一件事,这就是为什么我在这里。

它成功做的是通过sku对我的分组产品的相关产品进行排序。

但是,我也试图覆盖模板文件,但它无法正常工作。我有10个小时不间断进入这个。

我想用groupedproductfilter / product / view / type / grouped.phtml替换catalog / product / view / type / grouped.phtml。

等/模块/ Lightsnholsters_GroupedProductFilter.xml

<config>
  <modules>
    <Lightsnholsters_GroupedProductFilter>
      <active>true</active>
      <codePool>local</codePool>
    </Lightsnholsters_GroupedProductFilter>
  </modules>
</config> 

Lightsnholsters / GroupedProductFilter的/ etc / config.xml中

<config> 

  <modules>
    <Lightsnholsters_GroupedProductFilter>
      <version>0.1.0</version>
    </Lightsnholsters_GroupedProductFilter>
  </modules>

  <global>
    <models>     
      <catalog>
        <rewrite>
          <product_type_grouped>Lightsnholsters_GroupedProductFilter_Model_Product_Type_Grouped</product_type_grouped><!-- sort grouped products by sku -->
        </rewrite>
      </catalog>        
    </models>

    <helpers>
      <groupedproductfilter>
        <class>Lightsnholsters_GroupedProductFilter_Helper</class>
      </groupedproductfilter>
    </helpers>  

    <blocks>
      <groupedproductfilter>
        <class>Lightsnholsters_GroupedProductFilter_Block</class>
      </groupedproductfilter>   
    </blocks>   
  </global>

  <frontend>
    <layout>
      <updates>
        <groupedproductfilter>
          <file>groupedproductfilter.xml</file>
        </groupedproductfilter>
      </updates>
    </layout>
  </frontend>

</config>

布局/ groupedproductfilter.xml

<?xml version="1.0"?>
<layout>
  <catalog_product_view>
    <PRODUCT_TYPE_grouped>
      <reference name="product.info">
        <remove name="product.info.grouped"/>
        <block type="groupedproductfilter/product_view_type_grouped" name="grouped" as="product_type_data" template="groupedproductfilter/product/view/type/grouped.phtml"/> 
      </reference>
    </PRODUCT_TYPE_grouped> 
  </catalog_product_view>
</layout>

layout / groupedproductfilter.xml成功删除了product.info.grouped,但是我将使用groupedproductfilter / product / view / type / grouped.phtml替换它的块在任何情况下都不会显示。我现在要做的就是回声'测试',这样我才能看到它出现然后我会从那里拿走它。

我购买的其他模块以相同的方式替换模板文件,但我正在做的那个模块无效。

非常感谢你让我朝着正确的方向前进。

2 个答案:

答案 0 :(得分:1)

你试过setTemplate吗?

如果你这样做

<layout>
<PRODUCT_TYPE_grouped>
        <reference name="product.info.grouped">
                <action method="setTemplate">
                        <template>groupedproductfilter/product/view/type/grouped.phtml</template>
                </action>
        </reference>
</PRODUCT_TYPE_grouped>
</layout>

结果如预期,产品信息块将被重新编辑 product info

如果你想重写整个页面,试试这个

<layout>
<PRODUCT_TYPE_grouped>
        <reference name="product.info">
                <action method="setTemplate">
                        <template>groupedproductfilter/product/view/type/grouped.phtml</template>
                </action>
        </reference>
</PRODUCT_TYPE_grouped>
</layout>

您将重新获得整个产品页面 whole page

答案 1 :(得分:0)

谢谢Guk,谢谢你试图帮助我。我终于搞定了。在我的布局xml文件中,我将其更改为此。

<?xml version="1.0"?>
<layout version="0.1.0">
  <PRODUCT_TYPE_grouped>
    <reference name="product.info">
      <remove name="product.info.grouped"/>
      <block type="groupedproductfilter/product_view_type_grouped" name="grouped" as="product_type_data" template="groupedproductfilter/product/view/type/grouped.phtml"/>
    </reference>
  </PRODUCT_TYPE_grouped>
</layout>

它现在忽略catalog / product / view / type / grouped.phtml并使用groupedproductfilter / product / view / type / grouped.phtml。