在channel标签中currentstyle读取自定义字段名的解决方法

在制作 dedecms模板 的时候经常会使用currentstyle标签高亮当前栏目,之前在dedecms模板制作基础之~siteurl~一篇文章里说过一个解决二级栏目读取导航链接的方法,就是利用了siteurl,但是,如果用了siteurl,大家会发现在用currentstyle的时候读取不出链接了
       在制作dedecms模板的时候经常会使用currentstyle标签高亮当前栏目,之前在dedecms模板制作基础之~siteurl~一篇文章里说过一个解决二级栏目读取导航链接的方法,就是利用了siteurl,但是,如果用了siteurl,大家会发现在用currentstyle的时候读取不出链接了。这时候,我们需要对dedecms本身的模板进行修改,以满足我们的需要。
之前一篇文章里说过一个currentstyle,就是这个样子的currentstyle="<li><a class='hover' href='~typelink~' title='~typename~'>~typename~</a></li>"
 
如果我们用的不是typelink而是siteurl呢?我们会这样写:currentstyle="<li><a class='hover' href='~siteurl~' title='~typename~'>~typename~</a></li>",对不对?
 
按道理说,确实该这么写,用~引起来,没错啊?可是一生成发现没连接!
  
    我们打开\include\taglib下的channel.lib.php文件
  找到这么一行
 $linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr);
  之所以我们在currentstyle="<li><a class='hover' href='~typelink~' title='~typename~'>~typename~</a></li>"中使用typelink可以取到链接地址,就是因为这句话。
    那么,我们也仿照这句话写出siteurl:
 $linkOkstr = str_replace("~siteurl~",$row['siteurl'],$linkOkstr);
这样,再使用currentstyle="<li><a class='hover' href='~siteurl~' title='~typename~'>~typename~</a></li>"就可以成功读取链接了。

 



 

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

解决办法: 修改include/taglib/channel.lib.php 查找: if( ($row[id]==$typeid || ($topid==$row[id] $type==top) ) $currentstyle!= ) 改成 if( ( $row[id]== $refObj-TypeLink-TypeInfos[id] || ($topid==$row[id] $type==top) ) $currentstyle!= )
解决办法: 修改include/taglib/channel.lib.php 查找: if( ($row[id]==$typeid || ($topid==$row[id] $type==top) ) $currentstyle!= ) 改成 if( ( $row[id]== $refObj-TypeLink-TypeInfos[id] || ($topid==$row[id] $type==top) ) $currentstyle!= )
{dede:channel type=son row=8 currentstyle=lia href=~typelink~ class=thisclass~typename~/a /li} lia href=[field:typelink/][field:typename/]/a /li {/dede:channel} 这种调用方式currentstyle有效 但是: {dede:channel type=son row=8 typeid=1 curr
织梦的channel 频道标签currentstyle可用于type=top或self兄弟分类上,没法用于子分类. 基本语法: {dede:channel type=top row=8 currentstyle=lia href=~typelink~ class=thisclass~typename~/a /li} lia href=[field:typelink/][field:typename/]/a /li {/
在 include/taglib/channel.lib.php line 140 $linkOkstr = str_replace( ~typename~ , $row [ typename ], $linkOkstr ); 后面补上一句 $linkOkstr = preg_replace_callback( /\~global\.(\w+)?\~/i , function ( $matches ) { return $GLOBALS [ $matches
织梦dedecms模板网站里面默认只有channel标签支持currentstyle属性,但是今天在做一个资讯网站的时候channelartlist也需要使用currentstyle属性,怎么办呢?