dede织梦技巧:教你彻底解决dede按权重排序的问题(转)

dede排序对网站来说一直存在问题,默认是按照最新发布时间排序。这样排序有个问题,一旦更新之后即被视为最新发布,于是原本做好的排序瞬间就乱了。

 

这种时候,按权重排序是个很好的选择,但按权重排序到处存在BUG~。很多地方都缺少设置,要么是设定后完全不起作用,在百度和论坛找了很多帖子,都没能完全解决问题。在做第二个网站的时候,终于把BUG修订完全了。

 

要解决权重排序的问题,主要集中在以下几个文件上:

 

/include/arc.freelist.class.php   自由列表对应的文件

 

/dede/templets/freelist_edit.htm 新增自由列表对应的文件

 

/dede/templets/freelist_add.htm  修改自由列表对应的文件

 

/include/arc.listview.class.php   list列表对应的文件

 

/include/taglib/arclist.lib.php   arclist列表对应的文件

 

修改的内容很简单,按照以下步骤即可修正:

 

1、打开/include/arc.freelist.class.php, 找到以下代码:

 

else if($orderby=="rand")

 

{

 

$ordersql = "  ORDER BY rand()";

 

}

 

在代码下方插入以下代码后保存:

 

else if($orderby=="weight")

 

{

 

$ordersql = " order by arc.weight asc";

 

}

 

2、打开/dede/templets/freelist_add.htm,找到以下代码:

 

<td height="28" align="left">排列顺序:

 

         <select name="orderby" id="orderby" style="width:120">

 

在代码下方插入以下代码,保存:

 

<option value="weight">权重值</option>

 

3、打开/dede/templets/freelist_edit.htm,找到以下代码:

 

<?php

 

       echo "<option value=\"$orderby\" selected>{$sortarrs[$orderby]}</option>\r\n";

 

?>

 

在代码下方插入以下代码,保存:

 

<option value="weight">权重值</option>

 

4、打开/include/arc.listview.class.php,找到以下代码:

 

else if($orderby=="lastpost")

 

{

 

      $ordersql = "  ORDER BY arc.lastpost $orderWay";

 

}

 

在代码下方插入以下代码:

 

else if($orderby=="weight")

 

{

 

$ordersql = " order by arc.weight asc";

 

}

 

找到以下代码:

 

if(preg_match('/hot|click|lastpost|/', $orderby))

 

替换为以下代码并保存:

 

if(preg_match('/hot|click|lastpost|weight/', $orderby))

 

5、打开/include/taglib/arclist.lib.php,找到以下说明文字:

 

//功能:增加按好评数和差评数调用

 

替换为以下代码并保存:

 

else if($orderby == 'weight') $ordersql = "  ORDER BY arc.weight asc";

 

//功能:增加按好评数和差评数调用



修改这5个文件,即能解决权重排序的问题(根据权重从小到大排列),并使得自由列表中,也可以采用权重排序的方式生成列表。

 

调用例子:

 

{dede:arclist flag='a' limit='0,1' typeid='10' isweight='y' orderby='weight'}

 

        <a href="/z/al/index_12_1.html" target="_blank">

 

        <img src="[field:picname/]" width="300" height="168" alt="[field:shorttitle/]" style="border:1px solid "></a>

 

{/dede:arclist}

转载于:https://www.cnblogs.com/zhang36/p/6164894.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值