DedeCMS在{dede:channel}标签前加序列号

[复制链接]
树苗收集系 发表于 2020-9-16 11:57:46 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
我们在制作织梦模板的时候,经常想实现这样的一个样式功能:在DedeCMS网站导航中都会添加一些样式,这样能让导航看起来很美观大方。但是{dede:channel}标签是不能修改的,想要有一个好看的样式效果,还要修改一些标签。

默认的{dede:channel}调用方法:
  1. {dede:channel type='top' row='8'}
  2. <a href="[field:typeurl/]" [field:rel/] title="[field:typename/]" class="dh1">[field:typename/]</a>
  3. {/dede:channel}
复制代码

通过修改,改成下面的样式:
  1. {dede:channel type='top' row='8' line='2'}
  2. <a href="[field:typeurl/]" title="[field:typename/]" class="dh[field:line/]" [field:rel/]></a>
  3. {/dede:channel}
复制代码

修改步骤如下:

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


  1. $attlist = "typeid|0,reid|0,row|100,col|1,type|son,currentstyle|,cacheid|";
复制代码

修改成
  1. $attlist = "typeid|0,reid|0,row|100,col|1,type|son,currentstyle|,cacheid|,line|1";
复制代码

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

在第9行附近追加如下代码:
  1. //默认属性里设置的行数
  2. $default_line = $ctag->CAttribute->Items["line"];
复制代码

把下面代码
  1. $row['sonids'] = $row['rel'] = '';
复制代码
修改成
  1. $row['sonids'] = $row['rel'] = ''; $row['line'] = $default_line+$i;
复制代码

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

  1. $linkOkstr = str_replace("~rel~",$row['rel'],$linkOkstr);
  2. $linkOkstr = str_replace("~id~",$row['id'],$linkOkstr);
  3. $linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr);
  4. $linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);
  5. $linkOkstr = str_replace("~line~",$row['line'],$linkOkstr);
复制代码

完成。

回复

使用道具 举报

精彩评论2

小悲小欢小流年 发表于 2020-9-24 10:12:27 | 显示全部楼层
藕是来打酱油滴...
回复

使用道具 举报

撒哈拉的泪 发表于 2020-10-8 20:37:19 | 显示全部楼层
抢楼了,前排第一次啊
回复

使用道具 举报

发布主题
推荐阅读 更多
阅读排行 更多
广告位
全国统一客服电话
400-1234-5678

24x7小时免费咨询

  • 官方在线客服

    QQ客服:小西

    点击交谈

    QQ客服:良子

    点击交谈

    QQ客服:闵月

    点击交谈
  • 安徽省合肥市高新区创新产业园

  • 手机扫码查看手机版

    手机查找资源更方便

  • 扫一扫关注官方微信

    加入官方微信群