我需要对标准Magento顶级导航中显示的子导航进行一些主要编辑。
我已经进入top.phtml并发现它在核心Mage代码中调用了一个函数,是否可以在调用之前在我的主题中运行一个文件,或者我是否必须创建一个完全自定义的导航/使用扩展程序?
答案 0 :(得分:2)
您总是非常欢迎只需将design/frontend/[package]/[theme]/catalog/navigation/top.phtml
模板替换为您自己的标记,然后您可以根据需要进行迭代。
Block类已经提供了一些基本方法,可用于构建导航菜单的方式,例如getStoreCategories()
,isCategoryActive()
,getCurrenetChildCategories()
等。
或者,如Peter所述,您可以重写Block类来更改特定方法或包含您自己的方法,然后可以从模板文件中访问这些方法。
答案 1 :(得分: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...
}
就是这样。