magento------让菜单显示图片-------显示图片的菜单
来源:互联网 发布:人工智能小冰的微信号 编辑:程序博客网 时间:2024/04/29 16:26
对于菜单,如果想显示菜单,下面是直接改动源代码的方式实现的,当然在系统升级的时候有可能代码麻烦,完美方式当然是重写这个类,下面介绍的直接改动系统代码:
1
由page.xml得出
<block type="core/text_list" name="top.menu" as="topMenu"/>
type="core/text_list"得出,这个只是一个容器,类似于left,content等。
2
有catelog.xml得出
<reference name="top.menu">
<block type="catalog/navigation" name="catalog.topnav" template="catalog/navigation/top.phtml"/>
</reference>
故生成菜单的block
type为catalog/navigation
template为catalog/navigation/top.phtml
3
在navigation.php中加入方法,如下:
public function drawImgItem($category, $level=0, $last=false){
$html ="";
$categoryName = '';
if (!$category->getIsActive()) {
return $html;
}
$children = $category->getChildren();
$hasChildren = $children && $children->count();
$html.= '<li';
if ($hasChildren) {
$html.= ' onmouseover="toggleMenu(this,1)" onmouseout="toggleMenu(this,0)"';
}
$html.= ' class="level'.$level;
$html.= ' nav-'.str_replace('/', '-', $category->getRequestPath());
if ($this->isCategoryActive($category)) {
$html.= ' active';
}
if ($last) {
$html .= ' last';
}
if ($hasChildren) {
$cnt = 0;
foreach ($children as $child) {
if ($child->getIsActive()) {
$cnt++;
}
}
$html .= ' parent';
}
$html.= '">';
$categoryName = $category->getName();
$categoryName = htmlentities($categoryName, ENT_NOQUOTES, 'utf-8');
$categoryName = preg_replace('#&([A-za-z])(?:uml|circ|tilde|acute|grave|cedil|ring);#', '1', $categoryName);
$categoryName = preg_replace('#&([A-za-z]{2})(?:lig);#', '1', $categoryName);
$categoryName = preg_replace('#&[^;]+;#', '', $categoryName);
$url = Mage::getDesign()->getSkinUrl('images/'.strtolower(str_replace(" ","_",$categoryName)).'.jpg');
$html.= '<a href="'.$this->getCategoryUrl($category).'"><span>'.$this->htmlEscape($category->getName()).'</span><span><img src="'.$url.'"></span></a>';
if ($hasChildren){
$j = 0;
$htmlChildren = '';
foreach ($children as $child) {
if ($child->getIsActive()) {
$htmlChildren.= $this->drawImgItem($child, $level+1, ++$j >= $cnt);
}
}
if (!empty($htmlChildren)) {
$html.= '<ul class="level' . $level . '">'
.$htmlChildren
.'</ul>';
}
}
$html.= '</li>';
return $html;
}
4
修改
template/catalog/navigation/top.phtml
为:
<div class=”header-nav-container”>
<div class="header-nav">
<h4 class="no-display"><?php echo $this->__('Category Navigation:') ?></h4>
<ul id="nav">
<?php foreach ($this->getStoreCategories() as $_category): ?>
<?php echo $this->drawImgItem($_category) ?>
<?php endforeach ?>
</ul>
</div>
<?php echo $this->getChildHtml('topLeftLinks') ?>
</div>
5
在对应路径skin--->images/添加图片
由
$url = Mage::getDesign()->getSkinUrl('images/'.strtolower(str_replace(" ","_",$categoryName)).'.jpg');
得出,添加的图片的名字要和目录的名字一样,而且是jpg格式,当然你可以修改,然后添加在images/自己命名的文件夹/对用图片。
6
刷新缓存,目录图片出来了
!!!!!!
- magento------让菜单显示图片-------显示图片的菜单
- 菜单和图片的滑动显示效果!
- Matlab GUI,菜单,显示图片
- Qt自适应大小显示图片,添加菜单
- Qt自适应大小显示图片,添加菜单
- 全站图片禁止显示右键菜单
- Qt自适应大小显示图片,添加菜单
- Qt自适应大小显示图片,添加菜单
- 11 菜单设置图片不显示的问题
- 显示magento侧栏菜单!!!全部显示!!!
- matlab GUI axe显示图片后右键显示菜单
- 让superfish的菜单在左边显示
- 让隐藏的virtualBox菜单重新显示
- Magento 后台订单显示图片
- 进入菜单相册,有的图片的缩略图显示是白色,显示不出来
- 让菜单项显示Hint
- 使magento的分层菜单以下拉菜单显示插件 - Improved Layered Navigation
- Android Gallery图片显示和文字提示及Menu 菜单
- 设计模式——适配器模式【Adapter Pattern】
- linux 驱动编程___竞态/并发问题___自旋锁
- 推荐三款强大且漂亮的统计图控件
- 写APP
- 我的程序员生活
- magento------让菜单显示图片-------显示图片的菜单
- 1月27日英语学习
- 日志系统
- 设计模式——模板方法模式【Template Method Pattern】
- 用 Excel 打开文本文件时提示SYLK文件格式错误
- 什么是SQLHelper
- Linu下查看进程打开的文件与打开文件的进程
- 对 Access 数据库中日期字段操作时 OleDbParameter 的问题及解决
- anagrams by stack C 题解