如何正确使用dedecms中的autoindex功能?

Dedecms autoindex 的用法是设置自动生成网站地图,帮助搜索引擎更好地收录网站内容。

DedeCMS中的autoindex属性是一种自增函数,用于自动为内容记录分配一个唯一的索引值,这个索引值通常是基于数据库表中记录的顺序自动生成的,通过使用autoindex,可以快速获取当前记录的索引位置,特别是在循环遍历内容记录时。

如何正确使用dedecms中的autoindex功能?

基本用法

DedeCMS中,autoindex和itemindex都是用@me来表示计数开始,而类似@me+1则可以指定数字开始,在不同的标签中,它们的起始值是不同的:

默认起始值 示例代码
channelartlist 0 {dede:global name=’itemindex’ runphp=’yes’}@me;{/dede:global}
channelartlist 1 {dede:global.itemindex/}
arclist 1 [field:global.autoindex/]
channel 0 [field:global.autoindex/]

如果需要改变起始值,可以通过以下方式调用:

// 从0开始
[field:global name=autoindex runphp="yes"]@me=@me1;[/field:global]
// 从1开始
[field:global name=autoindex runphp="yes"]@me=@me+1;[/field:global]

扩展用法

autoindex和itemindex不仅可以用于基本的自增计数,还可以结合条件判断、自定义函数等进行复杂的逻辑操作,以下是一些常见的扩展用法示例:

1. 起始值加5开始自增计数

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

2. 如果被2整除则输出竖线否则为空

[field:global name=autoindex runphp="yes"](@me%2==0)? @me="|":@me="";[/field:global]

3. 如果不等于8输出竖线否则为空,即为8的时候不打印竖线

如何正确使用dedecms中的autoindex功能?

[field:global name=autoindex runphp="yes"](@me!=8)? @me="|":@me="";[/field:global]

4. 列表每5行有带划线

[field:global runphp='yes' name=autoindex]
$a="<li>";
$c="<li class='line'>";
if ((@me % 5) == 0) @me = $c;
else @me = $a;
[/field:global]

5. 在第5行和第10行加广告,其他行为空

[field:global runphp='yes' name=autoindex]
$a="<div class='box'>";
$b="广告1";
$c="</div>";
$d="广告2";
$e="";
if (@me == 5) @me = $a.$b.$c;
else if (@me == 10) @me = $a.$d.$c;
else @me = $e;
[/field:global]

6. 第一行样式为class="check",其他行按行数类名字后面id="life_channe1"的数字1实现自增

<li><a href="[field:typeurl/] " [field:global name='autoindex'runphp='yes']if(@me==0){@me='class="check"';}else{@me='id="life_channe'.@me.'" goto="life_channe'.@me.'"';}[/field:global]>[field:typename/]</a></li>

7. Div中id名字后面的数字从0开始自增,判断如果是第一行则加style="display:none;"属性,其他行为空

<div id="HomeCon2_1_{dede:global name=itemindex runphp='yes'}@me=@me1;{/dede:global}" class="HomeCon2_1_1" {dede:global name='itemindex' runphp='yes'}@me=(@me==1)?'':'style="display:none;"';{/dede:global} >

使用自定义函数

可以在include/extend.fun.php里添加自定义函数,然后在模板中调用。

// include/extend.fun.php
function MyPosition($p){
    $positionArr=array(275,330,380,435,495,547);
    return $positionArr[$p];
}
// 模板中调用方法
{dede:channel type='son' typeid='13' row='6' noself='yes'}
<div id='pdv_16795' class='pdv_class' title='' style="width:71px;height:20px;top:[field:global.autoindex function='MyPosition(@me)'/]px;left:136px; zindex:17">
<div style="FONTFAMILY: SimSun; COLOR: #fecd2e; FONTSIZE: 15px; fonweight: bold"><a style="FONTFAMILY: SimSun; COLOR: #fecd2e; FONTSIZE: 15px; fonweight: bold" href="[field:typeurl/]"target=_blank><strong>[field:typename/]</strong></a></div>
</div>
{/dede:channel}

FAQs

Q1: autoindex和itemindex有什么区别?

如何正确使用dedecms中的autoindex功能?

A1: autoindex和itemindex的主要区别在于它们在不同标签下的起始值不同,在channelartlist标签下,autoindex默认从0开始,而itemindex默认从1开始,它们的应用场景和扩展用法也有所不同。

Q2: 如何在DedeCMS中使用自定义函数与autoindex结合?

A2: 首先在include/extend.fun.php文件中定义自定义函数,然后在模板中调用该函数并传入autoindex的值,定义一个名为MyPosition的函数,根据传入的参数返回不同的数值,然后在模板中使用[field:global.autoindex function=’MyPosition(@me)’/]来调用该函数并传递当前的autoindex值。

序号 参数/选项 说明
1 autoindex 用于开启自动索引功能,列出目录下的所有文件和文件夹。
2 depth 用于指定索引的深度,例如depth=2 表示索引当前目录及其子目录深度为2的目录。
3 files 显示目录下的所有文件,不显示文件夹。
4 folders 显示目录下的所有文件夹,不显示文件。
5 size 显示文件的大小。
6 date 显示文件的最后修改日期。
7 help 显示自动索引的帮助信息。
8 ignore 忽略某些文件或文件夹,可以指定文件或文件夹的名称,例如ignore=*.tmp 表示忽略所有以.tmp 结尾的文件。

以下是一个使用dedecms autoindex 的示例:

dedecms autoindex autoindex depth=2 files size date

该命令将列出当前目录及其子目录深度为2的目录下的所有文件,显示文件的大小和最后修改日期。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1191627.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-10-09 11:06
下一篇 2024-10-09 11:08

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入