PHPCMS V9调用全站最新内容的解决方案

normal;background-color:#FFFFFF;">PHPCMS v9 的数据只能调用一张表,也就是说无法一次性调用不同模型的内容。之前也有不少人问过,可是至今没人能解答该疑问。于是,我花了一个下午的时间,在debug中寻找最佳结果。

normal;background-color:#FFFFFF;">一般有一下三种情况:

normal;background-color:#FFFFFF;">1、一个栏目的调用normal;background-color:#FFFFFF;">。这没什么好说的,使用系统自带的content标签即可实现。

normal;background-color:#FFFFFF;">2、所有顶级栏目(同一模型)的调用normal;background-color:#FFFFFF;">。若直接使用content标签,并指定catid=0,是无法输出内容的。

normal;background-color:#FFFFFF;">3、多个模型的调用,也就是所谓的全站调用normal;background-color:#FFFFFF;">。这个......有点儿难。

normal;background-color:#FFFFFF;">normal;background-color:#FFFFFF;">,使用normal;background-color:#FFFFFF;color:#ff0000;">get标签normal;background-color:#FFFFFF;">即可搞定,但存在一个非常不人性化的分页问题和一个bug。
normal;background-color:#FFFFFF;">分页问题normal;background-color:#FFFFFF;">:一般来讲,调用全站内容排行榜之类的东西,都是新建一个页面栏目(在主页等地方调用的先不谈),然后在 模板添加加入代码。但是,num属性只能指定每一页的列表内容条数,没有参数可以指定页码数量,坑爹的是,LIMIT竟然无法使用。有人建议使用if判断 分页数,break跳出——貌似行不通,页码那里还是显示所有分页序号......接着就出现了第二个问题——bug
normal;background-color:#FFFFFF;">Bugnormal;background-color:#FFFFFF;">:动态页面、静态页面、伪静态页面。动态页面页码序号的链接中竟然包含2个page参数,不过不影响使用,算了;伪静态页面链接都是一样的,静态的没试过,有人说也一样。

normal;background-color:#FFFFFF;">normal;background-color:#FFFFFF;">,同样也是用get标签,但是这里涉及到表的连接。一般可以使用JOIN、UNION之类的操作符,但normal;background-color:#FFFFFF;color:#ff0000;">UNION ALL操作符normal;background-color:#FFFFFF;">最合适,且查询效率最高。但是别以为这样就可以OK了,新的问题又来了,就算使用了page属性,也就只能显示一页。坑爹啊,有木有......
normal;background-color:#FFFFFF;">也曾经试过新建一个推荐位,发布文章自动添加到这个推荐位。这样做也行得通,但是感觉有点麻烦,且无法自动更新。

normal;background-color:#FFFFFF;">既然分页出现问题,那我就自己构造分页,看代码normal;background-color:#FFFFFF;">PHPCMS中国normal;background-color:#FFFFFF;">http://PHPcms.org.cn

normal;background-color:#FFFFFF;">
  • PHP $p=1;$pn=10;$pe=20;$ltime=time()-86400*3;}
  • PHPcms_download WHERE inputtime>$ltime UNION ALL SELECT title,url FROM PHPcms_picture WHERE inputtime>$ltime ORDER BY inputtime DESC" page="$page" num=$pe cache="600" return="data"}


  • normal;background-color:#FFFFFF;">代码解析normal;background-color:#FFFFFF;">:
    normal;background-color:#FFFFFF;">1、先定义几个变量,索引$p、页面数量$pn、每页内容数量$pe、范围时间$ltime。大家可以按需修改
    normal;background-color:#FFFFFF;">2、使用sql语句从news、download和picture三张表中调出title、inputtime和url三个字段的记录,使用UNION ALL将它们连接起来,并按时间倒序排列。请将news、download、picture改成自己的、或者按需增加删除
    normal;background-color:#FFFFFF;">3、自定义显示页码。样式可以自定义。但是不要删除某些代码的换行,会报错的。

    相关文章

    本教程操作系统:Windows10系统、phpcms 9版本、Dell G3电脑...
    PHPcms访问特点:单一入口模式。无论访问任何一个模块或者功...
    例如:{pc:contentaction="position"posid="...
    首先,上图之中的红色框框是没有的,我们想要给他加上,当然...
    头部<metaname="keywords"content="{$SEO...
    做网站时用的到的简单的栏目导航()phpcms多个栏目catidin(9,...