手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

织梦用{dede:sql}标签实现分页的方法

时间:2024-10-12 11:49:17

1、打开网站根目录下include文件夹内的arc.listview.class.php文件

织梦用{dede:sql}标签实现分页的方法

2、找到代码: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","SELECTcount(*)asddFROM",$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

织梦用{dede:sql}标签实现分页的方法

3、 然后找到代码: 罕铞泱殳 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") ) ); }

织梦用{dede:sql}标签实现分页的方法

4、 这第三步找到的代码其后添加如下代码: 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

织梦用{dede:sql}标签实现分页的方法

5、然后找到function GetArcList这个函数

织梦用{dede:sql}标签实现分页的方法

6、在function GetArcList后添加一个可以通过传入sql参数获取指定数倌栗受绽据源的方法,代码如下: 艘早祓胂 /** *通过listsql标签中sql属性传入的参数来获得一个单列的文档列表 **/ functionGetSqlList($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}"; $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->CTagsas$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; } //end

织梦用{dede:sql}标签实现分页的方法

7、总共就添加三段代码,每一段代码基本都参考它紧接着的上面那段原始代码,而无需改变它原来任何一个地方的代码,调用范例:{dede:listsql sql='select ID,post_title from wp_posts' pagesize='10'} <li><a href="[field:ID/].html">[field:post_title/]</a></li> {/dede:listsql} <!--分页--> {dede:pagelist listsize='2' listitem='index pre pageno next end '/}

织梦用{dede:sql}标签实现分页的方法
© 手抄报圈