在之前分享的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的下拉菜单,然后用上面的调用方法,定义到现有的下拉菜单中,相信你一定可以做到!