原网站:http://bbs.phpcms.cn/thread-879943-1-1.html

简介: 用phpcms做网站的时候,有些地方要用到推荐位列表,如幻灯片,特别推荐等。有时候因为文章的重要性问题,希望文章能够按照后台设置的排序号来排序。但是,phpcms这里却不好使了
用phpcms做网站的时候,有些地方要用到推荐位列表,如幻灯片,特别推荐等。有时候因为文章的重要性问题,我希望文章能够按照后台设置的排序号来排序。这时代码应该是:

{pc:content action="position" posid="1" order="listorder DESC" num="3"}
{loop $data $r}
html code
{/loop}
{/pc}

其中order="listorder DESC"就是按照手工排序的意思。但是会发现,order="listorder DESC"效果和order="id DESC"一样,实际上没有排序降序功能,只能是ID降序或ID升序。
打开数据库查看v9_position_data表,结果你会发现,表中listorder字段跟id是一样的。
最后才找到解决的办法。
1.打开文件:/phpcms/modules/admin/classes/push_api.class.php
找到:

$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
找到:

foreach($_POST['listorders'] as $id => $listorder) {
$this->db->update(array('listorder'=>$listorder),array('id'=>$id));
}

在上面的后面加上(注意是在后边加上这段代码,不要修改上边的代码)

//更改推荐位排序开始
$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));
}
}
//更改推荐位排序开始

改完这两个地方就可以正常的使用了。

v9 推荐位 排序问题解决办法的更多相关文章

  1. 解决phpcms V9 推荐位无法排序

    /phpcms/modules/content/content.php 454行 /** * 排序 */public function listorder() { if(isset($_GET['do ...

  2. phpcms v9 升级视频云问题推荐位不能添加

    因为使用的是v9的早期版本,后来升级的时候没敢升级数据库,直接使用了老的数据库结构,造成[推荐位]添加不能使用,报告没有thumb列. 查看数据库果然没有,没办法要么添加相关的列,要么禁用上传缩略图. ...

  3. phpcms V9首页 频道页 列表页 推荐位 简单获取文章浏览量和评论统计

    phpcms V9首页 频道页 列表页 推荐位 简单获取文章浏览量和评论统计 列表取得数据方法: {pc:content action="lists" catid="$c ...

  4. phpcms如何使用推荐位调用自定义字段

    默认phpcms是无法使用推荐位调用自定义字段的 一般自定义字段默认添加在附表里(也可以添加在主表里),调用自定义字段时 加上moreinfo="1" 直接写{pc:content ...

  5. phpcms推荐位数据库字段详解

  6. 深度学习在美团点评推荐平台排序中的应用&& wide&&deep推荐系统模型--学习笔记

    写在前面:据说下周就要xxxxxxxx, 吓得本宝宝赶紧找些广告的东西看看 gbdt+lr的模型之前是知道怎么搞的,dnn+lr的模型也是知道的,但是都没有试验过 深度学习在美团点评推荐平台排序中的运 ...

  7. C# .Net Framework4.5中配置和使用managedCUDA及常见问题解决办法

    主要参考英文帖子.我就不翻译了哈.很容易懂的. 先说明我的运行平台: 1.IDE:Visual Studio 2012 C# .Net Framework4.5,使用默认安装路径: 2.显卡类型:NV ...

  8. CefSharp 提示 flash player is out of date 运行此插件 等问题解决办法

    CefSharp 提示 flash player is out of date 或者 需要手动右键点 运行此插件 脚本 等问题解决办法 因为中国版FlashPlayer变得Ad模式之后,只好用旧版本的 ...

  9. android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法

    这里介绍微信和新浪登录.微信登录和新浪登录都需要申请第三方账号.可以参考官方文档http://dev.umeng.com/social/android/operation#2还是很清晰的. 新浪微博开 ...

随机推荐

  1. LR场景设置里的各参数解释

    1.Start Vuser ep1: Strat 100 Vusers :2 every 00:00:15(HH:MM:SS) 解释: 场景总共要跑100个虚拟用户,每15秒启动2个虚拟用户Vuser ...

  2. python读入文件

    举例说明吧,路径一定要带转义符‘\’,下面的例子中,每一行是一个样本的feature >>> myfile=open("D:\\301\\graduate_thesis\\ ...

  3. nohup DEMO

    nohup,顾名思义:挂起免疫. nohup命令可以防止当你退出系统时,在后台运行的进程被终止.它能让你运行的命令或脚本在你退出系统后继续在后台运行. nohup命令不能自动的将任务放在后台运行,所以 ...

  4. 搭建HTTP Live Streaming直播系统

    最近,需要将苹果的HTTP Live Streaming系统搭建起来.完全没有头绪,故第一步就是学习. 一.学习资料 官网资料 1. http://developer.apple.com/resour ...

  5. php socket通信(tcp/udp)

    注意 1.在socket_bind的时候ip地址不能真回环地址如127.0.0.1 2.server.php后台跑起来的时候 nohup php server.php > /var/tmp/a. ...

  6. 对Discuz的简单认识

    Discuz是php的一个开源论坛系统,是由康盛创想公司2004开发,从Discuz! 1.0到 现在的Discuz X3,无论从功能上还是从用户体验上,都达到了一个质的飞越.主要包括论坛.门户.群组 ...

  7. 如何在ecshop商品详情页显示供货商信息

    以下范例以ecshop2.7.2原型做为修改: 1.首先需要修改程序文件,将供货商读取出来,然后赋值给模板,   打开文件 /goos.php,   在                   $smar ...

  8. [STL]set/multiset用法详解[自从VS2010开始,set的iterator类型自动就是const的引用类型]

    集合 使用set或multiset之前,必须加入头文件<set> Set.multiset都是集合类,差别在与set中不允许有重复元素,multiset中允许有重复元素. sets和mul ...

  9. ACM题目————A simple problem

    Description Zty很痴迷数学问题..一天,yifenfei出了个数学题想难倒他,让他回答1 / n.但Zty却回答不了^_^. 请大家编程帮助他.   Input 第一行整数T,表示测试组 ...

  10. 杭电1009-FatMouse' Trade

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...