咨询电话:
15628812133
24
2016/12

PHPCMS 推荐位排序问题

发布时间:2016-12-24 10:53:25
发布者:wenhui
浏览量:
0

用phpcms做网站的时候,有些地方要用到推荐位列表,如幻灯片,特别推荐等。有时候因为重要程度不同的问题,我希望推荐位能够按照后台设置的排序号来排序。这时代码应该是:{pc:content  action="position" posid="25" num="4" order="listorder DESC"} {/pc}

1.打开文件:/phpcms/modules/admin/classes/push_api.class.php
找到:

1.jpg

$info['id'] = $info['listorder'] = $d['id'];

就是这一句,当添加文章或者修改文章的时候,把listorder变得跟id一样,以至于,listorder排序不起作用。
所以上面那句代码应该改为:

$info['id'] = $d['id'];

这样一来添加文章或者修改文章的时候就不会改动listorder的值了。但单单这样还不行,因为推荐标签在取数据的时候,是根据v9_position_data表的listorder来排序的,但后台更新文章排序的时候,并没有更新v9_position_data这个表的listorder,所以得加上这个功能。
2.打开文件:/phpcms/modules/content/content.php
找到:

3.jpg

在上面的后面加上

//更改推荐位排序开始

   $this->db_config = pc_base::load_config('database');

   $tablepre = $this->db_config['default']['tablepre'];

   $this->db->table_name = $tablepre."position_data";

   foreach($_POST['listorders'] as $id => $listorder) {

    $r = $this->db->get_one(array('id'=>$id));

    if($r['posid']){

      $this->db->update(array('listorder'=>$listorder),array('id'=>$id,modelid=>$modelid));

    }

   }

//更改推荐位排序开始

改完这两个地方就可以正常使用推荐位排序了。

关键词:
返回列表