使用aspcms做了个站,感觉非常不错,现就修改位置导航链接样式的方法总结一下。
在最近做模板的时候,需要修改一下位置导航链接的样式,就是像“当前位置:首页 > 产品展示 > 实体产品”这样的导航的链接样式,在aspcms中,链接样式是全局定义的,导航位置是通过
“当前位置: <a href=”{aspcms:sitepath}{aspcms:languagepath}” >首页</a>{aspcms:position} > [position:link]{/aspcms:position}”
这行代码引用的,其中
“<a href=”{aspcms:sitepath}{aspcms:languagepath}” >首页</a>”
部分是显示a标记的,可以直接用类似
“<a href=”{aspcms:sitepath}{aspcms:languagepath}” class=”navlink” >首页</a>”
的方式进行CSS样式定义,但导航链接部分通过
“{aspcms:position} > [position:link]{/aspcms:position}”
这段代码引用,其中没有显示的a标记,所以无法在模板上进行CSS样式的自定义。
经过研究源代码,找到在aspcms根目录中“inc/AspCms_MainClass.asp”这个文件中的“Function getTopType(SortID)”函数来生成导航链接的,所以只要将这个函数中相关部分加一个样式定义,就可以自由控制导航链接的样式了,相关代码如下:Function getTopType(SortID)
Dim tempStr,rsObj
set rsObj = conn.Exec(“select * from {prefix}Sort where SortID=”&SortID&””,”r1″)
tempStr=tempStr&”<a href=”””&getSortLink(rsObj(“sortType”),rsObj(“sortID”),rsObj(“sortUrl”),rsObj(“sortFolder”),rsObj(“sortFileName”),rsObj(“GroupID”),rsObj(“Exclusive”))&”””>”&rsObj(“SortName”)&”</a>,”
if rsObj(“ParentID”)<>0 then tempStr=tempStr&getTopType(rsObj(“ParentID”))
rsObj.close : set rsObj=nothing
getTopType=tempStr
End Function
我们只要将
tempStr=tempStr&”<a href=”””&getSortLink(rsObj(“sortType”),rsObj(“sortID”),rsObj(“sortUrl”),rsObj(“sortFolder”),rsObj(“sortFileName”),rsObj(“GroupID”),rsObj(“Exclusive”))&”””>”&rsObj(“SortName”)&”</a>,”
这一行中加一个class样式,我们加在“<a href”中间,如“<a class=’navlink’ href=””””,这样在模板中以定义类名为navlink的a样式文件,就可以控制导航链接的样式了。
如果我们不定义navlink类,则默认使用全局样式,您可以选择在不同的位置定义navlink类,以达到控制不同范围的导航链接样式。
希望本文对您有所帮助。
原创文章,作者:斑斓网站长,如若转载,请注明出处:https://www.argb.net/aspcms-use-of-experience-to-modify-the-current-position-of-the-navigation-links-style.html
评论列表(1条)
不得不说。你真历害。我也遇到这问题了。谢谢