POST TIME:2017-11-13 23:38
很多朋友知道,dedecms模板系統中,{dede:arclist/}標簽里有個[field:global.autoindex/]標簽。
這個標簽用處可大了。它可以讓arclist每生成一行文章就自動累加1。非常不錯的功能。很多dedecms模板制作中,會使用這個標簽。
最常見的例子,就是在dedecms官方模板中,顯示幻燈片的一短js代碼中,細心的朋友可以看到這個[field:global.autoindex/]標簽。
但可惜的是,好象只有{dede:arclist/}標簽支持這個自動累加的功能。
如何把這個自動增1的變量擴展應用到其他標簽中呢?這里給大家一個小技巧。
比如:我們想在{dede:sql/}標簽中使用[field:global.autoindex/]標簽。
那我們可以修改sql.lib.php這個文件(文件路徑為官方程序目錄\include\taglib)。
打開后我們找到第34行,也就是代碼
$ctp->LoadSource($Innertext);
處,在下面加上以下一段代碼:
$GLOBALS['autoindex'] = 0;
這里的目的是定義一個全局變量autoindex,并賦值為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();
}
注意紅色的部分,是我們加上的代碼,含義很清楚,每循環一次,就讓變量autoindex累加1。
這樣,這個[field:global.autoindex/]標簽就可以在那個{dede:sql/}中使用了,我們舉個例子:
{dede:sql sql='‘}
[field:global.autoindex/]-[field:title/]</br>
{/dede:sql}
使用方法,同dedecms默認模板完全一樣。
簡單吧,呵呵。希望大家喜歡這個教程。