1

我正在尝试覆盖 Magento 1.9 的目录层类,以便在长时间查找错误后无法工作:(

日志中没有错误,模块工作正常,除了模型重写。

应用程序/etc/modules/comx_fab.xml:

<?xml version="1.0"?>
<config>
    <modules>
        <Comx_Fab>
            <active>true</active>
            <codePool>local</codePool>

        <depends>
                <Mage_Catalog />
        </depends>
        </Comx_Fab>
    </modules>
</config>

应用程序/代码/本地/Comx/Fab/etc/config.xml:

<?xml version="1.0"?>
<config>
    <modules>
        <Comx_Fab>
            <version>0.2.0</version>
        </Comx_Fab>
    </modules>

    <global>
        <blocks>
            <catalog>
                <rewrite>
                    <product_list_toolbar>Comx_Fab_Catalog_Block_Product_List_Toolbar</product_list_toolbar>
                </rewrite>
            </catalog>
        <page>
        <rewrite>
            <html_topmenu>Comx_Fab_Page_Block_Html_Topmenu</html_topmenu>
        </rewrite>
        </page>
        </blocks>
        <models>
        <catalog>
                <rewrite>
                    <layer>Comx_Fab_Catalog_Model_Layer</layer>
                </rewrite>
            </catalog>
        </models>
    </global>
</config>

app/code/local/Comx/Fab/Catalog/Model/Layer.php:

<?php
class Comx_Fab_Catalog_Model_Layer extends Mage_Catalog_Model_Layer {
/**
 * Initialize product collection
 *
 * @param Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection $collection
 * @return Mage_Catalog_Model_Layer
 */
public function prepareProductCollection($collection) {
    exit('Good!');
}
}

已经完成了:

  • 缓存刷新,“缓存”文件夹被删除,
  • 将我的 magento 代码与当前的 magento 版本进行比较(无差异)
  • 检查所有者/chmod

相关: Magento:如何覆盖本地模块中的模型

4

3 回答 3

2

成立!:)

这是扩展冲突!

如何解决:

  1. 检查扩展与这个免费的 magento 模块冲突:https ://marketplace.magento.com/alekseon-modules-conflict-detector.html
  2. 找到冲突的扩展并使用一种解决方案来解决(阅读底部“如何解决冲突?”)
  3. 清除缓存

就我而言,只需将扩展顺序添加到“依赖”功能中:

<depends>
    <Mage_Catalog />
    <Trego_Ajaxfilter />
</depends>

如何解决冲突? 您有 3 种解决冲突的选择:

  1. 将一个冲突文件中的代码合并到另一个文件中,并在一个文件中关闭 rewrite config.xml
  2. 在一个 config.xml 中关闭重写,然后使冲突的扩展 PHP 文件扩展另一个扩展
  3. 使用使一个扩展依赖于另一个扩展的能力。然后他们将按该顺序重写

阅读更多: http ://www.webshopapps.com/blog/2010/11/resolving-magento-extension-conflicts/

于 2014-05-22T10:31:59.280 回答
1

其他来到这里的人可能会发现这很有用,特别是如果他们可以在“禁用模块输出”列表中找到正在加载的模块:管理面板 > 配置 > 高级 > 高级。

根据您设置本地环境的方式,您可能已在 local.xml 中复制,app/etc/local.xml其中包含: <disable_local_modules>false</disable_local_modules>

这会阻止本地 codePool 中的任何内容运行,但它仍会显示在 Disable Module Outputs 列表中。

于 2015-04-12T20:14:39.820 回答
0

您的模块结构中的问题....

Cong=fig xml 路径和模型 id 路径中的主要问题

app/code/local/Comx/Fab/Catalog/Model/Layer.php

应该

app/code/local/Comx/Fab/Model/Catalog/Layer.php

还要根据文件路径更改路径类

class Comx_Fab_Catalog_Model_Layer extends Mage_Catalog_Model_Layer {

class Comx_Fab_Model_Catalog_Layer extends Mage_Catalog_Model_Layer {

所有Path结构模块错误和类路径。修改所有Block文件路径

这里修改的config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Comx_Fab>
            <version>0.2.0</version>
        </Comx_Fab>
    </modules>
    <global>
        <blocks>
            <catalog>
                <rewrite>
                    <product_list_toolbar>Comx_Fab_Block_Catalog_Product_List_Toolbar</product_list_toolbar>
                </rewrite>
            </catalog>
        <page>
        <rewrite>
            <html_topmenu>Comx_Fab_Block_Page_Html_Topmenu</html_topmenu>
        </rewrite>
        </page>
        </blocks>
        <models>
        <catalog>
                <rewrite>
                    <layer>Comx_Fab_Model_Catalog_Layer</layer>
                </rewrite>
            </catalog>
        </models>
    </global>
</config>

Magento 模块结构的更多细节

http://www.insync.co.in/creating-custom-module-magento/
https://mementia.com/creating-custom-magento-module/
http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/custom_module_with_custom_database_table
于 2014-05-22T04:22:28.107 回答