首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类别菜单“未包括在导航栏”

问类别菜单“未包括在导航栏”
EN

Stack Overflow用户
提问于 2012-07-26 07:01:21
回答 1查看 988关注 0票数 0

如果我是对的,在Magento中,renderCategoriesMenuHtml()函数帮助显示“类别在导航菜单栏中包含的”的菜单。

我想修改renderCategoriesMenuHtml()函数,以显示“在导航菜单栏中不包括的类别”菜单。

简而言之,我需要在管理面板中显示属性"Include in navigation menu"设置为no的类别菜单。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-07-26 12:48:03

Magento有一个工具,用于更改或添加类的功能,称为类重写或类重写。下面的示例假设名称空间为"Custom“,模块名为"Nav”。

首先,注册一个模块:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!-- app/etc/modules/whatever.xml -->
<config>
    <modules>
        <Custom_Nav><!-- must match your namespace & module folder names -->
            <active>true</active>
            <codePool>local</codePool>
        </Custom_Nav>
    </modules>
</config>

基于上述,应用程序将为您的模块查找一个配置文件:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!-- app/code/local/Custom/Nav/etc/config.xml -->
<config>
    <global>
        <blocks>
            <catalog>
                <rewrite>
                    <navigation>Custom_Nav_Block_Rewrite_Navigation</navigation>
                </rewrite>
            </catalog>
        </blocks>
    </global>
</config>

这样做是在块创建工厂方法中重写类名。目录导航块在catalog.xml布局更新XML (<block type="catalog/navigation" .../>)中添加。上面的xpath将导致类名映射到Custom_Nav_Block_Rewrite_Navigation,而不是通常的Mage_Catalog_Block_Navigation,而实例化的正是这个类。

最后一步是创建类定义,从原来的类扩展到可维护性,并服从DRY:

代码语言:javascript
复制
<?php
/* app/code/local/Custom/Nav/Block/Rewrite/Navigation.php */

class Custom_Nav_Block_Rewrite_Navigation extends Mage_Catalog_Block_Navigation
{
    //custom method overrides & additions belong here
}

清除配置& block_html缓存,更改应该是可见的。要验证,可以通过管理面板启用模板路径提示+块类名,或者在站点根目录中创建一个简单的脚本:

代码语言:javascript
复制
<?php
/* test.php in Magento root folder */
ini_set('display_errors',true);

include 'app/Mage.php';
Mage::setIsDeveloperMode(true);
Mage::app();

var_dump(Mage::getConfig()->getBlockClassName('catalog/navigation'));

将浏览器指向http://site.com/test.php,输出将显示重写的类名。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11664069

复制
相关文章

相似问题

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