在Dedecms网页制作中,autoindex的功能非常强大且使用巧妙。本文将简要介绍几种autoindex的用途,希望能为大家提供帮助。
默认模板中的幻灯部分会看到以下代码:
[field:global name=autoindex/]
我们可以通过以下代码进行测试:
{dede:arclist row='5' }
linkarr[[field:global name=autoindex/]] = "[field:arcurl/]";
picarr[[field:global name=autoindex/]] = "[field:litpic/]";
textarr[[field:global name=autoindex/]] = "[field:title/]";
{/dede:arclist}
生成的HTML代码显示,[field:global name=autoindex/]从1开始递增,row="5"时最后一个值为5。
了解了autoindex的这一特性后,我们可以实现一些简单功能。例如:
有七个专题:原创日记 | 爱情美文 | 情感故事 | 心情随笔 | 亲情文章 | 网站建设 | 唯美图文。除了最后一个专题外,每个专题后面都有一个竖线。直接用标签循环调用可能会出现以下问题:
{dede:channel typeid='**' type='son'}
[field:typename/] |
{/channel}
生成的结果可能是:
原创日记 | 爱情美文 | 情感故事 | 心情随笔 | 亲情文章 | 网站建设 | 唯美图文 |
最后一个专题多了一个竖线,这显然不是我们想要的结果。
然而,Dedecms提供了强大的自定义编程功能,可以解决这个问题:
{dede:channel typeid='**' type='son'}
[field:typename/][field:global name=autoindex runphp="yes"](@me!=7)? @me=" | ":@me="";[/field:global]
{/channel}
这样就可以去掉最后一个竖线。但这种方法有一个不足之处:如果栏目数量发生变化,就需要修改代码。
为了更好地解决这一问题,可以通过修改标签来实现,无论栏目如何变化都不会影响结果。具体方法是截取字符串:
$linkList=substr($linkList,0,strlen($linkList)-26);
这里,$linkList是一个自定义变量,保存返回的字符串。通过取整个字符串的0到字符串长度减去竖线和空格长度的部分,可以去掉最后多余的竖线和空格。
这种方法的优点在于,无论栏目数量如何变化,都能得到封装好的字符串,并自动去除最后几个字符。