在织梦CMS(DedeCMS)中,有一个非常实用的标签 [field:global.autoindex/],它是一个自增标签。该标签的值从1开始,并随着列表项自动递增。当我们需要为网站添加一些动态效果时,这个标签显得尤为有用。


 


接下来,我们介绍一下如何让这个自增标签从0开始计数的方法:



[field:autoindex runphp='yes']@me=$GLOBALS['autoindex']-1;[/field:autoindex]

上述代码中的关键部分是“-1”。如果希望从2开始递增,可以将“-1”改为“+1”,依此类推。


 


默认情况下,[field:global.autoindex/] 标签无法在 {dede:sql/} 标签中使用。如果我们希望在 SQL 查询中也能够使用这个标签,可以通过以下步骤实现:


 


首先,找到 /include/taglib 文件夹下的 sql.lib.php 文件。


 


打开文件后,定位到第34行,即代码 $ctp->LoadSource($Innertext); 的位置。


 


在其下方添加以下代码:



$GLOBALS['autoindex'] = 0;

这段代码的作用是定义一个全局变量,并将其初始值设置为0。


 


接下来,修改以下代码块:



while($row = $dsql->GetArray($thisrs))
{
    $sqlCt++;
    foreach($ctp->CTags as $tagid=>$ctag){
        if(!empty($row[$ctag->GetName()])){ 
            $ctp->Assign($tagid,$row[$ctag->GetName()]); 
        }
    }
    $GLOBALS['autoindex']++; // 每循环一次,增加1
    $revalue .= $ctp->GetResult();
}

完成以上修改后,[field:global.autoindex/] 标签就可以在 {dede:sql/} 中正常使用了。下面是一个示例:



{dede:sql sql='select * from dede_archives'}
[field:global.autoindex/]-[field:title/]
{/dede:sql}

通过这种方式,我们可以轻松地在 SQL 查询结果中使用自增标签,从而实现更加灵活的内容展示。


以上方法可以帮助您更好地利用织梦CMS的功能,提升网站开发效率。如果您有其他需求或问题,欢迎继续探索和学习!