重写Magento块/第三方扩展的类

问题描述

我正在尝试重写扩展的Block类,并引发了异常:

Mage_Core_Exception: Invalid block type:
  Hajdi_Brands_Block_Navigation
  in /Users/jure/Code/hajdi/app/Mage.php:598

这里提到了相同的重写。此重写包含与下面的链接上可接受的解决方案相同的代码,但不起作用。

How to rewrite/extend a Magento class in an existing third party extension

知道我在做什么错吗?

app / etc / modules / Hajdi_Brands.xml

<config>
    <modules>
        <Hajdi_Brands>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Infortis_UltraMegamenu />
            </depends>
        </Hajdi_Brands>
    </modules>
</config>

app / code / local / Hajdi / Brands / Block / Navigation.php

<?xml version="1.0"?>
<config>
    <modules>
        <Hajdi_Brands>
            <version>1.0.0</version>
        </Hajdi_Brands>
    </modules>
    <frontend>
        <routers>
            <hajdi_brands>
                <use>standard</use>
                <args>
                    <module>Hajdi_Brands</module>
                    <frontName>test</frontName>
                </args>
            </hajdi_brands>
        </routers>
        <layout>
            <updates>
                <hajdi_brands>
                    <file>hajdi_brands.xml</file>
                </hajdi_brands>
            </updates>
        </layout>
    </frontend>
    <global>
        <blocks>
            <ultramegamenu>
                <rewrite>
                    <navigation>
                        Hajdi_Brands_Block_Navigation
                    </navigation>
                </rewrite>
            </ultramegamenu>
            <hajdi_brands>
                <class>Hajdi_Brands_Block</class>
            </hajdi_brands>
        </blocks>
    </global>
</config>

app / code / local / Hajdi / Brands / Block / Navigation.php:

class Hajdi_Brands_Block_Navigation extends Infortis_UltraMegamenu_Block_Navigation

编辑: 这必须在一行中。

<navigation>
    Hajdi_Brands_Block_Navigation
</navigation>
<navigation>Hajdi_Brands_Block_Navigation</navigation>

\ n在堆栈跟踪中响起了钟声: Mage_Core_Model_Layout-> _ getBlockInstance(' \ n ... ',数组)

Mage_Core_Exception: Invalid block type:
                        Hajdi_Brands_Block_Navigation
                     in /Users/jure/Code/hajdi/app/Mage.php:598
Stack trace:
#0 /Users/jure/Code/hajdi/app/code/core/Mage/Core/Model/Layout.php(495): Mage::throwException('Invalid block t...')
#1 /Users/jure/Code/hajdi/app/code/core/Mage/Core/Model/Layout.php(437): Mage_Core_Model_Layout->_getBlockInstance('\n              ...',Array)
#2 /Users/jure/Code/hajdi/app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('ultramegamenu/n...','catalog.topnav....')
#3 /Users/jure/Code/hajdi/app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('ultramegamenu/n...','catalog.topnav....')
#4 /Users/jure/Code/hajdi/app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layout_Element),Object(Mage_Core_Model_Layout_Element))
#5 /Users/jure/Code/hajdi/app/code/core/Mage/Core/Model/Layout.php(206): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#6 /Users/jure/Code/hajdi/app/code/core/Mage/Core/Model/Layout.php(210): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#7 /Users/jure/Code/hajdi/app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks()
#8 /Users/jure/Code/hajdi/app/code/core/Mage/Core/Controller/Varien/Action.php(269): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#9 /Users/jure/Code/hajdi/app/code/local/Hajdi/Brands/controllers/IndexController.php(6): Mage_Core_Controller_Varien_Action->loadLayout()
#10 /Users/jure/Code/hajdi/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Hajdi_Brands_IndexController->indexAction()
#11 /Users/jure/Code/hajdi/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('index')
#12 /Users/jure/Code/hajdi/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#13 /Users/jure/Code/hajdi/app/code/core/Mage/Core/Model/App.php(381): Mage_Core_Controller_Varien_Front->dispatch()
#14 /Users/jure/Code/hajdi/app/Mage.php(686): Mage_Core_Model_App->run(Array)
#15 /Users/jure/Code/hajdi/index.php(83): Mage::run('','store')
#16 /Users/jure/.composer/vendor/weprovide/valet-plus/server.php(131): require('/Users/jure/Cod...')
#17 {main}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)