原网站: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. STM32内存跟FLASH问题

    RO: 常量 ZI: 未初始化的全局变量 RW: 初始化的全局变量 Code: 程序本身 Code, RO-data,RW-data ..............flash RW-data, ZIda ...

  2. sersync实现触发式同步

    金山的一个居于inotify+rsync进行二次开发实现文件同步的小工具sersync,能够很方便的实现文件触发式同步 Inotify 是基于inode级别的文件系统监控技术,是一种强大的.细粒度的. ...

  3. oracle ORA-12519,TNS:no appropriate service handler found的

    select count(*) from v$process --当前的连接数 select value from v$parameter where name = 'processes' --数据库 ...

  4. HDU 3487:Play with Chain(Splay)

    http://acm.hdu.edu.cn/showproblem.php?pid=3487 题意:有两种操作:1.Flip l r ,把 l 到 r 这段区间 reverse.2.Cut a b c ...

  5. hdwiki 编码规范

    编码规范         命名规范 1.1.主要的目录 control 里面是控制类 ,前台命名为something.php,则后台对应的是admin_+前台名称,名称应选有意义的英文单词,例如 前台 ...

  6. java面试每日一题11

    题目:求1+2!+3!+...+20!的和 public class Recursion { public static void main(String args[]) throws NumberF ...

  7. Struts输出流向jsp页面写入图片乱码

    通过Struts2输出字节流将图片写到jsp页面上,之前用jquery的div对象的html()方法接收一直显示乱码,查了很多网页都找不到解决办法,不是说contentype="multip ...

  8. [BIM]案例

    以下是中建三局BIM小组的项目,用以参考: BIM协同设计与质量控制 现实建筑物实体都是以三维空间状态存在,若用三维设计表达更具有优势.如复杂管综设计,一般情况下,二维AutoCAD设计是在建筑.结构 ...

  9. c# UDP

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  10. c#游戏 剪刀石头

    电脑using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace sh ...