温馨提醒
如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢
本文最后更新于2023年9月23日,已超过 180天没有更新
dedecms列表arclist的自增编号,基本语法为:
[field:global.autoindex/]
具体为:
arclist 标签下使用 [field:global.autoindex/] 默认从1开始
channel 标签下使用 [field:global.autoindex/] 默认从0开始
channelartlist 标签下使用 {dede:global.itemindex/} 默认从1开始
可加上判断语句:
[field:global runphp='yes' name=autoindex] if (@me < 4) @me = "<em>".@me."</em>"; else @me = @me; [/field:global]
在列表中的具体应用为:
<ul> {dede:arclist row='10' titlelen='250' keyword='~keywords~'} <li> <p>[field:global runphp='yes' name=autoindex] if (@me < 4) @me = "<em>".@me."</em>"; else @me = @me; [/field:global]<a href="[field:arcurl/]" title="[field:title/]" target="_blank">[field:array runphp='yes'] if(@me['shorttitle']=='') @me=@me['title']; else @me=@me['shorttitle']; [/field:array]</a></p> </li> {/dede:arclist} </ul>
[field:global.autoindex/]的实际应用:
如果想让他从0开始自增的方法
[field:autoindex runphp='yes']@me=$GLOBALS['autoindex']-1;[/field:autoindex],这里的-1是重点,如果想从2开始自增就是+1以此类推
这个标签默认在sql标签中是不可以使用的,如果希望在sql语句的标签中加入,可以这样做。比如我们想修在{dede:sql/}标签中使用
首先找到 /includ/taglib文件夹下的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:dede_archives]dede_archives'[/url]} [field:global.autoindex/]-[field:title/]</br> {/dede:sql}
channel标签的数字递增调用方法:
在include/taglib/channel.lib.php 第140行之后加一句
$linkOkstr = str_replace("~autoindex~",$GLOBALS['autoindex'],$linkOkstr);
下面是例句:
{dede:channel type='top' currentstyle="<li id='taba~autoindex~' class='top1'><a href='~typelink~'>~typename~</a></li>" } <li id='taba[field:global.autoindex/]'><a href='[field:typelink/]'>[field:typename/]</a></li> {/dede:channel}
这样dede:channel 标签就完美支持autoindex 这个数字排序标签了。
评论0+