目前总结出了两种方式。
第一种,SQL语句
{dede:sql sql="SELECT typename,typedir,defaultname FROM dede_arctype where reID = 3 order by sortrank asc limit 0,6"}<a href="[field:typedir function='str_replace("{cmspath}","",@me)'/]/" target="_blank" title="[field:typename/]" alt="[field:typename/]">[field:typename function="cn_substr(@me,12)"/]</a>[field:global.autoindex function="(@me==1 || @me==2 || @me==4 || @me==5)?'|':(@me == 3 ? '<br>':'')"/]{/dede:sql}
代码解释:
{dede:sql sql="SELECT typename,typedir,defaultname FROM dede_arctype where reID = 3 order by sortrank asc limit 0,6"}
从表“dede_arctype”中查找“reID = 3”的内容,并返回typename、typedir、defaultname”中的内容,从1开始取6次;
[field:typedir function='str_replace("{cmspath}","",@me)'/]
typedir中的数据如果出现“{cmspath}”则自动替换成空;
[field:typename function="cn_substr(@me,12)"/]
typename取12个字符;
[field:global.autoindex function="(@me==1 || @me==2 || @me==4 || @me==5)?'|':(@me == 3 ? '<br>':'')"/]
autoindex:按循环次数自动编号,也就是第一次循环为1,第二次为2,依次类推,autoindex有些特殊说明,会在下边提;
第1,2,4,5次循环的时候输出“|”,在第3次循环的时候输出“
”。
第二种,运行php
{dede:channelartlist typeid='38,58,50,51'}<a href="{dede:field name='typeurl'/}" target="_blank" title="{dede:field name='typename'/}" alt="{dede:field name='typename'/}">{dede:field name='typename'/}</a>{dede:global name='itemindex' runphp="yes"}(@me==4)? @me="":@me="|";{/dede:global}{/dede:channelartlist}
代码解释:
{dede:global name='itemindex' runphp="yes"}(@me==4)? @me="":@me="|";{/dede:global}
{dede:global name='itemindex' runphp="yes"}
运行PHP代码,itemindex等同于第一种方法中的autoindex,在[field]标签中的写法是[field:global name=autoindex runphp="yes"](@me==0)? @me="":@me="|";[/field:global];
【(@me==4)? @me="":@me="|";
】判断语句,当循环次数等于4的时候,输出一个“(空)”,其它时候输出”|”。
autoindex itemindex 的使用心得区别
channelartlist 标签下使用 {dede:global name='itemindex' runphp='yes'}@me;{/dede:global}
自增1
arclist 标签下使用 [field:global.autoindex/]
默认从1开始
channel 标签下使用 [field:global.autoindex/]
默认从0开始
channelartlist 标签下使用 {dede:global.itemindex/}
默认从1开始
arclist 从0开始 [field:global name=autoindex runphp="yes"]@me=@me-1;[/field:global]
channel 从1开始 [field:global name=autoindex runphp="yes"]@me=@me+1;[/field:global][field:typename/]
channelartlist 从0开始 {dede:global name=itemindex runphp='yes'}@me=@me-1;{/dede:global}
其它写法:
排序除了用[field:global name=autoindex/]
,还可以用[field:global runphp='yes' name=autoindex][/field:global]
channelartlist 标签下调用序号应使用 {dede:global name='itemindex' runphp='yes'}@me;{/dede:global}