什么是通用標(biāo)簽?
簡(jiǎn)單地說(shuō),就是標(biāo)簽中調(diào)用標(biāo)簽 如:{FS_{FS_當(dāng)前類目}_熱點(diǎn)}
通用標(biāo)簽有什么用?
利用通用標(biāo)簽可以讓N個(gè)類目共同調(diào)用一個(gè)模板,而顯示的內(nèi)容又各不相同。
它可以大大減少你制作模板的工作,也會(huì)給日常的維護(hù)帶來(lái)很大的方便。
通用標(biāo)簽的原理是什么?
現(xiàn)在有多少個(gè)要表現(xiàn)的類就要寫多少個(gè)模板與之對(duì)應(yīng)。 比如說(shuō):網(wǎng)頁(yè)技術(shù)下有ASP、JSP、PHP、JAVA、CGI等等一堆子欄目。每個(gè)子欄目需要寫一個(gè)對(duì)應(yīng)的模板和它對(duì)應(yīng)。因?yàn)槊總€(gè)模板上的“相關(guān)新聞”、“熱點(diǎn)新聞”等都不能用同一個(gè)標(biāo)簽。假如寫一個(gè)可以自動(dòng)得出目前欄目所在的父類的方法,放到一個(gè)公共模板里供標(biāo)簽調(diào)用,無(wú)論有多少個(gè)子欄目頁(yè)面,只要顯示的欄目一樣,只需要寫二個(gè)模板就夠了。一個(gè)是Class_public.htm,一個(gè)是Detail_public.htm
怎么實(shí)現(xiàn)呢?比如需要在asp,jsp,php,java,cgk幾個(gè)板塊中“熱點(diǎn)新聞”。只需要在Class_public.htm中定義{FS_{FS_當(dāng)前欄目}_熱點(diǎn)新聞},然后去自定義標(biāo)簽里加上{FS_asp_熱點(diǎn)新聞}{FS_jsp_熱點(diǎn)新聞}。。。等就可以了。好象講了半天也沒說(shuō)清楚~。
PS解釋下:{FS_{FS_當(dāng)前欄目}_熱點(diǎn)}
會(huì)自動(dòng)先把{FS_當(dāng)前欄目}得出來(lái),(當(dāng)前欄目也是自動(dòng)獲取的,不需要指定) 假設(shè)當(dāng)前欄目的名稱是asp,那么就變成了{(lán)FS_asp_熱點(diǎn)}。只需要在標(biāo)簽庫(kù)中有{FS_asp_熱點(diǎn)}就可以顯示ASP的熱點(diǎn)新聞了~
實(shí)現(xiàn)通用標(biāo)簽需要改三個(gè)頁(yè)面。不要嫌麻煩,它真的會(huì)帶給你前所未有的輕松!
建議先備份下述三個(gè)文件:
Admin/Refresh/RefreshFunction.asp
Admin/Refresh/Function.asp
Admin/Refresh/SelectFunction.asp
一、打開Admin/Refresh/RefreshFunction.asp ,拉到倒數(shù)第二行(也就是%>前面),,把下面的代碼復(fù)制上去
'******************************
'根據(jù)ID得到當(dāng)前所在欄目的名稱
'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")
新聞熱點(diǎn)
疑難解答