天天看點

dede 自增 autoindex

<ul>{dede:arclist row='6' titlelen='60' orderby='pubdate' typeid='1' idlist='' channelid='1'}

<li>

[field:global name=autoindex/]

[field:global name=autoindex runphp="yes"]@me=@me+5;[/field:global]

[field:global name=autoindex runphp="yes"](@me%2==0)? @me="|":@me="";[/field:global][field:textlink/]

[field:global name=autoindex runphp="yes"](@me!=8)? @me="|":@me="";[/field:global]

意思就是當autoindex等于8時候這個标簽為空,否則為“|”。

</li>

{/dede:arclist}

</ul>

2

在{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 [url=mailto:#@__archives]#@__archives'[/url]}

[field:global.autoindex/]-[field:title/]</br>

{/dede:sql}

怎麼樣?很簡單吧,其實這種擴充還有很多很多,自己可以試試哦。

繼續閱讀