求ECshop 2.7.3 二级导航菜单实现

2016-07-07 15:13 来源:www.chinab4c.com 作者:ecshop专家

QQ截图20121019103059.jpg
把鼠标移上去显示二级导航

回答:


找到lib_main.php 文件中的get_navigator 函数,该函数主要功能是获取导航栏目的基本信息,其中里面middle将是本文说明的重点,在大约1975行,为该while循环添加一个变量:

“subCat” =>($row[“cid”]==0||$row[“cid”]=='')?'':get_child_tree($row[“cid”]),


此句话的意思是,如果商品分类的ID不等于空或者0,则获取改ID的所有分类。



第二、在page_header.lbi文件中修改模板程序:


鈥�
{$nav.name}



鈥$navlevel.name}


________________________________________-


第一步:
在根目录下的category.php文件中找到下面的方法
function get_cat_info($cat_id)
{
return $GLOBALS['db']->getRow(‘SELECT cat_name, keywords, cat_desc, style, grade, filter_attr, parent_id FROM ‘ . $GLOBALS
['ecs']->table(‘category’) .
” WHERE cat_id = ‘$cat_id’”);
}
大约在417行左右,在此方法下加入一个 获取二级菜单的方法
function get_subcat_info($parent_id)
{
$subcat = $GLOBALS['db']->getAll(‘SELECT * FROM ‘ . $GLOBALS['ecs']->table(‘category’) .
” WHERE parent_id = ‘$parent_id’”);
return $subcat;
}

第二步:
在category.php文件的大约83行,找到
$cat = get_cat_info($cat_id); // 获得分类的相关信息
然后在下面调用上面定义的get_subcat_info()方法,如下
$subcat = get_subcat_info($cat_id);
if(!empty($subcat))
{
$smarty->assign(‘subcat’, $subcat);
}

第三步:
找到 themes/模版名称/category/library/ 下的 page_header.lbi 文件,然后在需要显示二级导航菜单的位置加入;
EcshopV2.7.3中可添加到 位于35行的<div id=”search” class=”clearfix”>标签里面
<div style=”float:left”>
<!– {foreach from=$subcat item=sub} –>
<a href=”category.php?id={$sub.cat_id}”>{$sub.cat_name}</a>
<!– {/foreach} –>
</div>
搜索一下就能找到相关的资料
到此为止完成…

(注:鉴于许多朋友反映按照我的步骤没有效果的问题,我又特别按照以上步骤试了一下,的确没有问题,现在主要说下注意事项。

1.如果是直接从网站上复制代码会出现单引号和双引号不正确的问题,粘贴之后需要修改下引号为英文引号

2.完成上述步骤之后,并不是就可以看到效果了,需要在后台添加了子分类之后,前台才能显示。添加方法为:后台管理–商品管理–商品分类 栏目下,在需要添加二级菜单的分类的下添加子分类即可。

3.此做法并没有针对样式方面做优化,样式可以自己视情况进行调整。


这个只是个思想。关键还是要根据自己的需求。去写样式

是的,这都是需要自己 怎么写样式,其实 功能已经有了 就看你会不会灵活运用

感谢各位...

我也学习下,二楼比较详细

好乱的代码啊

这个问题没遇到过。[

我的新百伦站也正需要这样的菜单呀,谢谢了http://www.i-nb.net/