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