首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展Mage_Catalog_Block_Navigation

扩展Mage_Catalog_Block_Navigation
EN

Stack Overflow用户
提问于 2014-11-04 10:43:52
回答 2查看 1.6K关注 0票数 0

我在Magento是新来的,在我看来,这个问题应该很简单。

我想重写Mage_Catalog_Block_Navigation类,我已经创建了:包含(片段)的:app\code\local\Feno\Catalog\Block\Navigation.php

代码语言:javascript
复制
class Feno_Catalog_Block_Navigation extends Mage_Catalog_Block_Navigation
{
    public function renderCategoriesMenuHtml($level = 0, $outermostItemClass = '', $childrenWrapClass = '', $exclude_ids = array())
    {

app\code\local\Feno\Catalog\etc\config.xml中,我有:

代码语言:javascript
复制
<?xml version="1.0"?>
<config>

    <modules>
        <Feno_Catalog>
            <version>1.0.1</version>
        </Feno_Catalog>
    </modules>

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

</config>

但是,当我运行该页面时,会得到以下错误:

代码语言:javascript
复制
Invalid method Mage_Catalog_Block_Navigation::renderCategoriesMenuHtml(Array ...

所以它甚至没有接我的课..。

我尝试用以下内容添加app\etc\modules\Feno_Catalog.xml

代码语言:javascript
复制
<?xml version="1.0"?>
<config>
   <modules>
      <Feno_Catalog>
         <active>true</active>
         <codePool>local</codePool>
      </Feno_Catalog>
   </modules>
</config>

但这不管用。我是不是忘了什么?

就像我说的,我是Magento的新手,所以不知道该去哪里看看,谷歌和堆栈溢出也没能帮上忙。FYI,我使用PHPStorm,所以XML等等都是有效的(IDE检查)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-19 14:10:53

我要在这里回答我自己的问题。我把它放在搁置之前,我没有管理上一次,今天再试(花了我几个小时),并找到它在搜索和尝试所有的东西。

主要问题似乎是必须在/app/etc/local.xml中注册该块。

代码语言:javascript
复制
...
<config>
    <global>
        <blocks>
            <catalog>
                <rewrite>
                    <navigation>Feno_Catalog_Block_Navigation</navigation>
                </rewrite>
            </catalog>
        </blocks>
        <install>
        ...

在添加这个之后,它的工作非常完美!

找到这篇简短的博客文章:http://priyasmagento.blogspot.com/2010/07/override-navigation-block.html

决定增加博客的内容也,该网站似乎没有很好的维护,将是一个耻辱丢失的数据。(C) http://priyasmagento.blogspot.com/

  1. 在本地文件夹中创建mymodulepack文件夹。 路径: C:\wamp\www\triangeli\app\code\local\mymodulepack
  2. 在mymodulpack命名空间中创建目录文件夹。
  3. 在Catalog文件夹中创建块等助手文件夹。
  4. 在块文件夹中创建Navigation.php文件。重写该文件中的类和写入函数。
  5. 在etc文件夹中创建config.xml文件。
  6. 在“帮助”文件夹中创建Data.php文件。
  7. 要“激活”我的新模块“mymodulepack”:在全局范围下的文件app\etc\local.xml引用mymodulepack: false < mymodulepack_Catalog_Block_Navigation _前缀> 1
  8. 从管理部分禁用缓存。
票数 1
EN

Stack Overflow用户

发布于 2014-11-04 11:00:42

您没有在config.xml文件中添加新的类名,应该是,

代码语言:javascript
复制
<?xml version="1.0"?>
<config>
  <modules>
    <Feno_Catalog>
      <version>0.0.0</version>
    </Feno_Catalog>
  </modules>
  <global>
    <helpers>
      <catalog>
        <class>Feno_Catalog_Helper</class>
      </catalog>
    </helpers>
    <blocks>
      <catalog>
        <class>Feno_Catalog_Block</class>
      </catalog>
            <catalog>
                <rewrite>
                    <navigation>Feno_Catalog_Block_Catalog_Navigation</navigation>
                </rewrite>
            </catalog>
    </blocks>
  </global>
</config>

你在app/code/local/Feno/Catalog/Blcok/Catalog/Navigation.php上课

代码语言:javascript
复制
<?php
class Feno_Catalog_Block_Catalog_Navigation extends Mage_Catalog_Block_Navigation
{
}

以及助手文件(它是可选的)

app/code/local/Feno/Catalog/Helper/Data.php

代码语言:javascript
复制
<?php
class Feno_Catalog_Helper_Data extends Mage_Core_Helper_Abstract
{
}

更新:,我忘了添加一些东西。使用Catalog的模块名已经被magento使用了。因此,您需要更改模块名称或使用<depends> ..</depends>标记。否则,可能会发生模块冲突,或者您的模块没有加载。要使用取决于,

代码语言:javascript
复制
<Mage_Catalog>
            <depends>
                <Packagename_Modulename />
            </depends>
</Mage_Catalog> 

所以你的Feno_Catalog.xml (app/etc/modules)文件应该是,

代码语言:javascript
复制
   <?xml version="1.0"?>
<config>
  <modules>
    <Feno_Catalog>
      <active>true</active>
      <codePool>local</codePool>
      <version>0.0.0</version>
      <depends>
      <Mage_Catalog />
      </depends>
    </Feno_Catalog>
  </modules>
</config>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26733135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档