原网站: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. C#操作CSV存取类

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  2. linux内核中异步通信机制--信号处理机制【转】

    转自:http://blog.csdn.net/lu_embedded/article/details/51131663 什么是异步通信?很简单,一旦设备准备好,就主动通知应用程序,这种情况下应用程序 ...

  3. Android的init过程(二):初始化语言(init.rc)解析【转】

    转自:http://www.cnblogs.com/nokiaguy/p/3164799.html Android的init过程(一) 本文使用的软件版本 Android:4.2.2 Linux内核: ...

  4. eclipse 利用已有c++代码建工程,并编译执行

    如果你想建一个带Makefile的c++ 工程 1. 新建一个C++空工程,工程类型是makefile project,选择Linux GCC: 2. 将源码连同makefile文件一同作为一个文件系 ...

  5. rsync 排除指定目录或文件进行同步

    很常见的情况:我想同步/myweb下的 一些php文件 ,  但是不想复制/myweb/log/里边的一些日志文件,因为这些文件太大了,备份也是没有意义的. 现在如果想避开某个路径  直接添加—exc ...

  6. js对select动态添加和删除OPTION

    <select id="ddlResourceType" onchange="getvalue(this)"> </select> 动态 ...

  7. win10启动文件夹:

    win10启动文件夹: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

  8. android 使用WebView 支持播放优酷视频,土豆视频

    看了很多文章和所谓的解决android WebView播放优酷,土豆等视频的办法,都是什么 setPluginsEnabled,在android 4.x之后都不好使,压根就没这函数,因为android ...

  9. 对js原型的理解

    1.值类型和引用类型,引用类型都是对象,通过typeof()测试类型,instanceof测试是否是对象.对象是属性的集合. 2.对象都是由函数创建的,函数又是一个对象. 3.函数有一个默认的属性,叫 ...

  10. poj1811 Prime Test

    http://poj.org/problem?id=1811 #include <cstdio> #include <cstring> #include <algorit ...