织梦自动计数增加:autoindex,itemindex

 

自动记数增加: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}


例2:

例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;实现由指定数字开始


一、写法


标准写法:

你可能感兴趣的:(autoindex,itemindex,织梦自动计数增加)