dedecms织梦_sql标签实现分页.docVIP

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
dedecms织梦_sql标签实现分页

dedecms 织梦 dede:sql 标签实现分页  相信很多使用dedecms的朋友正在网上查找关于dede:sql标签进行分页的解决方案时都不尽如人意,尤其是正在列表页使用dede:sql调用外部数据(所谓调用外部数据就是指正在后台只是创建个空栏目,然后对应的列表模板文件中使用dede:sql指定自界说的数据源,数据源与该栏目本身是没有逻辑关系的,目的是为了让织梦能按照它的规则来帮我们将数据源生成静态文件予以展示)时,我本人也搜索了很多资料,网上的答案都不敷完美,有的是直接正在模板文件中执行php代码来实现分页,显然此方法无法生成静态文件,有的直接正在sql里面指定limit参数,但又无法实现智能分页,织梦官方也没有给出具体的解决方案,在dede论坛有看到织梦核心人物天涯给出的回复是采用自由列表的方法,显然自由列表无法指定外部数据源,最后实在没办法只能自己动手了,首先想到的思路是将dede:list标签进行改造了,熟悉dede的朋友应该知道这个列表页专用标签的工作原理大致是先通过栏目变量id获取到对应的数据源再呈现到页面上来,那么我们就可让它不仅仅通过栏目变量id还可以通过指定的sql语句来获取数据源了,比如我们可以另外嵌入一个类似{dede:listsql sql=select * from wp_posts pagesize=10}的标签来使用。?   OK,思路已经有了,接下来我们打开include/arc.listview.class.php这个文件来给它动个小手术吧!?   找到: if(!is_object($ctag)) { $ctag = $this-dtp-GetTag(list); }?   这一段,在其后添加以下代码: if(!is_object($ctag)){$ctag=$this-dtp-GetTag(listsql);if(is_object($ctag)){$cquery=$ctag-GetAtt(sql);$cquery=preg_replace(/SELECT(.*?)FROM/is, SELECT count(*) as dd FROM ,$cquery);$cquery=preg_replace(/ORDER(.*?)SC/is,,$cquery);$row=$this-dsql-GetOne($cquery);if(is_array($row)){$this-TotalResult=$row[dd];}else{$this-TotalResult=0;}}}//end?   然后找到: if($ctag-GetName()==list){$limitstart=($this-PageNo-1)*$this-PageSize;$row=$this-PageSize;if(trim($ctag-GetInnerText())==){$InnerText= GetSysTemplets(list_fulllist.htm);}else{$InnerText=trim($ctag-GetInnerText());}$this-dtp-Assign($tagid,$this-GetArcList($limitstart,$row,$ctag-GetAtt(col),$ctag-GetAtt(titlelen),$ctag-GetAtt(infolen),$ctag-GetAtt(imgwidth),$ctag-GetAtt(imgheight),$ctag-GetAtt(listtype),$ctag-GetAtt(orderby),$InnerText,$ctag-GetAtt(tablewidth),$ismake,$ctag-GetAtt(orderway)));}?   这一段,在其后添加以下代码: elseif($ctag-GetName()==listsql){$limitstart=($this-PageNo-1)*$this-PageSize;$row=$this-PageSize;if(trim($ctag-GetInnerText())==){$InnerText= GetSysTemplets(list_fulllist.htm);}else{$InnerText=trim($ctag-GetInnerText());}$this-dtp-Assign($tagid,$this-GetSqlList($limitstart,$row,$ctag-GetAtt(sql),$InnerText));}//end?   最后找到function GetArcList这个方法,在其后添加一个可以通过传入sql参数获取指定数据源的方法,代码以下: /** * 通过l

文档评论(0)

sheppha + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5134022301000003

1亿VIP精品文档

相关文档