dedecms二次開發之在{dede:sql}中使用自增函數

2019-07-08 10:40:35 濟南網站建設
在{dede:arclist/}這個標簽中大家都知道有個[field:global.autoindex/],這個變量每生成一行就+1,那很多人希望{dede:sql/}標簽也需要加上這個功能,怎么實現這個功能呢?
 
下面我們就開始增加這個小擴展,我們知道在V5.3中織夢的標簽已經分離出來,也就是類似于arclist這樣的標簽可以自己修改或者二次開發,程序這些標簽存放的目錄在/include/taglib文件夾下面,我們可以看那個文件名,就很容易知道這些標簽文件名和標簽的對應關系。
 
那我們現在需要修改的是{dede:sql/}這個標簽,那我們就修改sql.lib.php這個文件。
 
打開后我們找到第34行,也就是代碼
 
$ctp->LoadSource($Innertext);處,在下面加上以下一段代碼:
 
$GLOBALS['autoindex'] = 0;
 
這段代碼就是定義一個全局變量,并賦值為0,接下來我們只需要將下面代碼進行下修改:
 
while($row = $dsql->GetArray($thisrs))
 
{
 
$sqlCt++;
 
foreach($ctp->CTags as $tagid=>$ctag){
 
if(!empty($row[$ctag->GetName()])){ $ctp->Assign($tagid,$row[$ctag->GetName()]); }
 
}
 
$GLOBALS['autoindex']++; //每循環一次加上一個1然后解析出來
 
$revalue .= $ctp->GetResult();
 
}
 
這樣一來,這個[field:global.autoindex/]標簽就可以在那個{dede:sql/}中使用了,我們舉個例子:
 
{dede:sql sql='select * from dede_archives}
 
[field:global.autoindex/]-[field:title/]</br>
 
{/dede:sql}
十大色情片电影