V9栏目循环调用采用IF判断自定义不显示指定栏目方法中,栏目属性自定义字段功能
分类:热门新闻

给一客户制作仿京东商城的商品分类菜单,本来这种菜单形式也很常见的,但京东商城的比较变态,就是当前栏目展示并且在保在最上面。如下图。

在之前分享的Phpcms V9栏目循环调用采用IF判断自定义不显示指定栏目方法中,做到了自定义调用栏目循环中的类别,那么在顶部下拉菜单中,怎么做到自定义调用栏目和对应的子栏目下拉菜单呢?在最近的一个项目边,就用到了循环下拉菜单,而且要做到后台控制,在header模板中采用一个调用,在此和大家一起分享具体方法。这个方法基于PC V9官方模版中的调用方法,然后利用后台的“Phpcms V9菜单是否显示设置”控制菜单是否显示出来。先看看最后的效果:

栏目属性自定义字段功能:在系统支持信息属性自定义字段的基础上,6.6版又新增了栏目属性自定义字段功能,让灵活系统更灵活。

如是就想到一个思路:

威尼斯登录首页 1

一、增加栏目字段1、登录后台,单击“栏目”菜单,选择“栏目自定义字段”子菜单,进入管理栏目字段界面:

先调用当前栏目的子栏目,然后再调用父栏目下所有子栏目。

调用方法:

2、进入管理栏目字段界面:

代码如下:

威尼斯登录首页 2

3、从管理栏目字段页面点击“增加栏目字段”按钮,进入增加栏目字段界面,如下图:

?php//List all brother class exp self//trylife.$tl_thisclassid=$GLOBALS[navclassid];$tl_bclassid=$class_r[$tl_thisclassid][bclassid];$tl_class_sql=$empire-query("select classid,classname from {$dbtbpre}enewsclass where bclassid='".$tl_bclassid."' and showclass=0 order by myorder,classid desc");while($tl_class_r=$empire-fetch($tl_class_sql)){if($tl_class_r[classid]==$tl_thisclassid) {continue; }? lia href="?=sys_ReturnBqClassname($tl_class_r,9)?"?=$tl_class_r[classname]?/a/li ?}?
01 <</CODE>div id="navbar">

字段名填写字段名,字段名由英文和数字组成。比如:title。字段标识字段标识方便识别字段。比如:标题字段类型选择字段的存放类型。 字段长度:选择字段的存放长度。输入表单显示元素选择前台表单录入的方式。 元素长度:表单元素显示的大小。初始值填写字段默认值或选项(多个值用回车格开;默认选项后面加::default)。显示顺序会员表单的字段显示顺序越小越前面。输入表单替换html代码增加字段后自动生成字段显示的html代码内容,增加字段时一般不设置,可增加字段后再修改。注释填写备注内容。二、管理栏目字段

02  <</CODE>div id="navbarcontent">

1、增加栏目字段后,

03  <</CODE>div id="menu">

,就可以看到我们增加的字段:

04  <</CODE>ul id="menuul">

2、增加/修改栏目页面也可以看到我们增加的栏目字段,如图:

05  {pc:content action="category" catid="0" num="25" siteid="$siteid" order="listorder ASC"}

三、栏目字段调用说明:字段调用说明:使用内置调用栏目自定义字段函数:ReturnClassAddField(栏目ID,字段名),栏目ID=0为当前栏目ID。取多个字段内容可用逗号隔开,例子:取得classtext字段内容:$value=ReturnClassAddField(0,classtext); //$value就是字段内容。取得多个字段内容:$value=ReturnClassAddField(1,classid,classtext); //$value[classtext]才是字段内容。范例1:显示当前栏目的“diyclassf”字段的内容。威尼斯登录首页,diyclassf字段内容为:

06  <</CODE>li><</CODE>div><</CODE>a href="{siteurl($siteid)}/"><</CODE>span>网站首页</</CODE>span></</CODE>a></</CODE>div></</CODE>li>
?=ReturnClassAddField(0,'diyclassf')?
07  <</CODE>li><</CODE>img width="1" height="45" src="{siteurl($siteid)}/style/images/navline.gif"></</CODE>li>

范例2:显示栏目ID=6的“diyclassf”和“diyclassf2”这两个字段的内容。

08  {loop $data $k $v}
?php$cfr=ReturnClassAddField(6,'diyclassf,diyclassf2');?
09  <</CODE>li><</CODE>div>

diyclassf字段内容为:

10  <</CODE>a href="{$v[url]}"><</CODE>span>{$v[catname]}</</CODE>span></</CODE>a>
?=$cfr['diyclassf']?
11  <</CODE>ul class="sub_mune_ul" style="display: none; ">

diyclassf2字段内容为:

12  {pc:content action="category" catid="$k" num="10" siteid="$siteid" order="listorder ASC"}
?=$cfr['diyclassf2']?
13  {loop $data $r} <</CODE>li><</CODE>a href="{$r[url]}">{$r[catname]}</</CODE>a></</CODE>li> {/loop}
14  {/pc}
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}
17  {/loop}
18  {/pc}
19  {php echo runhook('glogal_header')}
20  </</CODE>ul>
21  </</CODE>div>
22  </</CODE>div>
23  </</CODE>div>

在这个代码里边,我把外部的的DIV标签页带上了,这是完整的代码,为了更好的定义CSS,如果只是调用数据,那么只要{pc}语句中间的部分就好了。

大家可以看到

  • 标签里边,我还设置了一个div,这个div里边的循环就是下拉菜单的子栏目。

控制不显示的栏目菜单方法:

后台菜单:内容 > 内容相关设置 > 管理栏目 >,设置如下:

威尼斯登录首页 3

在这里,调用代码中的{php echo runhook('glogal_header')}作用巨大,后台设置“是否在导航显示”选择“否”,那么就在导航菜单循环中不显示,这句代码把后台的设置响应到具体调用了,起到了这个作用。

上面说的具体只是数据调用的方法,要做到下拉导航菜单,还需要CSS和JS的配合。今天时间有限,我就先写到这里,如果有朋友需要,在下面留言,我将在下一次分享具体的CSS代码和JS文件。

当然,大家可以找一个静态html的下拉菜单,然后用上面的调用方法,定义到现有的下拉菜单中,相信你一定可以做到!

版权声明:本文为博主原创文章,未经博主允许不得转载。


本文由威尼斯在线注册平台发布于热门新闻,转载请注明出处:V9栏目循环调用采用IF判断自定义不显示指定栏目方法中,栏目属性自定义字段功能

上一篇:没有了 下一篇:威尼斯登录首页xinge = 最后日期
猜你喜欢
热门排行
精彩图文