Magento-重写Mage\u目录\u块\u导航

Magento-重写Mage\u目录\u块\u导航,magento,overriding,magento-1.9.2.1,Magento,Overriding,Magento 1.9.2.1,我试图重写Mage_Catalog_Block_导航类,但无法使其正常工作。当我刷新网站(清除缓存等),然后检查system.log文件时,它是空的。。。(我也尝试过在html中添加代码,但也没有成功) 我目前有以下情况: 公司/模块/区块/目录/导航 <?php class Company_Module_Block_Catalog_Navigation extends Mage_Catalog_Block_Navigation { public function ren

我试图重写Mage_Catalog_Block_导航类,但无法使其正常工作。当我刷新网站(清除缓存等),然后检查system.log文件时,它是空的。。。(我也尝试过在html中添加代码,但也没有成功)

我目前有以下情况:

公司/模块/区块/目录/导航

<?php

class Company_Module_Block_Catalog_Navigation
    extends Mage_Catalog_Block_Navigation
{
    public function renderCategoriesMenuHtml($level = 0, $outermostItemClass = '', $childrenWrapClass = '')
    {
        Mage:log("running here");
        return parent::renderCategoriesMenuHtml($level, $outermostItemClass, $childrenWrapClass);

    }
}

您可以尝试此解决方案

config.xml

<global>
    ...
    <blocks>
        ...
        <catalog>
            <rewrite>
                <navigation>Company_Module_Block_Catalog_Navigation</navigation>
            </rewrite>
        </catalog>
        ...
    </blocks>
    ...
</global>
<global>
    <blocks>
      <catalog>
        <rewrite>
            <navigation>Company_Module_Block_Navigation</navigation>
        </rewrite>
    </catalog>
  </blocks>
</global>

公司模块块导航
您的块文件如下所示

<?php
   class Company_Module_Block_Navigation extends Mage_Catalog_Block_Navigation
   {
     // some code
   }
?>

或者您可以简单地在块文件中尝试此代码

<?php
   require_once 'Mage/Catalog/block/Navigation.php';
   class Company_Module_Block_Navigation extends Mage_Catalog_Block_Navigation

您需要按如下方式注册块:

在app/etc/local.xml中

<global>
    <blocks>
        <catalog>
            <rewrite>
                <navigation>Company_Module_Block_Navigation</navigation>
            </rewrite>
        </catalog>
    </blocks>
</global>

公司模块块导航
我想这会有帮助的

请注意:通过在local.xml中添加上述代码,可以使重写成为全局的,这并不总是必需的,但这将帮助您确定重写是否有效


网站上还有另一种可能的扩展冲突。

进一步搜索后,发现我使用的模板没有使用此块,这将解释为什么重写没有产生任何结果…

尝试以下步骤:

1/将这些代码添加到Company/Module/Block/Catalog/Navigation.php文件中

protected function _construct(){
    Mage::log("it's here");
}
2/创建子类别


3/在前端,转到子类别,然后检查日志文件

我认为您的代码中有一个错误,特别是在这一行代码中:

Mage:log("running here");
应该是:

Mage::log("running here");

希望有此帮助。

如果尚未创建Company_Module.xml文件,请创建该文件。看看我的最新答案。我尝试了上面的代码,但没有成功。我想这意味着重写根本不起作用?请在根目录中创建一个php文件,并尝试打印以下代码:包括'app/Mage.php';回声“;打印(Mage::app()->getConfig()->getXpath('//global//rewrite');出口如果在这里搜索你的overide类,如果没有,那么其他东西是不正确的
Mage::log("running here");