用(yòng)過科(kē)汛系統函數(shù)标簽的(de)"循環顯示欄目文(wén)章(zhāng)标簽"的(de)用(yòn↑g)戶可(kě)能(néng)就(jiù)知(zhī)道(dào)這(zhè)個(gè)标簽有(yǒu)一(yī)定的(de)局限性,樣式無法自(zì)己控制(zh"ì).往往無法滿足自(zì)己的(de)需求.現(xiàn)在我就(jiù)教大(dà)家(jiā)用(yòng)sql标簽來(lái)實現(xiàn)類似效果的(♦de)制(zhì)作(zuò)方法
正如(rú)标題所說(shuō)需要(yào)sql标簽嵌套調用(yòng),但(dàn)考慮到(dào)系統生(shēng)₩成速度方面原因,默認情況下(xià)科(kē)汛的(de)sql标簽是(shì)不(bù)支持嵌套調用(yòng)的(de),那(nà)我們就(jiù)對(du©ì)科(kē)汛的(de)代碼進行(xíng)小(xiǎo)手術(shù).請(qǐng)跟我來(lái)吧(baφ)
第一(yī)步:對(duì)代碼進行(xíng)小(xiǎo)手術(shù)
用(yòng)dw等編輯工(gōng)具打開(kāi)KS_Cls/Kesion.Label.Co∑mmonCls.asp文(wén)件(jiàn),并找到(dào)約112左右的(de)如(rú)下(xià)代碼
Dim DCls:Set Dcls=New DIYCls
Content=DCls.ReplaceUserFunctionLabel(Content) Ω;
Set DCls=nothing
ReplaceAllLabel =Content
ReplaceAllLabel=DCls.ReplaceUserFunctionLabel(Content)
我們改成以下(xià)代碼
Dim DCls:Set Dcls=New DIYCls
Content=DCls.ReplaceUserFunctionLabel(Content)
相(xiàng)信有(yǒu)點asp代碼基礎的(de)用(yòng)戶都(dōu)可(kě)以看(kàn)得(de)明(míng)白(bái),就(jiù)是(sh₩ì)當模闆文(wén)件(jiàn)裡(lǐ)包括{SQL_開(kāi)頭時(shí),就(jiù)再一(yī)次執行(xíng)sql标簽替換操↔作(zuò).正如(rú)之前說(shuō)的(de),考慮到(dào)生(shēng)成速度方面原因.如(rú)果模闆裡(lǐ)不(bù)包含{SQL_就(jiù)不(bù)再替換了(le₹),所以這(zhè)裡(lǐ)的(de)If判斷對(duì)系統的(de)性能(néng)有(yǒu)一(yī)定的(de)作(zuò)用(yòng).因為(wèi)我們并不(bù)₹要(yào)求所有(yǒu)标簽都(dōu)要(yào)嵌套的(de).
第二步:分(fēn)析實現(xiàn)
制(zhì)作(zuò)被嵌套的(de)文(wén)章(zhāng)列表(查詢KS_Article表):
sql标簽名稱:文(wén)章(zhāng)循環體(tǐ)
sql參數(shù): 欄目ID
sql語句:select top 10 id,title,adddate from ks_article where tid='{$Param(0)}' order↕ by id desc
sql循環體(tǐ):
[loop=10]
制(zhì)作(zuò)欄目列表标簽(查詢KS_Class欄目表)
sql标簽名稱:循環欄目列表
sql語句:select top 10 id,FolderName from ks_class where πtn='{$CurrClassID}' order by folderOrder
sql循環體(tǐ):
[loop=10]
[/loop]
| {$Field(foldername,Text,0,...,0,)} |
|
{SQL_文(wén)章(zhāng)循環體(tǐ)({$Field(id,GetInfoUrl,100,2)})} |
tips:上(shàng)面紅(hóng)色就(jiù)是(shì)插入上(shàng)面制(zhì)作(zuò)的(de∑)文(wén)章(zhāng)列表标簽,參數(shù){$Field(id,GetInfoUrl,100,2)}表示生(shēng)成欄目ID号
第三步:模闆調用(yòng)
{SQL_循環欄目列表()}

掃碼立即溝通(tōng)
公衆号加關注