dede:sql實(shí)現(xiàn)分頁(yè),織夢(mèng)sql實(shí)現(xiàn)分頁(yè)的辦法,DEDE技術(shù)
導(dǎo)讀:DEDE技術(shù)DEDE技術(shù)網(wǎng)頁(yè)制作 / CSS / 瀏覽器兼容教程,免費(fèi)織夢(mèng)模板dede織夢(mèng)模板。
思路是把dede:list標(biāo)簽進(jìn)行改造, 列表頁(yè)專用標(biāo)簽的工作原理大致是先通過(guò)欄目變量id獲取到對(duì)應(yīng)的數(shù)據(jù)源再呈現(xiàn)到頁(yè)面上來(lái),那么 就可以讓它不僅僅通過(guò)欄目變量id還可以通過(guò)指定的sql語(yǔ)句來(lái)獲取數(shù)據(jù)源 可以另外嵌入一個(gè)類似{dede:listsql sql='select * from wp_posts' pagesize='10'}的標(biāo)簽來(lái)使用。
dede免費(fèi)模板打開(kāi)include/arc.listview.class.php這個(gè)文件
找到:
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(isdede手機(jī)模板_array($row)) { $this->TotalResult = $row['dd']; } else { $this->TotalResult = 0; } } } 然后找到: if($ctag->GetName()=="list") { $limitstart = ($thisdede后臺(tái)模板->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") ) ); } 這一段,在其后添加如下代碼: 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 GetArcList這個(gè)方法,在其后添加一個(gè)可以通過(guò)傳入sql參數(shù)獲取指定數(shù)據(jù)源的方法,代碼如下:
function GetSqlList($limitstart = 0, $row = 10, $sql = '', $innertext){ global $cfg_list_son; $innertext = trim($innertext); if ($innertext == '') { $innertext = GetSysTemplets('list_fulllist.htm'); } //處理SQL語(yǔ)句 $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->CTags as $k=>$ctag) { if($ctag->GetName()=='array') { //傳遞整個(gè)數(shù)組,在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; } 總共就添加三段代碼,調(diào)用范例: {dede:listsql sql='select ID,post_title from wp_posts' pagesize='10'} <li><a href="http://www.genban.org/[field:ID /].html">[field:post_title /]</a></li> {/dede:listsql} <!--分頁(yè)--> {dede:pagelist listsize='2' listitem='index pre pageno next end '/}
聲明: 本文由我的SEOUC技術(shù)文章主頁(yè)發(fā)布于:2023-07-18 ,文章dede:sql實(shí)現(xiàn)分頁(yè),織夢(mèng)sql實(shí)現(xiàn)分頁(yè)的辦法,DEDE技術(shù)主要講述分頁(yè),辦法,織夢(mèng)網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請(qǐng)保留鏈接: http://www.bifwcx.com/article/web_29668.html
為你推薦與dede:sql實(shí)現(xiàn)分頁(yè),織夢(mèng)sql實(shí)現(xiàn)分頁(yè)的辦法,DEDE技術(shù)相關(guān)的文章
-
當(dāng)前欄目調(diào)用上級(jí)欄目名稱的辦法,織夢(mèng)文
(106)人喜歡 2023-07-18 -
Dedecms自定義表單后臺(tái)列表展現(xiàn)方式更改
(142)人喜歡 2023-07-18 -
用SQL命令刪除dede版權(quán)信息的官方鏈接,D
(124)人喜歡 2023-07-18 -
Dedecms后臺(tái)驗(yàn)證碼不顯示的解決方法,織夢(mèng)
(102)人喜歡 2023-07-18 -
Dedecms搜索頁(yè)面調(diào)用最新文章的方法,織夢(mèng)
(77)人喜歡 2023-07-18 -
DedeCMS轉(zhuǎn)換WordPress方法-親測(cè)成功,DEDE技術(shù)
(183)人喜歡 2023-07-18