首页 | 风讯安装 | 后台管理 | 升级转换 | 模板制作 | 标签说明 | 采集说明 | 常见问题 | 自由标签 | 样式管理 | 功能扩展 | 插件使用 |
常 见 问 题
新 手 入 门
中 级 进 阶
高 级 技 巧
 3.1-制作强大的通用标签 ★★★★★ 【字体:小 大】 
3.1-制作强大的通用标签
http://www.foosun.cn   作者:lino   来源:  点击:  更新时间:06-06-16 11:18:04
 

什么是通用标签?
简单地说,就是标签中调用标签 如:{FS_{FS_当前类目}_热点}
通用标签有什么用?
利用通用标签可以让N个类目共同调用一个模板,而显示的内容又各不相同。
它可以大大减少你制作模板的工作,也会给日常的维护带来很大的方便。
通用标签的原理是什么?
现在有多少个要表现的类就要写多少个模板与之对应。 比如说:网页技术下有ASP、JSP、PHP、JAVA、CGI等等一堆子栏目。每个子栏目需要写一个对应的模板和它对应。因为每个模板上的“相关新闻”、“热点新闻”等都不能用同一个标签。如果写一个可以自动得出目前栏目所在的父类的方法,放到一个公共模板里供标签调用,无论有多少个子栏目页面,只要显示的栏目一样,只需要写二个模板就够了。一个是Class_public.htm,一个是Detail_public.htm
怎么实现呢?比如需要在asp,jsp,php,java,cgk几个板块中“热点新闻”。只需要在Class_public.htm中定义{FS_{FS_当前栏目}_热点新闻},然后去自定义标签里加上{FS_asp_热点新闻}{FS_jsp_热点新闻}。。。等就可以了。好象讲了半天也没说清楚~。
PS解释下:{FS_{FS_当前栏目}_热点}
会自动先把{FS_当前栏目}得出来,(当前栏目也是自动获取的,不需要指定) 假设当前栏目的名称是asp,那么就变成了{FS_asp_热点}。只需要在标签库中有{FS_asp_热点}就可以显示ASP的热点新闻了~

实现通用标签需要改三个页面。不要嫌麻烦,它真的会带给你前所未有的轻松!
建议先备份下述三个文件:
Admin\Refresh\RefreshFunction.asp
Admin\Refresh\Function.asp
Admin\Refresh\SelectFunction.asp

一、打开Admin\Refresh\RefreshFunction.asp ,拉到倒数第二行(也就是%>前面),,把下面的代码复制上去
'******************************
'根据ID得到当前所在栏目的名称
'author:lino
'Start
'*****************************
Function ypren()
Select Case RefreshType
  Case "Class"
   ypren = GetClassNameById(RefreshID)
  Case "News"
   ypren = GetNewsClassNameById(RefreshID)
  Case "Special"
   ypren = GetSpecialClassNameById(RefreshID)
  Case "DownLoad"
   ypren = GetDownloadClassNameById(RefreshID)
  Case Else
   ypren = ""
End Select
End Function

'栏目名称
Function GetClassNameById(ClassID)
Dim SqlClass,RsClassObj
if ClassID = "" then Exit Function

'**********如果是3.1版,把下行NewsClass改成FS_NewsClass
  Set RsClassObj = Conn.Execute("Select ClassCName from NewsClass where ClassID='" & ClassID & "'")
  if Not RsClassObj.Eof then
   GetClassNameById=RsClassObj("ClassCName")
  end if
RsClassObj.Close
Set RsClassObj = Nothing
End Function

'新闻所在的类目

Function GetNewsClassNameById(NewsID)
Dim SqlClass,RsClassObj
if NewsID = "" then Exit Function

'**********如果是3.1版,把下行News改成FS_News
  Set RsClassObj = Conn.Execute("Select ClassID from News where NewsID='" & NewsID & "' ")
  if Not RsClassObj.Eof then
   GetNewsClassNameById=RsClassObj("ClassID")
   GetNewsClassNameById=GetClassNameById(GetNewsClassNameById)
  end if
RsClassObj.Close
Set RsClassObj = Nothing
End Function

'专题所在的类目

Function GetSpecialClassNameById(SpecialID)
Dim SqlClass,RsClassObj
if SpecialID = "" then Exit Function

'**********如果是3.1版,把下行Special改成FS_Special

9 7 3 1 2 4 8 :
文章录入:风讯科技  责任编辑:风讯科技  
·上一篇:新手上路之标签教程
·下一篇:风讯系统自建标签的方法和使用
【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
 没有任何评论
2002-2006 Foosun Inc. 四川风讯科技发展有限公司.版权所有  蜀ICP备 05005237