如何在dedecms中实现currentstyle样式?

avatar
作者
猴君
阅读量:0
在DedeCMS中,要实现文章样式currentstyle,可以通过修改模板文件来实现。具体操作如下:,,1. 打开模板文件夹(默认为/templets/default/)。,2. 找到文章列表模板文件,如list_article.htm。,3. 在该文件中,找到文章列表循环的地方,通常会有类似这样的代码:,,``html,{dede:arclist ...},`,,4. 在这个循环内部,找到当前样式的标记,,,`html,,`,,5. 将这个标记替换为你自己的样式,,,`html,,``,,6. 保存文件并刷新页面,你的文章列表应该会显示自定义的样式。

在织梦CMS(DedeCMS)中,实现文章列表的当前样式(currentstyle)显示是一个常见的需求,这通常用于在文章列表中高亮显示当前被点击或正在查看的文章标题,以下是详细的实现方法:

一、使用arclist标签实现currentstyle

1、基础代码

如何在dedecms中实现currentstyle样式?

```html

{dede:arclist typeid='1' row='8' currentstyle="<li class='on'><a href='~arcurl~'>~title~</a> </li>"}

```

这段代码表示调用ID为1的栏目下的前8篇文章,并设置当前文章的样式为<li class='on'><a href='~arcurl~'>~title~</a> </li>

2、二次开发

如果需要进一步定制,可以通过修改arclist.lib.php文件来实现,具体步骤如下:

打开/include/taglib/arclist.lib.php文件。

找到获取当前页面中对象中当前文章ID的代码。

在arlist标签里做一个判断,根据当前文章ID来设置特定的样式。

二、使用channelartlist标签实现多级导航currentstyle

1、基础代码

```html

<div class="listbox">

{dede:channelartlist}

<dl class="tbox">

<dt><strong><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></strong><span class="more"><a href="{dede:field name='typeurl'/}">更多...</a></span></dt>

<dd>

<ul class="d1 ico3">

{dede:arclist titlelen='60' row='8'}

<li><span>[field:pubdate function="MyDate('md',@me)"/]</span><a href="[field:arcurl /]">[field:title /]</a></li>

{/dede:arclist}

</ul>

</dd>

</dl>

{/dede:channelartlist}

</div>

```

这段代码展示了如何使用channelartlist标签进行循环子栏目及其栏目的文档数据,并在列表页/内容页中使用。

2、栏目高亮

为了实现栏目高亮,可以打开channelartlist.lib.php文件,找到相关代码并加入以下代码:

```php

$pv>Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);

if($typeids[$i]['id'] == $refObj>TypeLink>TypeInfos['id']){

$pv>Fields['currentstyle'] = ' id="pic_focus"';

} else {

$pv>Fields['currentstyle'] = '';

}

```

在模板中可以使用{dede:field name='currentstyle'/}进行调用。

三、使用autoindex方法实现currentstyle

1、基础代码

```html

{dede:channel type=’top’ row=’8′ currentstyle=”<li class=’on’><a class=’box~autoindex~’ href=’~typelink~’>~typename~</a></li>”}

```

这段代码展示了如何在DedeCMS建站过程中,通过使用autoindex属性来实现当前栏目的高亮显示。

2、修改底层文件

打开include/taglib/channel.lib.php文件,搜索并找到以下代码:

```php

$linkOkstr = str_replace(“~typename~”,$row[‘typename’],$linkOkstr);

```

在其下一行加入以下代码:

```php

$linkOkstr = str_replace(“~autoindex~”,$GLOBALS[‘autoindex’]+1,$linkOkstr);

```

可以在模板中进行调用。

通过上述方法,可以实现DedeCMS文章中的currentstyle样式,使得当前文章在列表中高亮显示,从而提升用户体验和网站的互动性。


为了在DedeCMS中实现文章列表的样式currentstyle,你需要通过以下步骤进行操作:

1. 确定当前文章ID

你需要确定当前文章的ID,因为currentstyle通常用于标识当前页面的文章。

2. 修改模板文件

DedeCMS的模板通常位于/templets/目录下,你需要编辑相应的模板文件,通常是一个.htm.html文件。

步骤:

打开模板文件。

找到文章列表显示的部分。

3. 添加样式标识

在文章列表中,为当前文章添加一个特殊的样式类或ID,以下是一个示例:

 <ul>   {dede:arclist}   <li {dede:field name='id'/} class="{dede:field name='id'/} {dede:field name='litpic'/} {dede:field name='ismenu'/}">     <a href="{dede:field name='arcurl'/}" title="{dede:field name='title'/}">       {dede:field name='title'/}     </a>   </li>   {/dede:arclist} </ul>

在这个例子中,我们使用了{dede:field name='id'/}来获取文章的ID,并将其作为样式类的一部分。

4. 定义样式

在模板文件的<style>标签中,定义currentstyle的样式:

 <style type="text/css"> .currentstyle {   backgroundcolor: #f00; /* 红色背景,仅作为示例 */   color: #fff; /* 白色文字,仅作为示例 */ } </style>

5. 应用样式

在文章列表的<li>标签中,为当前文章的ID添加currentstyle类:

 <li {dede:field name='id'/} class="{dede:field name='id'/} {dede:field name='litpic'/} {dede:field name='ismenu'/} currentstyle">   <!文章内容 > </li>

这样,当文章ID匹配时,就会应用currentstyle样式。

6. 保存并预览

保存模板文件,并在DedeCMS后台预览效果,确保样式正确应用。

注意事项:

确保文章ID是唯一的,以便正确标识当前文章。

样式类名currentstyle可以根据你的需求进行修改。

如果你的模板使用的是其他标签或结构,请根据实际情况调整代码。

通过以上步骤,你可以在DedeCMS中实现文章列表的currentstyle样式。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!