DEDECMS5.7 首页和栏目页调用文章按权重排序

dedecms 5.7版本已增加按权重排序功能:

【arclist】标签增加按权重排序,在后台管理DEDE里找到以下目录\include\taglib中的arclist.lib.php文件并打开

大约在74 、75行找到:

// arclist是否需要weight排序,默认为”N”,如果需要排序则设置为”Y”

$isweight = $ctag->GetAtt(‘isweight’);

从这里可以看出,新版本增加了一个布尔变量,直接在模板标签里加入isweight=‘Y‘  即可!

首页中调用:

首页中采用 {dede:arclist  }标签,调用方法如下

{dede:arclist typeid=50 isweight=‘Y‘ }

栏目页调用:

栏目页采用{dede:list}标签,调用方法如下

{dede:list orderby=‘weight‘ orderway=‘asc‘}

一、dedecms v5.6列表页标签{dede:list增加按权重排序标签

dedecms v5.6版本已经中已经添加权重字段,并且在{dede:arclist标签中默认可以使用。但在列表页的标签 {dede:list中是还是无法按权重实现排序。其实解决方法很简单,下面给出方法:

1、在织梦系统中找到以下目录\include\taglib中的arclist.lib.php文件并打开,因为我们要从其中拷贝代码;

2、在上面打开的文件中搜索“文档排序的方式”,可以找到如下代码

else if($orderby == ‘weight‘) $ordersql = "  order by arc.weight asc";//如果没有特定设置排序则按照权重先排序

3、拷贝这段代码,然后打开\include\目录中的arc.listview.class.php文件,搜索“排序方式”,然后在

else if($orderby=="lastpost") {
            $ordersql = "  order by arc.lastpost $orderWay";
        } 这段代码和

else {
            $ordersql=" order by arc.sortrank $orderWay";
        }

这段代码中间粘贴上刚才复制的代码。

4、向下找到if(ereg(‘hot|click|lastpost‘,$orderby))修改成if(ereg(‘hot|click|lastpost|weight‘,$orderby)) ,保存文件。

这个时候在列表页里就可以使用{dede:list pagesize=‘5‘ orderby=‘weight‘} 进行排序了。

二、DEDE 5.7 首页【arclist】增加按权重排序

1、在织梦系统中找到以下目录\include\taglib中的arclist.lib.php文件并打开

大约在74 、75行找到:

// arclist是否需要weight排序,默认为"N",如果需要排序则设置为"Y"
    $isweight = $ctag->GetAtt(‘isweight‘);

把这行修改为:

$weight = $ctag->GetAtt(‘weight‘);

大约在327行找到

//文档排序的方式
    $ordersql = ‘‘;
    if($orderby==‘hot‘ || $orderby==‘click‘) $ordersql = " ORDER BY arc.click $orderWay";
    else if($orderby == ‘sortrank‘ || $orderby==‘pubdate‘) $ordersql = " ORDER BY arc.sortrank $orderWay";
    else if($orderby == ‘id‘) $ordersql = "  ORDER BY arc.id $orderWay";
    else if($orderby == ‘near‘) $ordersql = " ORDER BY ABS(arc.id - ".$arcid.")";
    else if($orderby == ‘lastpost‘) $ordersql = "  ORDER BY arc.lastpost $orderWay";
    else if($orderby == ‘scores‘) $ordersql = "  ORDER BY arc.scores $orderWay";
    else if($orderby == ‘rand‘) $ordersql = "  ORDER BY rand()";
    else $ordersql = " ORDER BY arc.sortrank $orderWay";

修改为:

//文档排序的方式
    $ordersql = ‘‘;
    if($orderby==‘hot‘ || $orderby==‘click‘) $ordersql = " ORDER BY arc.click $orderWay";
    else if($orderby == ‘sortrank‘ || $orderby==‘pubdate‘) $ordersql = " ORDER BY arc.sortrank $orderWay";
    else if($orderby == ‘id‘) $ordersql = "  ORDER BY arc.id $orderWay";
    else if($orderby == ‘near‘) $ordersql = " ORDER BY ABS(arc.id - ".$arcid.")";
    else if($orderby == ‘lastpost‘) $ordersql = "  ORDER BY arc.lastpost $orderWay";
    else if($orderby == ‘scores‘) $ordersql = "  ORDER BY arc.scores $orderWay";
    else if($orderby == ‘rand‘) $ordersql = "  ORDER BY rand()";
    else if($orderby == ‘weight‘) $ordersql = "  order by arc.weight asc";//如果没有特定设置排序则按照权重先排序
    else $ordersql = " ORDER BY arc.sortrank $orderWay";

OK   现在把这个文档保存了  我们就可以在首页使用 orderby=‘weight‘ 进行排序了。

时间: 2024-09-30 06:03:57

DEDECMS5.7 首页和栏目页调用文章按权重排序的相关文章

dede 首页或列表页调用文章内容页body内容

在使用dede过程,有的朋友会调调出文章的列表的内容出来,怎么调呢?当然是用dede的传参的数据查询语句了,方法如下: {dede:arclist flag=h typeid=2 row=1 titlelen='200' orderby=pubdate} <div class="data-news"> <dl> <dt><a href="[field:arcurl/]" target="_blank"&g

dede列表页调用文章body内容

dede列表页调用文章描述相比较简单采用标签[field:description function='cn_substr(@me,180)'/]   180是字数 另外一种就是在列表页调用文章调用正文body的内容而非描述,这个需要做二次开发如下(测试版本dede5.7 gbk 2015年11月4日) 在include/extend.func.php 增加以下自定义函数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 function GetOneArchiveBody(

DEDE列表页调用文章内容第一张图片(非缩略图)方法

打开 ../ include/ common.func.php添加代码 //将缩放图转变为文章第一张图片 function firstimg($str_pic) { $str_sub=substr($str_pic,0,-7).".jpg";//删除缩略图字符串最后七位,然后再补上后缀.jpg return $str_sub; } 调用的方法是: [field:litpic function='firstimg(@me)'/] DEDE列表页调用文章内容第一张图片(非缩略图)方法,布布

【dedecms】DEDE列表页调用文章内容第一张图片(非缩略图)方法

打开 ../ include/ common.func.php添加代码 //将缩放图转变为文章第一张图片 function firstimg($str_pic) { $str_sub=substr($str_pic,0,-7).".jpg";//删除缩略图字符串最后七位,然后再补上后缀.jpg return $str_sub; } //调用的方法是: [field:litpic function='firstimg(@me)'/] [dedecms]DEDE列表页调用文章内容第一张图片

DEDECMS首页和列表页调用单个图片集里的多张图片

/**DEDECMS首页和列表页调用单个图片集里的多张图片 function Getimg($aid,$imgwith=110,$imgheight=110,$num=0) { global $dsql; $imgurls = ''; $row =$dsql->getone( "Select aid,imgurls From `js_addonimages` where aid='$aid' "); $id=$row['aid']; $imgurls= $row['imgurls

织梦首页/列表页文章按权重排序

dede:arclist 按权重排序输出文章 需要打开 /include/taglib/arclist.lib.php 找到 else if($orderby == 'rand') $ordersql = " ORDER BY rand()"; 在它的下面加入 else if($orderby == 'weight') $ordersql = " order by arc.weight $orderWay"; dede:arclist 按权重排序的标签写法 {ded

修改织梦默认栏目页、文章页URL命名规则

用织梦Dedecms建站,建议优化系统默认的URL结构,这样能简化网站目录深度,利于搜索引擎收录. 现在织梦的默认文章命名规则是 {typedir}/{Y}{M}/{D}/{aid}.html {typedir}代表的是上级目录 如我的网站http://www.dedeadmin.com/ 按照织梦默认的命名规则,一级栏目下生成的文章URL为 http://www.dedeadmin.com/skill/2010/826/1.html 二级目录下生成的文章URL为 http://www.dede

dede cms列表页调用文章简介(借鉴)

{dede:list pagesize='8' infolen='50'}<a href="[field:arcurl/]">[field:title/][内容调用代码]</a>{/dede:list}[内容调用代码]如下:1:[field:infos /]2:[field:description /]3:[field:infos function="cn_substr(@me,字符数)"/]4:[field:description func

织梦列表页调用文章内容里的图片在列表显示。

/* *获取字符串的第一个图片地址 */ function getbodyfirstpic($str_img){ preg_match_all("/<img.*\>/isU",$str_img,$ereg);//正则表达式把图片的整个都获取出来了 $img=$ereg[0][0];//图片 $p="#src=('|\")(.*)('|\")#isU";//正则表达式 preg_match_all ($p, $img, $img1);