查看: 67|回覆: 0

[教程] 织梦DedeCMS在{dede:channel}标签前加序列号的方法

[複製鏈接]

2

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2009-12-23
發表於 2020-1-26 20:52:25 | 顯示全部樓層 |閲讀模式

我们在制作织梦模板的时候,经常想实现这样的一个样式功能:在DedeCMS网站导航中都会添加一些样式,这样能让导航看起来很美观大方。但是{dede:channel}标签是不能修改的,想要有一个好看的样式效果,还要修改一些标签。

默认的{dede:channel}调用方法:

{dede:channel type='top' row='8'}
<a href="[field:typeurl/]" [field:rel/] title="[field:typename/]" class="dh1">[field:typename/]</a>
{/dede:channel}

通过修改,改成下面的样式:

{dede:channel type='top' row='8' line='2'}
<a href="[field:typeurl/]" title="[field:typename/]" class="dh[field:line/]" [field:rel/]></a>
{/dede:channel}

修改步骤如下:

打开文件include/taglib/channel.lib.php,

$attlist = "typeid|0,reid|0,row|100,col|1,type|son,currentstyle|,cacheid|";

修改成

$attlist = "typeid|0,reid|0,row|100,col|1,type|son,currentstyle|,cacheid|,line|1";

//|后面的1,代表初始值

在第9行附近追加如下代码:

//默认属性里设置的行数
$default_line = $ctag->CAttribute->Items["line"];

把下面代码

$row['sonids'] = $row['rel'] = '';

修改成

$row['sonids'] = $row['rel'] = ''; $row['line'] = $default_line+$i;

如果要使用currentstyle样式,即当前栏目样式,则必修将刚才的"line"字段,追加到下面代码后面

$linkOkstr = str_replace("~rel~",$row['rel'],$linkOkstr);
$linkOkstr = str_replace("~id~",$row['id'],$linkOkstr);
$linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr);
$linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);
$linkOkstr = str_replace("~line~",$row['line'],$linkOkstr);

完成。

回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部