Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento 1.7自定义模块可以重写类,但不能插入块_Magento_Module_Rewrite_Overriding - Fatal编程技术网

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

Magento 1.7自定义模块可以重写类,但不能插入块,magento,module,rewrite,overriding,Magento,Module,Rewrite,Overriding,我在magento 1.7.0.2中创建了一个自定义模块,它可以完成两件事。好吧,现在它做了一件事,这就是我来这里的原因 它成功地做到了按sku对分组产品的关联产品进行排序 然而,我也试图覆盖一个模板文件,但它不起作用。我有10个小时的时间不停地做这件事 我想用groupedproductfilter/product/view/type/grouped.phtml替换catalog/product/view/type/grouped.phtml etc/modules/Lightsnholste

我在magento 1.7.0.2中创建了一个自定义模块,它可以完成两件事。好吧,现在它做了一件事,这就是我来这里的原因

它成功地做到了按sku对分组产品的关联产品进行排序

然而,我也试图覆盖一个模板文件,但它不起作用。我有10个小时的时间不停地做这件事

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

etc/modules/Lightsnholsters\u GroupedProductFilter.xml

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

真的
地方的
LightsHolsters/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>

0.1.0
灯枪套\分组产品过滤器\型号\产品\类型\分组
Lightsnholsters\u GroupedProductFilter\u助手
灯罩组产品过滤器组
groupedproductfilter.xml
layout/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替换它的块。我现在要做的就是回显“测试”,这样我就可以看到它出现了,然后我会从那里得到它

我还购买了其他模块,它们以相同的方式替换模板文件,但我正在使用的模块不起作用


非常感谢您让我走上了正确的方向。

您是否尝试过设置模板

如果你这样做

<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>

groupedproductfilter/product/view/type/grouped.phtml
结果如预期,产品信息块将被重写

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

<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>

groupedproductfilter/product/view/type/grouped.phtml
您将重写整个产品页面

谢尔盖·古克,谢谢你帮助我。我终于让它工作了。在我的布局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。

Yes。我的许多搜索都有相同的答案。然而,这对我不起作用。在我用于图像的模块中,他们使用了我想要使用的确切方法,并且在他们的模块中工作得非常好。我试着模仿它,但它对我也不起作用。他们的答案看起来是这样的我认为我的块类型错了,但事实是我不太了解命名约定,这可能是我的问题所在。我已经更新了我的答案,带有屏幕截图(重新创建了你的扩展名),谢谢你帮我取得了一些进展。这种方法最终呼应出了我的hello world文本。但在进一步测试之后,我无法使用$this调用我的方法$这应该参考我的类Lights枪套\u GroupedProductFilter\u Block\u Product\u View\u Type\u Grouped扩展了Mage\u Catalog\u Block\u Product\u View\u Type\u Grouped。你知道如何实现这两个功能吗?我知道这是可以做到的,因为我的网站包含可以做到这一点的模块,但它让我发疯。谢谢如果Sergei帮了你很多忙,你可能会想投票支持他的答案并接受你的答案,所以我们知道这个问题已经有了答案。Seth,尽管他很善良,但他的答案对我来说并不合适,我找到了我自己的答案。我也投票支持了他。我以前也从他的公司prestashop购买过代码。