今天给各位分享phpcms二级栏目调用的知识,其中也会对phpcms二次开发进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、phpcms v9 页面左侧栏的二级、三级怎么调用呀??急解!如下(三级不会):
- 2、phpcms v9 同时调用多个二级栏目内容,二级栏目里面可能包含有子栏目?
- 3、PHPcms怎么调用二级栏目及三级栏目
- 4、PHPcms分2组调用子栏目,第二次调用时order="id DESC LIMIT 2,3--"感觉这里的2没有起着用,怎么破?
- 5、phpcms v9 怎么做二级菜单
- 6、phpcms导航如果有二级栏目输出没有就不输出怎么调用?
1、phpcms v9 页面左侧栏的二级、三级怎么调用呀??急解!如下(三级不会):
你已经把当前栏目的平级栏目调用出来了,再之后用$v[catid]调用他们的子栏目就行了啊
在最里层直接加pc标签,{pc:content action="category" catid="$v[catid]" num="20"}
2、phpcms v9 同时调用多个二级栏目内容,二级栏目里面可能包含有子栏目?
说的具体一点,你想怎么调用?是想把二级栏目和子栏目同时调用出来吗?
{pc:content action="category" catid="一级栏目id" num="20" order="listorder ASC"}
{loop $data $r} //这个能掉出二级栏目
{loop subcat($r[catid]) $v} //subcat是调用指定栏目子栏目信息的函数
//二级栏目的就用 $r[url] $r[catname]
//子栏目用 $v[url] $v[catname]
{/loop}
{/loop}
{/pc}
3、PHPcms怎么调用二级栏目及三级栏目
两层的导航条我是这么实现的,你可以试试
{pc:content action="category" catid="0" num="25" siteid="$siteid" order="listorder ASC"}
a href="{siteurl($siteid)}" title="首页"首 页/a
{loop $data $k $r}
a href="{$r[url]}" title="{$r[catname]}" class=""{$r[catname]}/a
{pc:content action="category" catid="$k" num="25" siteid="$siteid" order="listorder ASC"}
{loop $data $v}
a href="{$v[url]}" title="{$r[catname]}"{$v[catname]}/a
{/loop}
{/pc}
{/loop}
{/pc}
三层的我就不知道了
4、PHPcms分2组调用子栏目,第二次调用时order="id DESC LIMIT 2,3--"感觉这里的2没有起着用,怎么破?
原因分析:
在phpcms模板中栏目标签数据的获取方式跟文章列表等标签的获取方式有所不同,它并非读取数据库而来,而是直接调用栏目信息的缓存文件(一个存在缓存文件中的大数组)来根据标签中指定的属性条件来过滤最后返回你指定的数据。
而在上面提到的它的过滤过程中,并没有使用到order属性,于是,你在order里写的数量限制条件就无效了因为根本没用。
解决办法:
在给出解决办法之前先给予你现在代码的几个修改意见,也会在后面解决办法里面用到:
第一点,栏目数据中并没有id字段。栏目数据表的主键字段为catid,所以你在order条件中以id为排序字段是无效的。
第二点,limit条件写在order属性中是不规范的。这种写法在别的标签里使用时屏蔽了num属性的作用理论上可行,但是不符合phpcms的标签规范的,order属性用于指定获取数据的排序方式,我们使用num属性来指定获取数据的数量,可以使用属性start指定读取数据的起始位置。
根据以上两点,我们使用get万能标签来达到读取数据库获取栏目信息的目的:
{pc:get sql="select * from phpcms_category where parentid=46 order by catid desc" num="3" start="2"}
!--sql命令中数据表前缀直接写phpcms_即可,系统会自动替换为有效前缀,不能在sql里写limit条件,要使用num和start属性指定--
{loop $data $n $x}
a href="{$x[url]}" title="{$x['catname']}" class="sunb"{$x[catname]}/a
{/loop}
{/pc}
PS:
在loop标签中看到你使用了title字段,在栏目的数据中没有这个字段所以这里调用它是无效的,一般我们在调用文章列表时使用它,虽然不会影响当前讨论的问题但也提一下以便你优化。
更多pc标签使用方法和属性详解可以参考phpcms的官方手册以及iphpcms的pc标签全面总结视频教程有全面深入的讲解。
如果你有php程序开发基础,也可以自己定义开发新的栏目标签来解决,内容模块自定义标签文件:/phpcms/modules/content/classes/content_tag.class.php
5、phpcms v9 怎么做二级菜单
phpcms v9中调用二级菜单有2种方法:
第一种:
{loop subcat(catid) $v}
{/loop}
这种方法的好处是代码简洁,容易记住。
缺点:不能限制显示的条数
第二种方法:
{pc:content action=”category” catid=”0″ }
{loop $data $r}
{$r[catname]} ——————-顶级栏目
{pc:content action=”category” catid=”$r[catid]“}
{loop $data $v}
{$v[catname]}——————二级栏目
{/loop}
{/pc}
{/loop}
{/pc}
这种方法的优点:可以控制你想要的条数
6、phpcms导航如果有二级栏目输出没有就不输出怎么调用?
只要将您的代码稍加改造即可:
{if $r[arrchildid]}
{pc:content action="category" catid="$r[catid]" num="10" siteid="$siteid" order="listorder ASC" return="data2"}
{if $data2}
ul
{loop $data2 $v}
lia href="{$v[url]}"{$v[catname]}/a/li
{/loop}
/ul
{/if}
{/pc}
{/if}
区别在于加了一层if判断一下$data2是否为空即可。
phpcms二级栏目调用的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于phpcms二次开发、phpcms二级栏目调用的信息别忘了在本站进行查找喔。