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

将织梦dede:list标签进行改造,使用SQL标签实现静态分页,在自定义表单调用的分页用他就很方便,例如会员列表的模板标签写法:{dede:listsql sql="select * from dede_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");

//$sql = str_replace('~reid~',$this->ReID,$cquery); 这是另一个客户要求的获取url第2个参数才加的。

$cquery = preg_replace("/SELECT(.*?)FROM/is", " SELECT count(*) as dd FROM ", $sql);

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

}

文章地址:https://www.ruzw.com/html/201807/1314.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值