0

我需要对从标准 Magento 顶级导航显示的子导航进行一些重大编辑。

我已经进入 top.phtml 并发现它在核心 Mage 代码中调用了一个函数,是否可以在调用之前在我的主题中运行一个文件,或者我是否必须创建一个完全自定义的导航/使用扩展?

4

2 回答 2

2

总是非常欢迎您简单地design/frontend/[package]/[theme]/catalog/navigation/top.phtml用您自己的标记替换模板,然后您可以随意迭代。

Block 类已经提供了一些基本方法,可用于按照您的喜好构建导航菜单,例如getStoreCategories()isCategoryActive()getCurrenetChildCategories()等。

或者,正如 Peter 所提到的,您可以重写 Block 类以更改特定方法或包含您自己的方法,然后可以从模板文件中访问这些方法。

于 2013-02-26T20:34:36.167 回答
1

要覆盖Mage_Catalog_Block_Navigation

app/etc/modules/Yourmodule_Catalog.xml

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

app/code/local/Yourmodule/Catalog/etc/config.xml

<?xml version="1.0"?>
<config>
<modules>
    <Yourmodule_Catalog>
        <version>0.1.0</version>
    </Yourmodule_Catalog>
</modules>

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

app/code/local/Yourmodule/Catalog/Block/Navigation.php

<?php
class Yourmodule_Catalog_Block_Navigation extends Mage_Catalog_Block_Navigation
{
.... the methods you want to override...
}

就是这样。

于 2013-02-26T15:42:00.897 回答