互联网的搬运工 分类搜索 官网    VIP电影   留言板   免责声明    我要投稿   后花园

网站首页 技术 正文

dede:channelartlist获取指定的栏目列表

小冰 2020-03-28 技术 128 ℃ 0 评论
我们平时调用指定栏目列表的时候,channel标签虽然能调用栏目列表,但是不能调用指定的某些栏目栏目,所以我们一般用dede:channelartlist标签来实现,然后指定typeid属性来调用多个栏目,用逗号“,”分隔。
但是调用指定栏目的时候,都是用的后台栏目指定的排序方式,但是只需要修改一小点东西,就可以实现按我们指定的typeid顺序进行排序。方法如下:

打开/include/taglib/channelartlist.lib.php, 找到$dsql->SetQuery("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath     FROM `idea_arctype` WHERE $tpsql ORDER BY sortrank ASC LIMIT $totalnum"); 处,修改成:

if(preg_match('#,#', $typeid) && $orderby == 'typeid') {
	$tpsql .= " ORDER BY FIELD(id,$typeid) ";
} else {
	$tosql .= ' ORDER BY sortrank ASC ';
}

   $dsql->SetQuery("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath 
                                           FROM `idea_arctype` WHERE $tpsql  LIMIT $totalnum");
这样后台的修改就完成了,模板调用的时候,在channelartlist标签中,增加一个ordeby='typeid'就可以按typeid排序了,不指定的话,就按后台指定的排序:

测试代码

{dede:channelartlist typeid='1,2,3,4,5'}
{dede:field.typename/}<br/>
{/dede:channelartlist}
-------------------------------------------<br/>
{dede:channelartlist typeid='4,5,2,1,3' orderby='typeid'}
{dede:field.typename/}<br/>
{/dede:channelartlist}

对比如下:
dede:channelartlist获取指定的栏目列表 dede:channelartlist获取指定的栏目列表 技术

Tags:

< 温馨提示 >
本站资源如有密码均为:70ol.com
学到东西应该懂得感恩作者 无脑喷子永封IP段+删帐号所有评论
本站资源软件和源码 文章大部分为网上收集,如侵犯您的权利,请告知管理员,我们会及时删除,并向您赔礼道歉.

站长QQ:  官方QQ群:558413792

猜你喜欢

本文暂时没有评论,来添加一个吧(●'◡'●)


欢迎 发表评论:

请填写验证码
搜索
最近发表
网站分类
友情链接
标签列表
文章归档
最新留言
站点信息
  • 文章总数:279
  • 页面总数:1
  • 分类总数:14
  • 标签总数:17
  • 评论总数:2
  • 浏览总数:190011