转一下:给织梦dedecms5.6{dede:channel}标签增加行数序号属性

时间: 2011-03-17 / 分类: dedecms / 浏览次数: 3,508 views / 1个评论 发表评论

最近使用了dedecms5.6,当制作模板时,调用channel标签需要增加行数序号属性,但官方却没有提供这样的底层标签可供选用,这相比ASP的科汛CMS差了不少,不过通过自己的DIY,行号还是可以使用的,DIY方法如下:

要实现的效果

<ul>
<li class=”list1″></li>
<li?class=”list2″></li>
<li?class=”list3″></li>
<li?class=”list4″></li>
<li?class=”list5″></li>
</ul>

 
因为需要给class属性值list后面的序号自增,默认的{dede:channel标签没有提供序号功能,所以想到进行修改这个标签,来完善这个功能
以下是默认dede:channel标签的使用方法:

<ul>
{dede:channel type=’top’ row=’5′}
<li><a href=”[field:typeurl/]” [field:rel/] title=”[field:typename/]“>[field:typename/]</a></li>
{/dede:channel}
</ul>

改进后,我们要实现如下代码:

<ul>
{dede:channel type=’top’ row=’5′}
<li class=”list[field:line/]“><a href=”[field:typeurl/]” [field:rel/] title=”[field:typename/]“>[field:typename/]</a></li>
{/dede:channel}
</ul>

修改步骤如下:
1.修改/include/taglib/channel.lib.php文件的lib_channel函数,把如下代码

$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″;

2.修改/include/taglib/channel.lib.php文件的lib_channel函数,在第9行附近追加如下代码:

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

3.修改/include/taglib/channel.lib.php文件的lib_channel函数,把如下代码:? $row[‘sonids’] = $row[‘rel’] = ”;
修改成如下代码:

$row[‘sonids’] = $row[‘rel’] = ”;
$row[‘line’] = $default_line+$i;

就OK了.

1个评论

  1. tutu
    2011/04/09 23:46:13

    [field:global name=autoindex/] 其实这个标签可以现在吧!

发表评论

你必须 登录后 才能留言!