在之前分享的Phpcms V9栏目循环调用采用IF判断自定义不显示指定栏目方法中,做到了自定义调用栏目循环中的类别,那么在顶部下拉菜单中,怎么做到自定义调用栏目和对应的子栏目下拉菜单呢?在最近的一个项目边,就用到了循环下拉菜单,而且要做到后台控制,在header模板中采用一个调用,在此和大家一起分享具体方法。这个方法基于PC V9官方模版中的调用方法,然后利用后台的“Phpcms V9菜单是否显示设置”控制菜单是否显示出来。先看看最后的效果:
调用方法:
01 | <</CODE> div id = "navbar" > |
02 | <</CODE> div id = "navbarcontent" > |
03 | <</CODE> div id = "menu" > |
04 | <</CODE> ul id = "menuul" > |
05 | {pc:content action="category" catid="0" num="25" siteid="$siteid" order="listorder ASC"} |
06 | <</CODE> li><</CODE> div><</CODE> a href = "{siteurl($siteid)}/" ><</CODE> span>网站首页</</CODE> span></</CODE> a></</CODE> div></</CODE> li> |
07 | <</CODE> li><</CODE> img width = "1" height = "45" src = "{siteurl($siteid)}/style/images/navline.gif" ></</CODE> li> |
09 | <</CODE> li><</CODE> div> |
10 | <</CODE> a href = "{$v[url]}" ><</CODE> span>{$v[catname]}</</CODE> span></</CODE> a> |
11 | <</CODE> ul class = "sub_mune_ul" style = "display: none; " > |
12 | {pc:content action="category" catid="$k" num="10" siteid="$siteid" order="listorder ASC"} |
13 | {loop $data $r} <</CODE> li><</CODE> a href = "{$r[url]}" >{$r[catname]}</</CODE> a></</CODE> li> {/loop} |
15 | </</CODE> ul></</CODE> div></</CODE> li> |
16 | {if $v[catid]==5}{else}<</CODE> li><</CODE> img width = "1" height = "45" src = "{siteurl($siteid)}/style/images/navline.gif" ></</CODE> li>{/if} |
19 | {php echo runhook('glogal_header')} |
在这个代码里边,我把外部的的DIV标签页带上了,这是完整的代码,为了更好的定义CSS,如果只是调用数据,那么只要{pc}语句中间的部分就好了。
大家可以看到
- 标签里边,我还设置了一个div,这个div里边的循环就是下拉菜单的子栏目。
控制不显示的栏目菜单方法:
后台菜单:内容 > 内容相关设置 > 管理栏目 >,设置如下:
在这里,调用代码中的
{php echo runhook('glogal_header')}作用巨大,后台设置“是否在导航显示”选择“否”,那么就在导航菜单循环中不显示,这句代码把后台的设置响应到具体调用了,起到了这个作用。
上面说的具体只是数据调用的方法,要做到下拉导航菜单,还需要CSS和JS的配合。今天时间有限,我就先写到这里,如果有朋友需要,在下面留言,
我将在下一次分享具体的CSS代码和JS文件。
当然,大家可以找一个静态html的下拉菜单,然后用上面的调用方法,定义到现有的下拉菜单中,相信你一定可以做到!