查看: 54162|回复: 666

[使用帮助] 主站调用全部最新内容的解决方案【不同模型、不同栏目】,及分页问题的研究

    [复制链接]
发表于 2011-8-12 16:15:50 | 显示全部楼层 |阅读模式
本帖最后由 rememberh9 于 2011-8-12 17:27 编辑

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

一般有一下三种情况:

1、一个栏目的调用。这没什么好说的,使用系统自带的content标签即可实现。

2、所有顶级栏目(同一模型)的调用。若直接使用content标签,并指定catid=0,是无法输出内容的。

3、多个模型的调用,也就是所谓的全站调用。这个......有点儿难。

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

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

既然分页出现问题,那我就自己构造分页......哈哈,看代码!
[hide]
[code]
<!--先自定义几个变量-->
{php $p=1;$pn=10;$pe=20;$ltime=time()-86400*3;}
<!--调用数据,分页显示-->
{pc:get sql="SELECT title,inputtime,url FROM phpcms_news WHERE inputtime>$ltime UNION ALL SELECT title,inputtime,url FROM phpcms_download WHERE inputtime>$ltime UNION ALL SELECT title,inputtime,url FROM phpcms_picture WHERE inputtime>$ltime ORDER BY inputtime DESC" page="$page" num=$pe cache="600" return="data"} <ul>
  {loop $data $r}
  <li><a href='{$r[url]}'>{$r[title]}</a></li>
  {/loop}
</ul>
{/pc}
<!--自定义页码显示-->
<div id="pages" class="text-c">
  <a class="a1">
{php echo $pn*$pe;}
{L('page_item')}</a>
  {loop $data $r}
  {if $p==1}{if $_GET

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?点击这里注册

x

评分

参与人数 10鲜花 +61 收起 理由
thinkyou + 7 很给力!
yuhaibo + 5 很好,通过这个思路我也解决了,谢谢!
人间无泪 + 10
jackton + 5 很给力!
寻龙剑客 + 1 赞一个!
lzq + 1
邪恶 + 20 神马都是浮云
darkfire + 1 很给力!
7pakinek + 10 谢谢了,解决了我们最近常遇到的问题。
nic + 1

查看全部评分

发表于 2011-8-13 16:31:21 | 显示全部楼层
本帖隐藏的内容需要回复才可以浏览
回复 支持 反对

使用道具 举报

发表于 2011-8-13 16:32:25 | 显示全部楼层
分页链接测试过没有
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-13 17:20:57 | 显示全部楼层
分页链接测试过没有
nic 发表于 2011-8-13 16:32



   所以代码都通过测试.....
回复 支持 反对

使用道具 举报

发表于 2011-8-13 18:36:23 | 显示全部楼层
回复 4# rememberh9


   哟西,感谢分享
回复 支持 反对

使用道具 举报

发表于 2011-8-14 02:32:53 | 显示全部楼层
本帖隐藏的内容需要回复才可以浏览
回复 支持 反对

使用道具 举报

发表于 2011-8-14 14:28:05 | 显示全部楼层
学习学习在学习
回复 支持 反对

使用道具 举报

发表于 2011-8-14 19:02:28 | 显示全部楼层
没有隐藏的呀,呵呵,搞笑
回复 支持 反对

使用道具 举报

发表于 2011-8-14 20:41:29 | 显示全部楼层
看看啊。被这个问题难倒了
回复 支持 反对

使用道具 举报

发表于 2011-8-14 23:17:17 | 显示全部楼层
本帖隐藏的内容需要回复才可以浏览
回复 支持 反对

使用道具 举报

发表于 2011-8-15 14:12:44 | 显示全部楼层
本帖隐藏的内容需要回复才可以浏览
回复 支持 反对

使用道具 举报

发表于 2011-8-15 14:17:30 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2011-8-15 15:23:01 | 显示全部楼层
学习学习~~~
回复 支持 反对

使用道具 举报

发表于 2011-8-15 17:24:48 | 显示全部楼层
dddddddddddddddd
回复 支持 反对

使用道具 举报

发表于 2011-8-15 22:22:05 | 显示全部楼层
顶··························
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 点击这里注册

本版积分规则

小黑屋|Archiver|phpcms网站管理系统 ( 京ICP备14011169 )

GMT+8, 2019-3-26 16:43 , Processed in 0.219851 second(s), 10 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表