dedecms 栏目列表循环序号、循环+1的调用方法

  • 一一得一
  • 技术分享
  • Mar 30, 2022

有时候我们需要在dede:list或者dede:arclist里面为列表添加序号,这时候就需要用到“[field:global.autoindex/]”标签,这个标签可以自动加序号。

添加后序号就会自动增加,默认从1开始。

但是有时候我们可能不需要从1开始,比如从2开始,那么就需要这样写:

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



相反,如果想让它从0开始,那就用这个代码:

[field:global name=autoindex runphp="yes"]@me=@me-1;[/field:global]


dedecms织梦频道模板中调用栏目分类并排序:
 

{dede:channelartlist}

栏目排序:{dede:global runphp='yes' name=itemindex}@me;{/dede:global}

<a href=”{dede:field name='typeurl' /}”>点击进入{dede:field name='typename' /}列表>></a>

{/dede:channelartlist}

 

织梦 channel 标签调用栏目排序方法:

{dede:channel  type='top'  row='10'}

栏目排序:[field:global runphp='yes' name=autoindex]@me=@me+1;[/field:global]

[field:typename/]

{/dede:channel}
 

以上两个调用序号的方法基本上可以完成dedecms模板中的栏目前的排序效果

 

需要用到每循环一次,变量加一,这是就需要使用到autoindex标签。

代码写法如下:

{dede:arclist titlelen='26' row='10'}

<li><a title="[field:title function='htmlspecialchars(@me)'/] " href="[field:arcurl /]">[field:title /]</a></li>

 [field:global name=autoindex runphp="yes"]if(@me%5==0)@me="<br/>";else @me="";[/field:global]

{/dede:arclist}

红色的即为autoindex标签用法。意思是,循环调用文章时,到第五条时输出<br/>,否则输出空。这样我们就实现了第五篇文章下面进行换行。配合css和简单的php等代码使用,达到更多效果。

循环+1的写法:

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

频道页使用时可以换成itemindex标签,原理同autoindex

{dede:global name='itemindex'/}

{dede:global name='itemindex' runphp='yes'}if(@me%5==0)@me="<br/>";else @me="";{/dede:global}

{dede:global name='itemindex' runphp='yes'}@me=@me+1;{/dede:global}


织梦默认的搜索页不支持autoindex标签,需要修改核心文件增加支持:
找到文件:include/arc.searchview.class.php

里面找到代码:$this->dtp2->LoadSource($innertext);

下面加上:

$GLOBALS['autoindex'] = 0;

------------------------------------
if($row = $this->dsql->GetArray("al"))
{

下面加上:

 $GLOBALS['autoindex']++;
 $ids[$row['id']] = $row['id'];

打赏