当前位置:首页 > 行业动态 > 正文

如何修复Dedecms中Channelartlist的Autoindex失效问题?

请检查是否在 /include/arc.listview.class.php文件中正确设置了 $autoindex变量,并确保相关模板文件存在且路径正确。

在织梦dedecms中,channelartlist标签下的autoindex属性失效是一个常见的问题。autoindex属性通常用于生成自增的序号,但在channelartlist标签中却无法获取到该值,为了解决这个问题,可以使用itemindex来代替autoindex。

具体用法如下:

{dede:global name='itemindex' runphp='yes'}
    if(@me==1){
        @me = "display: block;";
    }else{
        @me = "display: none;";
    }
{/dede:global}

通过上述代码,可以在channelartlist标签中使用itemindex来生成自增的序号,并控制其显示与隐藏。

说明
{dede:global name='itemindex' runphp='yes'} 定义一个全局变量itemindex,并设置其运行模式为PHP
if(@me==1) 判断itemindex的值是否为1
@me = "display: block;" 如果itemindex为1,则设置样式为显示
else 否则
@me = "display: none;" 设置样式为隐藏
{/dede:global} 结束全局变量定义

以下是一个示例:

{dede:channelartlist typeid='3' row='7'}
    <div id="con_wcfk_{dede:global name='itemindex'/}" itemindex' runphp='yes'}if(@me==1){@me = "display: block;";}else{@me = "display: none;";}{/dede:global}">
        {dede:arclist flag='c' row='1'}
            <dl>
                <dt><a href="[field:arcurl/]" target="_blank" title="[field:fulltitle/]"><img width="118" height="77" align="[field:fulltitle/]" src="[field:picname/]" /></a></dt>
                <dd>
                    <p><a href="[field:arcurl/]" target="_blank" title="[field:fulltitle/]">[field:title/]</a></p>
                    <p>[field:description function="cn_substr(@me,116)"/]....<a href="[field:arcurl/]" target="_blank" title="详细">详细>></a></p></dd>
            </dl>
        {/dede:arclist}
        <ul>
            {dede:arclist row='10' titlelen='' infolen=''}
                <li><a href="[field:arcurl/]" target="_blank" title="[field:fulltitle/]">[field:title/]</a></li>
            {/dede:arclist}
        </ul>
    </div>
{/dede:channelartlist}

在这个示例中,使用itemindex来控制每个列表项的显示与隐藏,当itemindex为1时,该项会显示;否则,该项会隐藏。

FAQs

Q1: 为什么在channelartlist标签下autoindex失效?

A1: 在channelartlist标签中,autoindex属性无法获取到值,因此需要使用itemindex来代替,这是由于织梦dedecms的内部机制决定的,具体原因未在官方文档中详细说明。

Q2: 如何在其他标签中使用autoindex和itemindex?

A2: 在其他标签中,如arclist,可以使用[field:global.autoindex/]来获取自增的序号,而channelartlist标签必须使用{dede:global name='itemindex'/}来获取自增的序号,具体用法如下:

在arclist标签中使用autoindex:

  {dede:arclist row='5'}
      <li>[field:global.autoindex/]  [field:title/]</li>
  {/dede:arclist}

在channelartlist标签中使用itemindex:

  {dede:channelartlist typeid='3' row='7'}
      {dede:global name='itemindex' runphp='yes'}if(@me==1){@me = "display: block;";}else{@me = "display: none;";}{/dede:global}
      <div id="con_wcfk_{dede:global name='itemindex'/}" itemindex' runphp='yes'}if(@me==1){@me = "display: block;";}else{@me = "display: none;";}{/dede:global}">
          {dede:arclist flag='c' row='1'}
              <dl>
                  ...
              {/dede:arclist}
          </div>
  {/dede:channelartlist}
0