将dede:list标签进行改造了,熟悉dede的朋友应该知道这个列表页专用标签的工作原理大致是先通过栏目变量id获取到对应的数据源再呈现到页面上来,那么我们就可以让它不仅仅通过栏目变量id还可以通过指定的sql语句来获取数据源了。

例如会员列表的模板标签写法

{dede:listsql sql="select * from #@__member" pagesize="10"}

[field:XX /]

{/dede:listsql}

{dede:pagelist/}

实现教程

打开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 = str_replace('~reid~',$this->ReID,$cquery); 这是另一个客户要求的获取url第2个参数才加的。

$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;

}

}

}

继续找到

else if($ctag->GetName()=="pagelist")

在它上面加入

else if($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

));

}

最后找到

function GetPageListST(

在它上面加入

function GetSqlList($limitstart = 0, $row = 10, $sql = '', $innertext)

{

global $cfg_list_son;

$innertext = trim($innertext);

if ($innertext == '')

{

$innertext = GetSysTemplets('list_fulllist.htm');

}

//处理SQL语句

$limitStr = " LIMIT {$limitstart},{$row}";

$sql = str_replace('~reid~',$this->ReID,$sql);

$this->dsql->SetQuery($sql . $limitStr);

$this->dsql->Execute('al');

$t2 = ExecTime();

//echo $t2-$t1;

$sqllist = '';

$this->dtp2->LoadSource($innertext);

$GLOBALS['autoindex'] = 0;

//获取字段

while($row = $this->dsql->GetArray("al"))

{

$GLOBALS['autoindex']++;

if(is_array($this->dtp2->CTags))

{

foreach($this->dtp2->CTags as $k=>$ctag)

{

if($ctag->GetName()=='array')

{

//传递整个数组,在runphp模式中有特殊作用

$this->dtp2->Assign($k,$row);

}

else

{

if(isset($row[$ctag->GetName()]))

{

$this->dtp2->Assign($k,$row[$ctag->GetName()]);

}

else

{

$this->dtp2->Assign($k,'');

}

}

}

}

$sqllist .= $this->dtp2->GetResult();

}//while

$t3 = ExecTime();

//echo ($t3-$t2);

$this->dsql->FreeResult('al');

return $sqllist;

}

完成,注意代码放置的位置,有的是在上面有的是在下面。

dede php分页代码,织梦用dede:sql实现列表页分页教程方法相关推荐

  1. dede模板php代码,织梦dede模板内怎样到场php代码_CMS体系建站教程

    织梦dede模板内怎样到场php代码? 一.模板页面内嵌入php 引荐进修:织梦cms 比方: {dede:name runphp='yes'} $str = "hello"; @ ...

  2. dede列表分页php,织梦用dede:sql实现列表页分页教程

    将织梦dede:list标签进行改造,使用SQL标签实现静态分页,在自定义表单调用的分页用他就很方便,例如会员列表的模板标签写法:{dede:listsql sql="select * fr ...

  3. 织梦网站导航栏html代码,织梦导航栏标签Channel增加自动序号的方法

    我们在用织梦建站做栏目导航时,需要用到下面的样式: 这样的序列在标签{dede:channel}中是无法调用的,所以必须修改标签, 默认的{dede:channel}调用方法: {dede:chann ...

  4. 织梦图集php,织梦图集在首页、列表页、内容页调用图集所有图片及注释的方法...

    我们都知道织梦的图集默认调用语法是:{dede:field name='imgurls' src="/uploads/allimg/180903/1-1PZ3150P70-L.jpg&quo ...

  5. 织梦?php?调用栏目,dedecms列表页内容页模板调用上一个栏目下一个栏目方法

    织梦CMS内容页有上一篇下一篇文章,没有上一个栏目下一个栏目,我们可以不用修改程序内核文件,直接在模板里用"runphp"输出上一个栏目和下一个栏目. 上一个栏目下一个栏目标签写法 ...

  6. 织梦 ajax 返回,Dede织梦arclist标签+Ajax实现织梦首页分页-叙述织梦

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 有时在做织梦模板的时候需要实现首页分页效果,但是织梦本身首页是不带分页功能的,那如何实现织梦首页分页呢? 用arclist标签+Ajax实现织梦首页分页 ...

  7. 织梦dedeCMS模板-织梦模板-dede模板【免费下载】

    织梦dede做为老牌的网站积累了不少用户,今天给我大家介绍一款免费织梦dede模板内置5W套织梦dede模板,以及免费织梦ded插件大全其中包括有:织梦dedd采集插件.织ed梦伪原创插件.织梦ded ...

  8. dede织梦data目录正确迁移及引起的问题解决方法

    dede织梦data目录正确迁移及引起的问题解决方法 参考文章: (1)dede织梦data目录正确迁移及引起的问题解决方法 (2)https://www.cnblogs.com/cdxkyz/arc ...

  9. 织梦模板中php代码,织梦模板内怎么加入php代码

    织梦模板内怎么加入php代码 织梦无忧 2020-09-10 09:21 摘要: 织梦模板支持php代码,虽然不能完全像写php页面那样,但是基本的东西还是够了. 一.模板页面内嵌入php 例如: { ...

最新文章

  1. SQL Server 查询性能优化——堆表、碎片与索引(一)
  2. 易语言 基础知识一及认识句柄 局部变量
  3. react 项目总结
  4. [GoogleAppEngine]GAE平台需设置默认threadsafe-编译问题
  5. java statement 存储过程_Java+sql server+CallableStatement调用存储过程三种情况 (转)...
  6. 队列queue的详细讲解
  7. 隐式函数声明警告---调用malloc函数但不包含头文件
  8. 【算法与数据结构】——并查集
  9. 台式电脑连接电脑主机与显示器
  10. 给QlineEdit创建简单的clicked 信号方式
  11. 原生开发什么意思_原生APP是什么?选原生开发有哪些优势?
  12. css中pt单位,css中字体单位px,pt,em,百分比之间的区别和用法
  13. redis px nx ex xx
  14. 海思3518E开发笔记1.2——海思SDK脚本学习
  15. 中国移动手机阅读基地社会招聘笔试面试全过程
  16. Failed to introspect annotated methods on class 异常
  17. 《前端中文入门手册》.pdf
  18. [转]JavaScript自动生成博文目录导航
  19. 如何设置UEFI的系统启动顺序
  20. 路由器桥接静态ip设置_如何在路由器上设置静态IP地址

热门文章

  1. matlab定义数组和相关函数
  2. 专注区块链底层技术突破,「复杂美」用技术开源推动产业未来
  3. 职业教育计算机教学,关于职业教育中计算机教学的思考
  4. webAPI 的错误码的生成
  5. 数数课堂·第四期:一个运营人的数据分析成长史
  6. 石头剪刀布AI进化版
  7. 血压心电的测量小工具,轻松了解身体状况,dido Y1S手环上手
  8. android 实现半个圆角长方形
  9. html 最小边框宽度,css如何让div边框不占宽度?
  10. latex:如何制作斜线表头