自动记数增加:autoindex,itemindex
案例4:列表每3个记录换行
栏目列表页如下图,每3条记录一行,共有N行:
源代码简单示意:
转成织梦标签代码类似如下:
<table>
<tr>
{dede:list pagesize='3'}
<td>图</td>
[field:global name=autoindex runphp="yes"]
if(@me%3==0){ @me='</tr><tr>'; } else{ @me=' '; }
[/field:global]
{/dede:list}
</tr>
</table>
***********************************
引申:织梦默认的搜索页不支持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'];
***********************************
如果autoindex是奇数:
<div class="chosenbox">
...
</div>
[field:global name=autoindex runphp="yes"] if((@me)%3==0){@me='</tr><tr>';}else{@me=' ';} [/field:global]
案例1:
{dede:arclist row='12' titlelen='50' orderby='pubdate'}
<li class="current">[field:global name=autoindex runphp="yes"](@me<10)? @me="0@me":@me="@me";[/field:global]</li>
{/dede:arclist}
调取新闻列表,共显示12条每条新闻标题前面显示01,02,03,...,09,10,11,12,这样使用递增很方便,(@me<10)? @me="0@me":@me="@me"是一个判断语句。
案例2:Tab选项卡切换
{dede:channelartlist typeid='14' row='3' currentstyle="<li class='hover'><a href='~typelink~' class='thisclass'>~typename~</a> </li>" }
<li id="one{dede:global.itemindex/}" onmouseover="setTab('one',{dede:global.itemindex/},3)" class="hover">
<a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
</li>
{/dede:channelartlist}
这种调用方法常用于Tab选项卡切换,需要用JS来作判断,此时使用递增很方便。
案例2代码在网页源码查看后类似于(不含虚线):
-------------------------------------------------------------------------------------------
<li id="one1" onmouseover="setTab('one',1,3)" class="hover"> <a href="#">品牌新闻</a></li>
<li id="one2" onmouseover="setTab('one',2,3)" > <a href="#">行业资讯</a></li>
<li id="one3" onmouseover="setTab('one',3,3)"> <a href="#">媒体报道</a></li>
-------------------------------------------------------------------------------------------
案例3:根据autoindex的奇偶来决定div的class属性值
<div [field:global name=autoindex runphp="yes"] (@me%2==0)?@me='class="chosenbox chosenbox-ml" :@me='class="chosenbox"' ; [/field:global] >
<a href="[field:arcurl/]" title="[field:fulltitle/]" target="_blank">[field:title/]</a>
</div>
在html源文件解析出来后,如果autoindex是偶数:
<div class="chosenbox chosenbox-ml">
...
</div>
{dede:list pagesize='40' orderby='id'}
[field:global name='autoindex' runphp='yes']if(@me==0){@me="test";}else{@me='';}[/field:global]
{/dede:list}
例1:
三、用途
autoindex,itemindex除可自动记数增加外,还可以实现奇偶行变色,每N条记录换行等效果。
{dede:global name=itemindex runphp="yes"}@me=@me+1;{/dede:global}
让autoindex,itemindex自动加1
[field:global name=autoindex function="@me+1"/]
[field:global name=autoindex runphp="yes"]@me=@me+1;[/field:global]
[field:global name=itemindex function="@me+1"/]
二、自增1
[field:global.autoindex runphp="yes"] me=@me+1; [/field:global]
这种写法貌似有时是错的,解析不出来!
以autoindex为例,中间有条件判断(双引号或单引号都可以):
{dede:global name=autoindex runphp="yes"} @me=@me+1; {/dede:global}
{dede:global.autoindex runphp="yes"} @me=@me+1; {/dede:global}
[field:global name=autoindex runphp="yes"] me=@me+1; [/field:global]
如果中间没有条件判断,则简写成:
{dede:global name=autoindex runphp="yes"/}
{dede:global.autoindex runphp="yes"/}
[field:global name=autoindex runphp="yes"/]
错误写法:
arclist标签下: 使用 [field:global name=autoindex/] 默认从1开始
channel 标签下: 使用 [field:global name=autoindex/] 默认从0开始
channelartlist 标签下: 使用 {dede:global.itemindex/} 默认从1开始
list标签下: 使用 [field:global.autoindex/] 默认从1开始
autoindex ,itemindex 可以使用 @me=@me+1 或 @me=@me-1;实现由指定数字开始
一、写法
标准写法: