欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

文章列表类别

程序员文章站 2022-07-01 23:53:05
<% dim html set html = new newasppublic_cls class new...
<%
dim html
set html = new newasppublic_cls
class newasppublic_cls

    private sub class_initialize()
        on error resume next
        newasp.loadtemplates 0, 0, 0
    end sub
    '================================================
    '函数名:loadarticlelist
    '作  用:装载文章列表
    '参  数:classid   ----分类id
    '        channelid   ----频道id
    '        specialid  ----专题id
    '        stype   ----调用文章类型,0=所有最新文章,1=推荐文章,2=热门文章,3=图文文章,4=分类最新文章
    '        topnum   ----显示文章列表数
    '        strlen   ----显示标题长度
    '        showclass   ----是否显示分类
    '        showpic   ----是否显示图文标题
    '        showdate   ----是否显示日期
    '        datemode   ----显示日期模式
    '        newindow   ----新窗口打开
    '================================================
    public function loadarticlelist(byval channelid, byval classid, byval specialid, _
        byval stype, byval topnum, byval strlen, _
        byval showclass, byval showpic, byval showdate, _
        byval datemode, byval newindow, byval styles)

        dim rs, sql, i, strcontent, foundstr
        dim stitle, stopic, childstr, liststyle, bestcode, beststring
        dim articletopic, classname, htmlfileurl, writetime, linktarget, htmlfilename

        channelid = newasp.chknumeric(channelid)
        classid = newasp.chknumeric(classid)
        specialid = newasp.chknumeric(specialid)
        stype = newasp.chknumeric(stype)

        on error resume next
        newasp.loadchannel(channelid)

        if cint(stype) >= 4 and clng(classid) <> 0 then
            sql = "select childstr from [nc_classify] where channelid=" & channelid & " and classid=" & classid
            set rs = newasp.execute(sql)
            if rs.bof and rs.eof then
                set rs = nothing
                loadarticlelist = ""
                exit function
            else
                childstr = rs("childstr")
            end if
            set rs = nothing
        else
            childstr = "0"
        end if

        select case cint(stype)
            case 0: foundstr = "order by a.writetime desc ,a.articleid desc"
            case 1: foundstr = "and a.isbest > 0 order by a.writetime desc ,a.articleid desc"
            case 2: foundstr = "order by a.allhits desc ,a.articleid desc"
            case 3: foundstr = "and (a.brieftopic = 1 or a.brieftopic = 2) order by a.writetime desc ,a.articleid desc"
            case 4: foundstr = "and a.classid in (" & childstr & ") order by a.writetime desc ,a.articleid desc"
            case 5: foundstr = "and a.classid in (" & childstr & ") and a.isbest > 0 order by a.writetime desc ,a.articleid desc"
            case 6: foundstr = "and a.classid in (" & childstr & ") order by a.allhits desc ,a.articleid desc"
            case 7: foundstr = "and a.classid in (" & childstr & ") and (a.brieftopic = 1 or a.brieftopic = 2) order by a.writetime desc ,a.articleid desc"
        case else
            foundstr = "order by a.writetime desc ,a.articleid desc"
        end select
        if cint(stype) >= 4 and clng(classid) = 0 then
            foundstr = "order by a.writetime desc ,a.articleid desc"
        end if
        if clng(specialid) <> 0 then
            foundstr = "and a.specialid =" & clng(specialid) & " " & foundstr
        end if
        sql = " a.articleid,a.classid,a.colormode,a.fontmode,a.title,a.brieftopic,a.allhits,a.writetime,a.htmlfiledate,a.isbest,"
        sql = "select top " & cint(topnum) & sql & " c.classname,c.colormodes,c.fontmodes,c.htmlfiledir,c.usehtml from [nc_article] a inner join [nc_classify] c on a.classid=c.classid where a.isaccept>0 and a.channelid=" & channelid & " " & foundstr & ""
        set rs = newasp.execute(sql)
        i = 0
        if rs.bof and rs.eof then
            strcontent = "该分类还没有添加任何内容!"
        else
            strcontent = "<table width=""100%"" border=0 cellpadding=2 cellspacing=0>"
            do while not rs.eof
                if (i mod 2) = 0 then
                    liststyle = trim(styles) & 1
                else
                    liststyle = trim(styles) & 2
                end if
                if rs("isbest") <> 0 then
                    bestcode = 2
                    beststring = "<font color='" & newasp.mainsetting(3) & "'>推荐</font>"
                else
                    bestcode = 1
                    beststring = ""
                end if

                strcontent = strcontent & newasp.mainsetting(13)

                stitle = newasp.gottopic(rs("title"), cint(strlen))
                stitle = newasp.readfontmode(stitle, rs("colormode"), rs("fontmode"))
                stopic = newasp.readpictopic(rs("brieftopic"))

                classname = newasp.readfontmode(rs("classname"), rs("colormodes"), rs("fontmodes"))
                htmlfilename = newasp.readfilename(rs("htmlfiledate"), rs("articleid"), newasp.channelhtmlext, newasp.channelprefix, newasp.channelhtmlform, "")
                if cint(newasp.channelusehtml) <> 0 then
                    htmlfileurl = newasp.channelpath & rs("htmlfiledir") & newasp.showdatepath(rs("htmlfiledate"), newasp.channelhtmlpath) & htmlfilename
                    classname = "<a href='" & newasp.channelpath & rs("htmlfiledir") & "index" & newasp.channelhtmlext & "'>" & classname & "</a>"
                else
                    htmlfileurl = newasp.channelpath & "show.asp?id=" & rs("articleid")
                    classname = "<a href='" & newasp.channelpath & "list.asp?classid=" & rs("classid") & "'>" & classname & "</a>"
                end if

                if cint(showclass) = 0 then classname = ""
                if cint(showpic) = 0 then stopic = ""
                if cint(showdate) <> 0 then
                    writetime = newasp.showdatetime(rs("writetime"), cint(datemode))
                else
                    writetime = ""
                end if
                if cint(newindow) <> 0 then
                    linktarget = " target=""_blank"""
                else
                    linktarget = ""
                end if
                articletopic = "<a href='" & htmlfileurl & "'" & linktarget & " title='" & newasp.channelmodule & "标题:" & rs("title") & " 发布时间:" & rs("writetime") & " 阅览次数:" & rs("allhits") & "' class=showlist>" & stitle & "</a>"
                strcontent = replace(strcontent, "{$articletopic}", articletopic)
                strcontent = replace(strcontent, "{$articleid}", rs("articleid"))
                strcontent = replace(strcontent, "{$installdir}", newasp.installdir)
                strcontent = replace(strcontent, "{$articletitle}", stitle)
                strcontent = replace(strcontent, "{$title}", rs("title"))
                strcontent = replace(strcontent, "{$dateandtitle}", rs("writetime"))
                strcontent = replace(strcontent, "{$brieftopic}", stopic)
                strcontent = replace(strcontent, "{$htmlfileurl}", htmlfileurl)
                strcontent = replace(strcontent, "{$classname}", classname)
                strcontent = replace(strcontent, "[]", "")
                strcontent = replace(strcontent, "{$target}", linktarget)
                strcontent = replace(strcontent, "{$writetime}", writetime)
                strcontent = replace(strcontent, "{$aticlehits}", rs("allhits"))
                strcontent = replace(strcontent, "{$liststyle}", liststyle)
                strcontent = replace(strcontent, "{$bestcode}", bestcode)
                strcontent = replace(strcontent, "{$beststring}", beststring)
            rs.movenext
            i = i + 1
            loop
            strcontent = strcontent & "</table>"
        end if

        rs.close: set rs = nothing
        loadarticlelist = strcontent
    end function
    '================================================
    '函数名:readarticlelist
    '作  用:读取文章列表
    '参  数:str ----原字符串
    '================================================
    public function readarticlelist(byval str)
        dim strtemp, i
        dim stempcontent, ntempcontent
        dim arrtempcontent, arrtempcontents, arraylist
        on error resume next
        strtemp = str
        if instr(strtemp, "{$readarticlelist(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$readarticlelist(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$readarticlelist(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")

            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), loadarticlelist(arraylist(0), arraylist(1), arraylist(2), arraylist(3), arraylist(4), arraylist(5), arraylist(6), arraylist(7), arraylist(8), arraylist(9), arraylist(10), arraylist(11)))
            next
        end if
        readarticlelist = strtemp
    end function
    '================================================
    '函数名:loadsoftlist
    '作  用:装载软件列表
    '参  数:classid   ----分类id
    '        channelid   ----频道id
    '        stype   ----调用类型
    '        topnum   ----显示列表数
    '        strlen   ----显示标题长度
    '        showclass   ----是否显示分类
    '        showdate   ----是否显示日期
    '        datemode   ----显示日期模式
    '        newindow   ----新窗口打开
    '================================================
    public function loadsoftlist(byval channelid, byval classid, byval specialid, _
        byval stype, byval topnum, byval strlen, byval showclass, _
        byval showdate, byval datemode, byval newindow, byval styles)

        dim rs, sql, i, strcontent, foundstr,j
        dim strsoftname, childstr, liststyle
        dim htmlfilename, bestcode, beststring,channelpath
        dim classname, htmlfileurl, softtime, linktarget, softtopic

        channelid = newasp.chknumeric(channelid)
        classid = newasp.chknumeric(classid)
        specialid = newasp.chknumeric(specialid)
        stype = newasp.chknumeric(stype)

        on error resume next
        newasp.loadchannel(channelid)

        if cint(stype) >= 3 and clng(classid) <> 0 then
            sql = "select childstr from [nc_classify] where channelid=" & channelid & " and classid = " & classid
            set rs = newasp.execute(sql)
            if rs.bof and rs.eof then
                set rs = nothing
                loadsoftlist = ""
                exit function
            else
                childstr = rs("childstr")
            end if
            rs.close
        else
            childstr = 0
        end if
        select case cint(stype)
            case 0: foundstr = "order by a.softtime desc ,a.softid desc"
            case 1: foundstr = "and a.isbest > 0 order by a.softtime desc ,a.softid desc"
            case 2: foundstr = "order by a.allhits desc ,a.softid desc"
            case 3: foundstr = "and a.classid in (" & childstr & ") order by a.softtime desc ,a.softid desc"
            case 4: foundstr = "and a.classid in (" & childstr & ") and a.isbest > 0 order by a.softtime desc ,a.softid desc"
            case 5: foundstr = "and a.classid in (" & childstr & ") order by a.allhits desc ,a.softid desc"
        case else
            foundstr = "order by a.softtime desc ,a.softid desc"
        end select
        if cint(stype) >= 3 and clng(classid) = 0 then
            foundstr = "order by a.softtime desc ,a.softid desc"
        end if
        if clng(specialid) <> 0 then
            foundstr = "and a.specialid =" & clng(specialid) & " " & foundstr
        end if
        sql = " a.softid,a.classid,a.colormode,a.fontmode,a.softname,a.softver,a.allhits,a.softtime,a.htmlfiledate,a.isbest,"
        sql = "select top " & cint(topnum) & sql & " c.classname,c.colormodes,c.fontmodes,c.htmlfiledir,c.usehtml from [nc_softlist] a inner join [nc_classify] c on a.classid=c.classid where a.isaccept>0 and a.channelid=" & channelid & " " & foundstr & ""
        set rs = newasp.execute(sql)
        j = 0

        if rs.bof and rs.eof then
            strcontent = "没有添加任何软件!"
        else
            sql=rs.getrows(-1)
            strcontent = "<table width=""100%"" border=0 cellpadding=2 cellspacing=0>"
            for i=0 to ubound(sql,2)
                if (j mod 2) = 0 then
                    liststyle = trim(styles) & 1
                else
                    liststyle = trim(styles) & 2
                end if
                if cint(sql(9,i)) <> 0 then
                    bestcode = 2
                    beststring = "<font color='" & newasp.mainsetting(3) & "'>推荐</font>"
                else
                    bestcode = 1
                    beststring = ""
                end if
                strcontent = strcontent & newasp.mainsetting(14)
                strsoftname = newasp.gottopic(sql(4,i) & " " & sql(5,i), cint(strlen))
                strsoftname = newasp.readfontmode(strsoftname, sql(2,i), sql(3,i))
                classname = newasp.readfontmode(sql(10,i), sql(11,i), sql(12,i))
                htmlfilename = newasp.readfilename(sql(8,i), sql(0,i), newasp.channelhtmlext, newasp.channelprefix, newasp.channelhtmlform, "")
                if cint(newasp.channelusehtml) <> 0 then
                    htmlfileurl = newasp.channelpath & sql(13,i) & newasp.showdatepath(sql(8,i), newasp.channelhtmlpath) & htmlfilename
                    classname = "<a href='" & newasp.channelpath & sql(13,i) & "index" & newasp.channelhtmlext & "'>" & classname & "</a>"
                else
                    htmlfileurl = newasp.channelpath & "show.asp?id=" & sql(0,i)
                    classname = "<a href='" & newasp.channelpath & "list.asp?classid=" & sql(1,i) & "'>" & classname & "</a>"
                end if
                if cint(showclass) = 0 then classname = ""
                if cint(showdate) <> 0 then
                    softtime = newasp.showdatetime(sql(7,i), cint(datemode))
                else
                    softtime = ""
                end if
                if cint(newindow) <> 0 then
                    linktarget = " target=""_blank"""
                else
                    linktarget = ""
                end if
                softtopic = "<a href='" & htmlfileurl & "'" & linktarget & " title='" & newasp.channelmodule & "名称:" & trim(sql(4,i) & " " & sql(5,i)) & " 发布时间:" & sql(7,i) & " 下载次数:" & sql(6,i) & "' class=showlist>" & strsoftname & "</a>"
                strcontent = replace(strcontent, "{$softtopic}", softtopic)
                strcontent = replace(strcontent, "{$softid}", rs("softid"))
                strcontent = replace(strcontent, "{$installdir}", newasp.installdir)
                strcontent = replace(strcontent, "{$softname}", strsoftname)
                strcontent = replace(strcontent, "{$title}", sql(4,i))
                strcontent = replace(strcontent, "{$dateandtitle}", sql(7,i))
                strcontent = replace(strcontent, "{$htmlfileurl}", htmlfileurl)
                strcontent = replace(strcontent, "{$classname}", classname)
                strcontent = replace(strcontent, "[]", "")
                strcontent = replace(strcontent, "{$target}", linktarget)
                strcontent = replace(strcontent, "{$softtime}", softtime)
                strcontent = replace(strcontent, "{$softhits}", sql(6,i))
                strcontent = replace(strcontent, "{$liststyle}", liststyle)
                strcontent = replace(strcontent, "{$bestcode}", bestcode)
                strcontent = replace(strcontent, "{$beststring}", beststring)
            j = j + 1
            next
            sql=null
            strcontent = strcontent & "</table>"
        end if
        rs.close: set rs = nothing
        loadsoftlist = strcontent
    end function
    '================================================
    '函数名:readsoftlist
    '作  用:读取软件列表
    '参  数:str ----原字符串
    '================================================
    public function readsoftlist(byval str)
        dim strtemp, i
        dim stempcontent, ntempcontent
        dim arrtempcontent, arrtempcontents, arraylist
        on error resume next
        strtemp = str
        if instr(strtemp, "{$readsoftlist(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$readsoftlist(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$readsoftlist(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), loadsoftlist(arraylist(0), arraylist(1), arraylist(2), arraylist(3), arraylist(4), arraylist(5), arraylist(6), arraylist(7), arraylist(8), arraylist(9), arraylist(10)))
            next
        end if
        readsoftlist = strtemp
    end function

    '================================================
    '函数名:loadflashlist
    '作  用:装载动画列表
    '参  数:classid   ----分类id
    '        channelid   ----频道id
    '        stype   ----调用类型
    '        topnum   ----显示列表数
    '        strlen   ----显示标题长度
    '        showclass   ----是否显示分类
    '        showdate   ----是否显示日期
    '        datemode   ----显示日期模式
    '        newindow   ----新窗口打开
    '================================================
    public function loadflashlist(byval channelid, byval classid, byval specialid, _
        byval stype, byval topnum, byval strlen, byval showclass, _
        byval showdate, byval datemode, byval newindow, byval styles)

        dim rs, sql, i, strcontent, foundstr,j
        dim strtitle, childstr, liststyle
        dim htmlfilename, bestcode, beststring,channelpath
        dim classname, htmlfileurl, addtime, linktarget, flashtopic

        channelid = newasp.chknumeric(channelid)
        classid = newasp.chknumeric(classid)
        specialid = newasp.chknumeric(specialid)
        stype = newasp.chknumeric(stype)

        on error resume next
        newasp.loadchannel(channelid)

        if cint(stype) >= 3 and clng(classid) <> 0 then
            sql = "select childstr from [nc_classify] where channelid=" & channelid & " and classid = " & classid
            set rs = newasp.execute(sql)
            if rs.bof and rs.eof then
                set rs = nothing
                loadflashlist = ""
                exit function
            else
                childstr = rs("childstr")
            end if
            rs.close
        else
            childstr = 0
        end if
        select case cint(stype)
            case 0: foundstr = "order by a.addtime desc ,a.flashid desc"
            case 1: foundstr = "and a.isbest > 0 order by a.addtime desc ,a.flashid desc"
            case 2: foundstr = "order by a.allhits desc ,a.flashid desc"
            case 3: foundstr = "and a.classid in (" & childstr & ") order by a.addtime desc ,a.flashid desc"
            case 4: foundstr = "and a.classid in (" & childstr & ") and a.isbest > 0 order by a.addtime desc ,a.flashid desc"
            case 5: foundstr = "and a.classid in (" & childstr & ") order by a.allhits desc ,a.flashid desc"
        case else
            foundstr = "order by a.addtime desc ,a.flashid desc"
        end select
        if cint(stype) >= 3 and clng(classid) = 0 then
            foundstr = "order by a.addtime desc ,a.flashid desc"
        end if
        if clng(specialid) <> 0 then
            foundstr = "and a.specialid =" & clng(specialid) & " " & foundstr
        end if
        sql = " a.flashid,a.classid,a.colormode,a.fontmode,a.title,a.author,a.allhits,a.addtime,a.htmlfiledate,a.isbest,"
        sql = "select top " & cint(topnum) & sql & " c.classname,c.colormodes,c.fontmodes,c.htmlfiledir,c.usehtml from [nc_flashlist] a inner join [nc_classify] c on a.classid=c.classid where a.isaccept>0 and a.channelid=" & channelid & " " & foundstr & ""
        set rs = newasp.execute(sql)
        j = 0

        if rs.bof and rs.eof then
            strcontent = "没有添加任何信息!"
        else
            sql=rs.getrows(-1)
            strcontent = "<table width=""100%"" border=0 cellpadding=2 cellspacing=0>"
            for i=0 to ubound(sql,2)
                if (j mod 2) = 0 then
                    liststyle = trim(styles) & 1
                else
                    liststyle = trim(styles) & 2
                end if
                if cint(sql(9,i)) <> 0 then
                    bestcode = 2
                    beststring = "<font color='" & newasp.mainsetting(3) & "'>推荐</font>"
                else
                    bestcode = 1
                    beststring = ""
                end if
                strcontent = strcontent & newasp.mainsetting(22)
                strtitle = newasp.gottopic(sql(4,i), cint(strlen))
                strtitle = newasp.readfontmode(strtitle, sql(2,i), sql(3,i))
                classname = newasp.readfontmode(sql(10,i), sql(11,i), sql(12,i))
                htmlfilename = newasp.readfilename(sql(8,i), sql(0,i), newasp.channelhtmlext, newasp.channelprefix, newasp.channelhtmlform, "")
                if cint(newasp.channelusehtml) <> 0 then
                    htmlfileurl = newasp.channelpath & sql(13,i) & newasp.showdatepath(sql(8,i), newasp.channelhtmlpath) & htmlfilename
                    classname = "<a href='" & newasp.channelpath & sql(13,i) & "index" & newasp.channelhtmlext & "'>" & classname & "</a>"
                else
                    htmlfileurl = newasp.channelpath & "show.asp?id=" & sql(0,i)
                    classname = "<a href='" & newasp.channelpath & "list.asp?classid=" & sql(1,i) & "'>" & classname & "</a>"
                end if
                if cint(showclass) = 0 then classname = ""
                if cint(showdate) <> 0 then
                    addtime = newasp.showdatetime(sql(7,i), cint(datemode))
                else
                    addtime = ""
                end if
                if cint(newindow) <> 0 then
                    linktarget = " target=""_blank"""
                else
                    linktarget = ""
                end if
                flashtopic = "<a href='" & htmlfileurl & "'" & linktarget & " title='" & newasp.channelmodule & "名称:" & sql(4,i) & " 发布时间:" & sql(7,i) & " 下载次数:" & sql(6,i) & "' class=showlist>" & strtitle & "</a>"
                strcontent = replace(strcontent, "{$flashtopic}", flashtopic)
                strcontent = replace(strcontent, "{$flashid}", rs("flashid"))
                strcontent = replace(strcontent, "{$installdir}", newasp.installdir)
                strcontent = replace(strcontent, "{$flashtopic}", strtitle)
                strcontent = replace(strcontent, "{$title}", sql(4,i))
                strcontent = replace(strcontent, "{$dateandtime}", sql(7,i))
                strcontent = replace(strcontent, "{$htmlfileurl}", htmlfileurl)
                strcontent = replace(strcontent, "{$classname}", classname)
                strcontent = replace(strcontent, "[]", "")
                strcontent = replace(strcontent, "{$target}", linktarget)
                strcontent = replace(strcontent, "{$addtime}", addtime)
                strcontent = replace(strcontent, "{$flashhits}", sql(6,i))
                strcontent = replace(strcontent, "{$liststyle}", liststyle)
                strcontent = replace(strcontent, "{$bestcode}", bestcode)
                strcontent = replace(strcontent, "{$beststring}", beststring)
            j = j + 1
            next
            sql=null
            strcontent = strcontent & "</table>"
        end if
        rs.close: set rs = nothing
        loadflashlist = strcontent
    end function
    '================================================
    '函数名:readflashlist
    '作  用:读取动画列表
    '参  数:str ----原字符串
    '================================================
    public function readflashlist(byval str)
        dim strtemp, i
        dim stempcontent, ntempcontent
        dim arrtempcontent, arrtempcontents, arraylist
        on error resume next
        strtemp = str
        if instr(strtemp, "{$readflashlist(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$readflashlist(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$readflashlist(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), loadflashlist(arraylist(0), arraylist(1), arraylist(2), arraylist(3), arraylist(4), arraylist(5), arraylist(6), arraylist(7), arraylist(8), arraylist(9), arraylist(10)))
            next
        end if
        readflashlist = strtemp
    end function
    '================================================
    '函数名:loadannouncecontent
    '作  用:装载内容公告
    '参  数:str ----原字符串
    '================================================
    public function loadannouncecontent(byval stopic, byval channelid)
        dim sql, rs, strtemp
        strtemp = ""
        stopic = newasp.checkstr(stopic)
        if stopic <> "" and stopic <> "0" then
            sql = "select announceid,content,posttime,writer from nc_announce where announcetype=1 and title = '" & stopic & "' order by posttime desc,announceid desc"
        else
            sql = "select announceid,content from nc_announce where announcetype=1 and channelid in (" & channelid & ",999) order by posttime desc,announceid desc"
        end if
        set rs = newasp.execute(sql)
        if not (rs.bof and rs.eof) then
            strtemp = rs("content")
        end if
        rs.close: set rs = nothing
        loadannouncecontent = strtemp
    end function
    '================================================
    '函数名:readannouncecontent
    '作  用:读取内容公告
    '参  数:str ----原字符串
    '================================================
    public function readannouncecontent(byval str, byval channelid)
        dim strtemp, i, stempcontent, ntempcontent, strvalue
        dim arrtempcontent, arrtempcontents
        on error resume next
        strtemp = str
        if instr(strtemp, "{$announcecontent(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$announcecontent(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$announcecontent(", ")}", 0)
            if ntempcontent = "" then ntempcontent = "0"
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                strvalue = arrtempcontent(i)
                strtemp = replace(strtemp, arrtempcontents(i), loadannouncecontent(strvalue, channelid))
            next
        end if
        readannouncecontent = strtemp
    end function
    '================================================
    '函数名:loadannouncelist
    '作  用:装载公告列表
    '参  数:maxnum ----最多公告数
    '        maxlen ----字符长度
    '        newindow ----是否新窗口打开 1=是,0=否
    '        showdate ----是否显示时间 1=是,0=否
    '        datemode ----时间模式
    '        showtree ----树型显示
    '================================================
    public function loadannouncelist(byval channelid, byval maxnum, byval maxlen, _
        byval newindow, byval showdate, byval datemode, byval showtree)

        dim rs, sql, strcontent
        dim announcetopic, linktarget
        dim posttime

        channelid = newasp.chknumeric(channelid)
        maxnum = newasp.chknumeric(maxnum)
        if maxnum = 0 then maxnum = 10

        on error resume next
        set rs = newasp.execute("select top " & cint(maxnum) & " announceid,title,content,posttime,writer,hits from nc_announce where (channelid=" & channelid & " or channelid=999) and announcetype<>1 order by posttime desc,announceid desc")
        if rs.bof and rs.eof then
            loadannouncelist = ""
            set rs = nothing
            exit function
        else
            do while not rs.eof
                if cint(newindow) <> 0 then
                    linktarget = " target=""_blank"""
                else
                    linktarget = ""
                end if
                if cint(showdate) <> 0 then
                    posttime = newasp.showdatetime(rs("posttime"), cint(datemode))
                else
                    posttime = ""
                end if
                announcetopic = newasp.gottopic(rs("title"), cint(maxlen))
                announcetopic = "<a href=""" & newasp.installdir & "announce.asp?announceid=" & rs("announceid") & """ title=""" & rs("title") & """" & linktarget & ">" & announcetopic & "</a>"
                if cint(showtree) = 1 then
                    strcontent = strcontent & "<div>· " & announcetopic & "</div><div align=""right"" class=""dottedline"">" & posttime & "</div>" & vbnewline
                else
                    strcontent = strcontent & "· " & announcetopic & "  " & posttime & vbnewline
                end if
                rs.movenext
            loop
        end if
        loadannouncelist = strcontent
    end function
    '================================================
    '函数名:readannouncelist
    '作  用:读取公告列表
    '参  数:str ----原字符串
    '================================================
    public function readannouncelist(byval str)
        dim strtemp, i
        dim stempcontent, ntempcontent, arraylist
        dim arrtempcontent, arrtempcontents
        on error resume next
        strtemp = str
        if instr(strtemp, "{$readannouncelist(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$readannouncelist(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$readannouncelist(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), loadannouncelist(arraylist(0), arraylist(1), arraylist(2), arraylist(3), arraylist(4), arraylist(5), arraylist(6)))
            next
        end if
        readannouncelist = strtemp
    end function
    '================================================
    '函数名:loadarticlepic
    '作  用:装载文章图片列表
    '参  数:classid   ----分类id
    '        channelid   ----频道id
    '        stype   ----调用文章类型,0=所有最新文章,1=推荐文章,2=热门文章,3=图文文章,4=分类最新文章
    '        topnum   ----显示文章列表数
    '        strlen   ----显示标题长度
    '        showclass   ----是否显示分类
    '        showpic   ----是否显示图文标题
    '        showdate   ----是否显示日期
    '        datemode   ----显示日期模式
    '        newindow   ----新窗口打开
    '================================================
    public function loadarticlepic(channelid, classid, specialid, stype, topnum, perrownum, strlen, newindow, width, height, showtopic)
        dim rs, sql, i, strcontent, foundstr
        dim stitle, childstr, imageurl, htmlfilename
        dim htmlfileurl, writetime, linktarget

        channelid = newasp.chknumeric(channelid)
        classid = newasp.chknumeric(classid)
        specialid = newasp.chknumeric(specialid)
        stype = newasp.chknumeric(stype)

        on error resume next
        newasp.loadchannel(channelid)

        if cint(stype) >= 3 and clng(classid) <> 0 then
            sql = "select childstr from [nc_classify] where channelid=" & channelid & " and classid=" & classid
            set rs = newasp.execute(sql)
            if rs.bof and rs.eof then
                set rs = nothing
                loadarticlepic = ""
                exit function
            else
                childstr = rs("childstr")
            end if
            set rs = nothing
        else
            childstr = 0
        end if
        select case cint(stype)
            case 0: foundstr = "order by a.writetime desc ,a.articleid desc"
            case 1: foundstr = "and a.isbest > 0 order by a.writetime desc ,a.articleid desc"
            case 2: foundstr = "order by a.allhits desc ,a.articleid desc"
            case 3: foundstr = "and a.classid in (" & childstr & ") order by a.writetime desc ,a.articleid desc"
            case 4: foundstr = "and a.classid in (" & childstr & ") and a.isbest > 0 order by a.writetime desc ,a.articleid desc"
            case 5: foundstr = "and a.classid in (" & childstr & ") order by a.allhits desc ,a.articleid desc"
        case else
            foundstr = "order by a.writetime desc ,a.articleid desc"
        end select
        if cint(stype) >= 4 and clng(classid) = 0 then
            foundstr = "order by a.writetime desc ,a.articleid desc"
        end if
        if clng(specialid) <> 0 then
            foundstr = "and a.specialid =" & clng(specialid) & " " & foundstr
        end if
        sql = " a.articleid,a.classid,a.title,a.allhits,a.writetime,a.htmlfiledate,a.isbest,a.imageurl,"
        sql = "select top " & cint(topnum) & sql & " c.classname,c.htmlfiledir,c.usehtml from [nc_article] a inner join [nc_classify] c on a.classid=c.classid where a.isaccept > 0 and a.imageurl<>'' and a.channelid=" & channelid & " " & foundstr & ""
        set rs = newasp.execute(sql)
        if rs.bof and rs.eof then
            strcontent = "<img src='" & newasp.installdir & "images/no_pic.gif' width=" & width & " height=" & height & " border=0>"
        else
            strcontent = "<table width=""100%"" border=0 cellpadding=1 cellspacing=5>" & vbcrlf
            do while not rs.eof

                strcontent = strcontent & "<tr>" & vbcrlf
                for i = 1 to cint(perrownum)
                    strcontent = strcontent & "<td align=""center"" class=""imagelist"">"
                    if not rs.eof then
                        stitle = newasp.gottopic(rs("title"), cint(strlen))
                        imageurl = newasp.getimageurl(rs("imageurl"), newasp.channeldata(1))
                        imageurl = newasp.getflashandpic(imageurl, height, width)

                        htmlfilename = newasp.readfilename(rs("htmlfiledate"), rs("articleid"), newasp.channelhtmlext, newasp.channelprefix, newasp.channelhtmlform, "")
                        if cint(newasp.channelusehtml) <> 0 then
                            htmlfileurl = newasp.channelpath & rs("htmlfiledir") & newasp.showdatepath(rs("htmlfiledate"), newasp.channelhtmlpath) & htmlfilename
                        else
                            htmlfileurl = newasp.channelpath & "show.asp?id=" & rs("articleid")
                        end if

                        if cint(newindow) <> 0 then
                            linktarget = " target=""_blank"""
                        else
                            linktarget = ""
                        end if
                        strcontent = strcontent & newasp.mainsetting(18)
                        strcontent = replace(strcontent, "{$articlepicture}", "<a href='" & htmlfileurl & "' title='" & rs("title") & "'" & linktarget & ">" & imageurl & "</a>")
                        if cint(showtopic) = 1 then
                            strcontent = replace(strcontent, "{$articletopic}", "<a href='" & htmlfileurl & "' title='" & rs("title") & "'" & linktarget & ">" & stitle & "</a>")
                        else
                            strcontent = replace(strcontent, "{$articletopic}", vbnullstring)
                        end if
                        strcontent = strcontent & "</td>" & vbcrlf
                    rs.movenext
                end if
            next
            strcontent = strcontent & "</tr>" & vbcrlf
            loop
            strcontent = strcontent & "</table>" & vbcrlf
        end if
        rs.close: set rs = nothing
        loadarticlepic = strcontent
    end function
    '================================================
    '函数名:readarticlepic
    '作  用:读取文章图片列表
    '参  数:str ----原字符串
    '================================================
    public function readarticlepic(byval str)
        dim strtemp, i
        dim stempcontent, ntempcontent, arraylist
        dim arrtempcontent, arrtempcontents
        on error resume next
        strtemp = str
        if instr(strtemp, "{$readarticlepic(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$readarticlepic(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$readarticlepic(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), loadarticlepic(arraylist(0), arraylist(1), arraylist(2), arraylist(3), arraylist(4), arraylist(5), arraylist(6), arraylist(7), arraylist(8), arraylist(9), arraylist(10)))
            next
        end if
        readarticlepic = strtemp
    end function
    '================================================
    '函数名:loadsoftpic
    '作  用:装载软件图片列表
    '参  数:classid   ----分类id
    '        channelid   ----频道id
    '        stype   ----调用软件类型,0=所有最新软件,1=推荐软件,2=热门软件
    '        topnum   ----显示软件列表数
    '        strlen   ----显示标题长度
    '        newindow   ----新窗口打开
    '================================================
    public function loadsoftpic(channelid, classid, specialid, stype, topnum, perrownum, strlen, newindow, width, height, showtopic)
        dim rs, sql, i, strcontent, foundstr
        dim strsoftname, childstr, softimage, htmlfilename
        dim htmlfileurl, softtime, linktarget

        channelid = newasp.chknumeric(channelid)
        classid = newasp.chknumeric(classid)
        specialid = newasp.chknumeric(specialid)
        stype = newasp.chknumeric(stype)

        on error resume next
        newasp.loadchannel(channelid)

        if cint(stype) >= 3 and clng(classid) <> 0 then
            sql = "select childstr from [nc_classify] where channelid = " & channelid & " and classid = " & classid
            set rs = newasp.execute(sql)
            if rs.bof and rs.eof then
                set rs = nothing
                loadsoftpic = ""
                exit function
            else
                childstr = rs("childstr")
            end if
            rs.close
        else
            childstr = 0
        end if
        select case cint(stype)
            case 0: foundstr = "order by a.softtime desc ,a.softid desc"
            case 1: foundstr = "and a.isbest > 0 order by a.softtime desc ,a.softid desc"
            case 2: foundstr = "order by a.allhits desc ,a.softid desc"
            case 3: foundstr = "and a.classid in (" & childstr & ") order by a.softtime desc ,a.softid desc"
            case 4: foundstr = "and a.classid in (" & childstr & ") and a.isbest > 0 order by a.softtime desc ,a.softid desc"
            case 5: foundstr = "and a.classid in (" & childstr & ") order by a.allhits desc ,a.softid desc"
        case else
            foundstr = "order by a.softtime desc ,a.softid desc"
        end select
        if cint(stype) >= 3 and clng(classid) = 0 then
            foundstr = "order by a.softtime desc ,a.softid desc"
        end if
        if clng(specialid) <> 0 then
            foundstr = "and a.specialid =" & clng(specialid) & " " & foundstr
        end if
        sql = " a.softid,a.classid,a.softname,a.softver,a.allhits,a.softtime,a.htmlfiledate,a.isbest,a.softimage,"
        sql = "select top " & cint(topnum) & sql & " c.classname,c.htmlfiledir,c.usehtml from [nc_softlist] a inner join [nc_classify] c on a.classid=c.classid where a.isaccept>0 and a.softimage<>'' and a.channelid=" & channelid & " " & foundstr & ""
        set rs = newasp.execute(sql)
        if rs.bof and rs.eof then
            strcontent = "<img src='" & newasp.installdir & "images/no_pic.gif' width=" & width & " height=" & height & " border=0>"
        else
            strcontent = "<table width=""100%"" border=""0"" cellpadding=""1"" cellspacing=""3"">" & vbcrlf
            do while not rs.eof
                strcontent = strcontent & "<tr>" & vbcrlf
                for i = 1 to cint(perrownum)
                    strcontent = strcontent & "<td align=""center"" class=""imagelist"">"
                    if not rs.eof then
                        strsoftname = newasp.gottopic(rs("softname") & " " & rs("softver"), cint(strlen))
                        softimage = newasp.getimageurl(rs("softimage"), newasp.channeldata(1))
                        softimage = newasp.getflashandpic(softimage, height, width)
                        htmlfilename = newasp.readfilename(rs("htmlfiledate"), rs("softid"), newasp.channelhtmlext, newasp.channelprefix, newasp.channelhtmlform, "")
                        if cint(newasp.channelusehtml) <> 0 then
                            htmlfileurl = newasp.channelpath & rs("htmlfiledir") & newasp.showdatepath(rs("htmlfiledate"), newasp.channelhtmlpath) & htmlfilename
                        else
                            htmlfileurl = newasp.channelpath & "show.asp?id=" & rs("softid")
                        end if
                        if cint(newindow) <> 0 then
                            linktarget = " target=""_blank"""
                        else
                            linktarget = ""
                        end if
                        strcontent = strcontent & newasp.mainsetting(19)
                        strcontent = replace(strcontent, "{$softpicture}", "<a href='" & htmlfileurl & "' title='" & rs("softname") & "'" & linktarget & ">" & softimage & "</a>")
                        if cint(showtopic) = 1 then
                            strcontent = replace(strcontent, "{$softtopic}", "<a href='" & htmlfileurl & "' title='" & rs("softname") & "'" & linktarget & ">" & strsoftname & "</a>")
                        else
                            strcontent = replace(strcontent, "{$softtopic}", vbnullstring)
                        end if
                        strcontent = strcontent & "</td>" & vbcrlf
                    rs.movenext
                end if
            next
            strcontent = strcontent & "</tr>" & vbcrlf
            loop
            strcontent = strcontent & "</table>" & vbcrlf
        end if
        rs.close: set rs = nothing
        loadsoftpic = strcontent
    end function
    '================================================
    '函数名:readsoftpic
    '作  用:读取软件图片列表
    '参  数:str ----原字符串
    '================================================
    public function readsoftpic(byval str)
        dim strtemp, i
        dim stempcontent, ntempcontent, arraylist
        dim arrtempcontent, arrtempcontents
        on error resume next
        strtemp = str
        if instr(strtemp, "{$readsoftpic(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$readsoftpic(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$readsoftpic(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), loadsoftpic(arraylist(0), arraylist(1), arraylist(2), arraylist(3), arraylist(4), arraylist(5), arraylist(6), arraylist(7), arraylist(8), arraylist(9), arraylist(10)))
            next
        end if
        readsoftpic = strtemp
    end function
    '================================================
    '函数名:loadflashpic
    '作  用:装载动画图片列表
    '参  数:classid   ----分类id
    '        channelid   ----频道id
    '        stype   ----调用动画类型,0=所有最新动画,1=推荐动画,2=热门动画
    '        topnum   ----显示动画列表数
    '        strlen   ----显示标题长度
    '        newindow   ----新窗口打开
    '================================================
    public function loadflashpic(byval channelid, byval classid, byval specialid, _
        byval stype, byval topnum, byval perrownum, byval strlen, byval newindow, _
        byval width, byval height, byval showtopic)

        dim rs, sql, i, strcontent, foundstr
        dim strtitle, childstr, miniature, htmlfilename
        dim htmlfileurl, addtime, linktarget

        channelid = newasp.chknumeric(channelid)
        classid = newasp.chknumeric(classid)
        specialid = newasp.chknumeric(specialid)
        stype = newasp.chknumeric(stype)

        on error resume next
        newasp.loadchannel(channelid)

        if cint(stype) >= 3 and clng(classid) <> 0 then
            sql = "select childstr from [nc_classify] where channelid = " & channelid & " and classid = " & classid
            set rs = newasp.execute(sql)
            if rs.bof and rs.eof then
                set rs = nothing
                loadflashpic = ""
                exit function
            else
                childstr = rs("childstr")
            end if
            rs.close
        else
            childstr = 0
        end if

        select case cint(stype)
            case 0: foundstr = "order by a.addtime desc ,a.flashid desc"
            case 1: foundstr = "and a.isbest > 0 order by a.addtime desc ,a.flashid desc"
            case 2: foundstr = "order by a.allhits desc ,a.flashid desc"
            case 3: foundstr = "and a.classid in (" & childstr & ") order by a.addtime desc ,a.flashid desc"
            case 4: foundstr = "and a.classid in (" & childstr & ") and a.isbest > 0 order by a.addtime desc ,a.flashid desc"
            case 5: foundstr = "and a.classid in (" & childstr & ") order by a.allhits desc ,a.flashid desc"
        case else
            foundstr = "order by a.addtime desc ,a.flashid desc"
        end select
        if cint(stype) >= 3 and clng(classid) = 0 then
            foundstr = "order by a.addtime desc ,a.flashid desc"
        end if
        if clng(specialid) <> 0 then
            foundstr = "and a.specialid =" & clng(specialid) & " " & foundstr
        end if
        sql = " a.flashid,a.classid,a.title,a.allhits,a.addtime,a.htmlfiledate,a.isbest,a.miniature,"
        sql = "select top " & cint(topnum) & sql & " c.classname,c.htmlfiledir,c.usehtml from [nc_flashlist] a inner join [nc_classify] c on a.classid=c.classid where a.isaccept>0 and a.miniature<>'' and a.channelid=" & channelid & " " & foundstr & ""
        set rs = newasp.execute(sql)
        if rs.bof and rs.eof then
            strcontent = "<img src='" & newasp.installdir & "images/no_pic.gif' width=" & width & " height=" & height & " border=0>"
        else
            strcontent = "<table width=""100%"" border=""0"" cellpadding=""0"" cellspacing=""3"">" & vbcrlf
            do while not rs.eof
                strcontent = strcontent & "<tr>" & vbcrlf
                for i = 1 to cint(perrownum)
                    strcontent = strcontent & "<td align=""center"" class=""imagelist"">"
                    if not rs.eof then
                        strtitle = newasp.gottopic(rs("title"), cint(strlen))
                        miniature = newasp.getimageurl(rs("miniature"), newasp.channeldata(1))
                        miniature = newasp.getflashandpic(miniature, height, width)
                        htmlfilename = newasp.readfilename(rs("htmlfiledate"), rs("flashid"), newasp.channelhtmlext, newasp.channelprefix, newasp.channelhtmlform, "")
                        if cint(newasp.channelusehtml) <> 0 then
                            htmlfileurl = newasp.channelpath & rs("htmlfiledir") & newasp.showdatepath(rs("htmlfiledate"), newasp.channelhtmlpath) & htmlfilename
                        else
                            htmlfileurl = newasp.channelpath & "show.asp?id=" & rs("flashid")
                        end if
                        if cint(newindow) <> 0 then
                            linktarget = " target=""_blank"""
                        else
                            linktarget = ""
                        end if
                        strcontent = strcontent & newasp.mainsetting(21)
                        strcontent = replace(strcontent, "{$miniature}", "<a href='" & htmlfileurl & "' title='" & rs("title") & "'" & linktarget & ">" & miniature & "</a>")
                        if cint(showtopic) = 1 then
                            strcontent = replace(strcontent, "{$flashtopic}", "<a href='" & htmlfileurl & "' title='" & rs("title") & "'" & linktarget & ">" & strtitle & "</a>")
                        else
                            strcontent = replace(strcontent, "{$flashtopic}", vbnullstring)
                        end if
                        strcontent = strcontent & "</td>" & vbcrlf
                    rs.movenext
                    end if
                next
            strcontent = strcontent & "</tr>" & vbcrlf
            loop
            strcontent = strcontent & "</table>" & vbcrlf
        end if
        rs.close: set rs = nothing
        loadflashpic = strcontent
    end function
    '================================================
    '函数名:readflashpic
    '作  用:读取动画图片列表
    '参  数:str ----原字符串
    '================================================
    public function readflashpic(byval str)
        dim strtemp, i
        dim stempcontent, ntempcontent, arraylist
        dim arrtempcontent, arrtempcontents
        on error resume next
        strtemp = str
        if instr(strtemp, "{$readflashpic(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$readflashpic(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$readflashpic(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), loadflashpic(arraylist(0), arraylist(1), arraylist(2), arraylist(3), arraylist(4), arraylist(5), arraylist(6), arraylist(7), arraylist(8), arraylist(9), arraylist(10)))
            next
        end if
        readflashpic = strtemp
    end function
    '================================================
    '函数名:loadfriendlink
    '作  用:装载友情连接
    '参  数:str ----原字符串
    '================================================
    public function loadfriendlink(byval topnum, byval perrownum, byval islogo, byval orders)
        dim rs, sql, i, strcontent
        dim strorder, linkaddress

        strcontent = ""
        if not isnumeric(topnum) then exit function
        if not isnumeric(perrownum) then exit function
        if not isnumeric(islogo) then exit function
        if not isnumeric(orders) then exit function
        on error resume next
        if cint(orders) = 1 then
            '-- 首页显示按时间升序排列
            strorder = "and isindex > 0 order by linktime desc,linkid desc"
        elseif cint(orders) = 2 then
            '-- 首页显示按点击数升序排列
            strorder = "and isindex > 0 order by linkhist desc,linkid desc"
        elseif cint(orders) = 3 then
            '-- 首页显示按点击数降序排列
            strorder = "and isindex > 0 order by linkhist desc,linkid asc"
        elseif cint(orders) = 4 then
            '-- 所有按升序排列
            strorder = "order by linkid desc"
        elseif cint(orders) = 5 then
            '-- 所有按降序排列
            strorder = "order by linkid asc"
        elseif cint(orders) = 6 then
            '-- 所有按点击数升序排列
            strorder = "order by linkhist desc,linkid desc"
        elseif cint(orders) = 7 then
            '-- 所有按点击数降序排列
            strorder = "order by linkhist desc,linkid asc"
        elseif cint(orders) = 8 then
            '-- 首页显示按名称排列
            strorder = "and isindex > 0 order by linkname desc,linkid desc"
        elseif cint(orders) = 9 then
            '-- 所有按名称排列
            strorder = "order by linkname desc,linkid desc"
        else
            '-- 首页显示按时间降序排列
            strorder = "and isindex > 0 order by linktime asc,linkid asc"
        end if
        if cint(islogo) = 1 or cint(islogo) = 3 then
            sql = "select top " & cint(topnum) & " linkid,linkname,linkurl,logourl,readme,linkhist,islogo from [nc_link] where islock = 0 and islogo > 0 " & strorder & ""
        else
            sql = "select top " & cint(topnum) & " linkid,linkname,linkurl,logourl,readme,linkhist,islogo from [nc_link] where islock = 0 and islogo = 0 " & strorder & ""
        end if
        set rs = newasp.execute(sql)
        if not (rs.bof and rs.eof) then
            strcontent = "<table width=""100%"" border=0 cellpadding=1 cellspacing=3 class=friendlink1>" & vbcrlf
            do while not rs.eof
                strcontent = strcontent & "<tr>" & vbcrlf
                for i = 1 to cint(perrownum)
                    strcontent = strcontent & "<td align=center class=friendlink2>"
                    if not rs.eof then
                        if cint(islogo) < 2 then
                            linkaddress = newasp.installdir & "link/link.asp?id=" & rs("linkid") & "&url=" & trim(rs("linkurl"))
                        else
                            linkaddress = trim(rs("linkurl"))
                        end if
                        if rs("islogo") = 1 or cint(islogo) = 3 then
                            strcontent = strcontent & "<a href='" & linkaddress & "' target=_blank title='主页名称:" & rs("linkname") & " 点击次数:" & rs("linkhist") & "'><img src='" & newasp.readfileurl(rs("logourl")) & "' width=88 height=31 border=0></a>"
                        else
                            strcontent = strcontent & "<a href='" & linkaddress & "' target=_blank title='主页名称:" & rs("linkname") & " 点击次数:" & rs("linkhist") & "'>" & rs("linkname") & "</a>"
                        end if
                        strcontent = strcontent & "</td>" & vbcrlf
                        rs.movenext
                    else
                        if cint(islogo) = 1 or cint(islogo) = 3 then
                            strcontent = strcontent & "<a href='" & newasp.installdir & "link/addlink.asp' target=_blank><img src='" & newasp.installdir & "images/link.gif' width=88 height=31 border=0></a>"
                        else
                            strcontent = strcontent & "<a href='" & newasp.installdir & "link/' target=_blank>更多连接</a>"
                        end if
                        strcontent = strcontent & "</td>" & vbcrlf
                    end if
                next
                strcontent = strcontent & "</tr>" & vbcrlf
            loop
            strcontent = strcontent & "</table>" & vbcrlf
        end if
        loadfriendlink = strcontent
    end function
    '================================================
    '函数名:readfriendlink
    '作  用:读取友情连接
    '参  数:str ----原字符串
    '================================================
    public function readfriendlink(byval str)
        dim strtemp, i
        dim stempcontent, ntempcontent, arraylist
        dim arrtempcontent, arrtempcontents
        on error resume next
        strtemp = str
        if instr(strtemp, "{$readfriendlink(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$readfriendlink(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$readfriendlink(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), loadfriendlink(arraylist(0), arraylist(1), arraylist(2), arraylist(3)))
            next
        end if
        readfriendlink = strtemp
    end function
    '================================================
    '函数名:pageruntime
    '作  用:页面执行时间
    '================================================
    public function executiontime()
        dim endtime
        executiontime = ""
        if cint(newasp.isruntime) = 1 then
            endtime = timer()
            executiontime = "页面执行时间:" & formatnumber((((endtime - startime) * 5000) + 0.5) / 10, 3, -1) & "毫秒"
        else
            executiontime = ""
        end if
    end function

    '================================================
    '函数名:currentstation
    '作  用:当前位置
    '参  数:...
    '================================================
    public function currentstation(byval channelid, byval classid, byval classname, _
        byval parentid, byval strparent, byval htmlfiledir, byval compart)

        dim rscurrent, sql, strcontent, channeldir

        currentstation = ""
        channelid = newasp.chknumeric(channelid)
        classid = newasp.chknumeric(classid)
        parentid = newasp.chknumeric(parentid)

        on error resume next
        newasp.loadchannel(channelid)

        channeldir = newasp.channelpath

        strcontent = "<a href='" & channeldir & "'>" & newasp.channelname & "</a>" & compart & ""
        if parentid <> 0 and len(strparent) <> 0 then
            sql = "select classid,classname,htmlfiledir,usehtml from [nc_classify] where channelid = " & channelid & " and classid in(" & strparent & ")"
            set rscurrent = newasp.execute(sql)
            if not (rscurrent.eof and rscurrent.bof) then
                do while not rscurrent.eof

                    if cint(newasp.iscreatehtml) <> 0 then
                        strcontent = strcontent & "<a href='" & channeldir & rscurrent("htmlfiledir") & "'>" & rscurrent("classname") & "</a>" & compart & ""
                    else
                        strcontent = strcontent & "<a href='" & channeldir & "list.asp?classid=" & rscurrent("classid") & "'>" & rscurrent("classname") & "</a>" & compart & ""
                    end if
                    rscurrent.movenext
                loop
            end if
            rscurrent.close
            set rscurrent = nothing
        end if
        if cint(newasp.iscreatehtml) <> 0 then
            strcontent = strcontent & "<a href='" & channeldir & htmlfiledir & "'>" & classname & "</a>"
        else
            strcontent = strcontent & "<a href='" & channeldir & "list.asp?classid=" & classid & "'>" & classname & "</a>"
        end if
        currentstation = strcontent
    end function
    '================================================
    '函数名:readcurrentstation
    '作  用:读取当前位置
    '参  数:str ----原字符串
    '================================================
    public function readcurrentstation(byval str, byval channelid, byval classid, _
        byval classname, byval parentid, byval strparent, byval htmlfiledir)

        dim strtemp, i
        dim stempcontent, ntempcontent
        dim arrtempcontent, arrtempcontents
        on error resume next
        strtemp = str
        if instr(strtemp, "{$currentstation(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$currentstation(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$currentstation(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                strtemp = replace(strtemp, arrtempcontents(i), currentstation(channelid, classid, classname, parentid, strparent, htmlfiledir, arrtempcontent(i)))
            next
        end if
        readcurrentstation = strtemp
    end function
    '================================================
    '函数名:newspictureandtext
    '作  用:图文混排列表
    '================================================
    public function newspictureandtext(byval chanid, byval classid, byval specid, _
        byval stype, byval height, byval width, byval maxlen, _
        byval maxline, byval hspace, byval vspace, byval align, _
        byval divcss, byval target, byval start, byval showpic, _
        byval showclass, byval showdate, byval dateformat)

        dim rs, sql, i, strcontent, foundstr
        dim childstr, htmlfileurl, htmlfilename, strpicture
        dim pictopic, newstitle, classname, articletitle, writetime

        chanid = newasp.chknumeric(chanid)
        classid = newasp.chknumeric(classid)
        specid = newasp.chknumeric(specid)
        stype = newasp.chknumeric(stype)

        on error resume next
        newasp.loadchannel(chanid)

        if cint(stype) >= 3 and clng(classid) <> 0 then
            sql = "select childstr from [nc_classify] where channelid = " & chanid & " and classid = " & classid
            set rs = newasp.execute(sql)
            if rs.bof and rs.eof then
                set rs = nothing
                newspictureandtext = ""
                exit function
            else
                childstr = rs("childstr")
            end if
            rs.close
        else
            childstr = "0"
        end if
        select case cint(stype)
            case 0: foundstr = "order by a.writetime desc ,a.articleid desc"
            case 1: foundstr = "and a.isbest > 0 order by a.writetime desc ,a.articleid desc"
            case 2: foundstr = " order by a.allhits desc ,a.articleid desc"
            case 3: foundstr = "and a.classid in (" & childstr & ") order by a.writetime desc ,a.articleid desc"
            case 4: foundstr = "and a.classid in (" & childstr & ") and a.isbest > 0 order by a.writetime desc ,a.articleid desc"
            case 5: foundstr = "and a.classid in (" & childstr & ") and a.allhits > b.leasthothist order by a.allhits desc ,a.articleid desc"
            case 6: foundstr = "and a.classid in (" & childstr & ") order by a.writetime desc ,a.articleid desc"
        case else
            foundstr = "order by a.writetime desc ,a.articleid desc"
        end select
        if cint(stype) >= 3 and clng(classid) = 0 then
            foundstr = "order by a.writetime desc ,a.articleid desc"
        end if
        if clng(specid) <> 0 then
            foundstr = "and a.specialid =" & clng(specid) & " " & foundstr
        end if
        sql = " a.articleid,a.classid,a.colormode,a.fontmode,a.title,a.brieftopic,a.allhits,a.writetime,a.htmlfiledate,a.isbest,"
        sql = "select top " & cint(maxline) & sql & " c.classname,c.colormodes,c.fontmodes,c.htmlfiledir from [nc_article] a inner join [nc_classify] c on a.classid=c.classid where a.isaccept>0 and a.channelid=" & chanid & " " & foundstr & ""
        set rs = newasp.execute(sql)
        i = 0
        strcontent = ""
        if rs.bof and rs.eof then
            strcontent = "还没有添加任何内容!"
        else
            do while not rs.eof
                newstitle = newasp.readtopic(rs("title"), cint(maxlen))
                newstitle = newasp.readfontmode(newstitle, rs("colormode"), rs("fontmode"))
                pictopic = newasp.readpictopic(rs("brieftopic"))
                classname = newasp.readfontmode(rs("classname"), rs("colormodes"), rs("fontmodes"))
                htmlfilename = newasp.readfilename(rs("htmlfiledate"), rs("articleid"), newasp.channelhtmlext, newasp.channelprefix, newasp.channelhtmlform, "")
                if cint(newasp.channelusehtml) <> 0 then
                    htmlfileurl = newasp.channelpath & rs("htmlfiledir") & newasp.showdatepath(rs("htmlfiledate"), newasp.channelhtmlpath) & htmlfilename
                    classname = "[<a href='" & newasp.channelpath & rs("htmlfiledir") & "index" & newasp.channelhtmlext & "'>" & classname & "</a>]"
                else
                    htmlfileurl = newasp.channelpath & "show.asp?id=" & rs("articleid")
                    classname = "[<a href='" & newasp.channelpath & "list.asp?classid=" & rs("classid") & "'>" & classname & "</a>]"
                end if
                if cint(showclass) = 1 then
                    classname = classname
                else
                    classname = ""
                end if
                if cint(showdate) = 1 then
                    writetime = newasp.showdatetime(rs("writetime"), cint(dateformat))
                else
                    writetime = ""
                end if
                articletitle = "<div " & divcss & ">" & start & classname & " <a href=""" & htmlfileurl & """ target=""" & target & """ title=""" & newasp.channelmodule & "标题:" & rs("title") & " 发布时间:" & rs("writetime") & " 阅览次数:" & rs("allhits") & """ class=showlist>" & newstitle & "</a>  " & writetime & "</div>"
                strcontent = strcontent & articletitle
                rs.movenext
                i = i + 1
            loop
        end if
        rs.close: set rs = nothing
        dim sextname, extname, imageurl
        if cint(showpic) = 1 then
            sql = " a.articleid,a.classid,a.title,a.allhits,a.writetime,a.htmlfiledate,a.imageurl,"
            sql = "select " & sql & " c.htmlfiledir,b.channeldir,b.stopchannel,b.modulename,b.binddomain,b.domainname,b.iscreatehtml,b.htmlextname,b.htmlpath,b.htmlform,b.htmlprefix,b.leasthothist from ([nc_article] a inner join [nc_classify] c on a.classid=c.classid) inner join [nc_channel] b on a.channelid=b.channelid where a.isaccept>0 and a.channelid=" & cint(chanid) & " and a.imageurl<>'' " & foundstr & ""
            set rs = newasp.execute(sql)
            if rs.bof and rs.eof then
                strpicture = "<img src='" & newasp.siteurl & newasp.installdir & "images/no_pic.gif' width=""" & width & """ height=""" & height & """  hspace=""" & hspace & """ vspace=""" & vspace & """ align=""" & align & """ border=""0"">"
            else
                htmlfilename = newasp.readfilename(rs("htmlfiledate"), rs("articleid"), newasp.channelhtmlext, newasp.channelprefix, newasp.channelhtmlform, "")
                if cint(newasp.channelusehtml) <> 0 then
                    htmlfileurl = newasp.channelpath & rs("htmlfiledir") & newasp.showdatepath(rs("htmlfiledate"), newasp.channelhtmlpath) & htmlfilename
                else
                    htmlfileurl = newasp.channelpath & "show.asp?id=" & rs("articleid")
                end if
                imageurl = newasp.getimageurl(rs("imageurl"), newasp.channeldata(1))
                sextname = split(rs("imageurl"), ".")
                extname = sextname(ubound(sextname))
                select case lcase(extname)
                case "swf", "swi"
                    strpicture = "<object classid=""clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"" codebase=""http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"" width=""" & width & """ height=""" & height & """ hspace=""" & hspace & """ vspace=""" & vspace & """ align=""" & align & """>" & vbnewline
                    strpicture = strpicture & "     <param name=""movie"" value=""" & imageurl & """>" & vbnewline
                    strpicture = strpicture & "     <param name=""quality"" value=""high"">" & vbnewline
                    strpicture = strpicture & "     <embed src=""" & imageurl & """ width=""" & width & """ height=""" & height & """ hspace=""" & hspace & """ vspace=""" & vspace & """ align=""" & align & """ quality=""high"" pluginspage=""http://www.macromedia.com/go/getflashplayer"" type=""application/x-shockwave-flash""></embed>" & vbnewline
                    strpicture = strpicture & "</object>" & vbnewline
                case else
                    strpicture = "<a href=""" & htmlfileurl & """  target=""" & target & """ title=""" & newasp.channelmodule & "标题:" & rs("title") & " 发布时间:" & rs("writetime") & " 阅览次数:" & rs("allhits") & """><img src=""" & imageurl & """ width=""" & width & """ height=""" & height & """ hspace=""" & hspace & """ vspace=""" & vspace & """ align=""" & align & """ border=""0""></a>"
                end select
            end if
            rs.close: set rs = nothing
        else
            strpicture = ""
        end if
        newspictureandtext = strpicture & strcontent
    end function
    '================================================
    '函数名:readnewspicandtext
    '作  用:读取图文混排列表
    '参  数:str ----原字符串
    '================================================
    public function readnewspicandtext(byval str)
        dim strtemp, i, stempcontent
        dim ntempcontent, arraylist
        dim arrtempcontent, arrtempcontents
        on error resume next
        strtemp = str
        if instr(strtemp, "{$newspictureandtext(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$newspictureandtext(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$newspictureandtext(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), newspictureandtext(arraylist(0), arraylist(1), arraylist(2), arraylist(3), arraylist(4), arraylist(5), arraylist(6), arraylist(7), arraylist(8), arraylist(9), arraylist(10), arraylist(11), arraylist(12), arraylist(13), arraylist(14), arraylist(15), arraylist(16), arraylist(17)))
            next
        end if
        readnewspicandtext = strtemp
    end function
    '================================================
    '函数名:softpictureandtext
    '作  用:软件图文混排列表
    '================================================
    public function softpictureandtext(byval chanid, byval classid, byval specid, _
        byval stype, byval height, byval width, byval maxlen, _
        byval maxline, byval hspace, byval vspace, byval align, _
        byval divcss, byval target, byval start, byval showpic, _
        byval showclass, byval showdate, byval dateformat)

        dim rs, sql, i, strcontent, foundstr
        dim childstr, htmlfileurl, htmlfilename, strpicture
        dim softtopic, classname, softname, softtime

        chanid = newasp.chknumeric(chanid)
        classid = newasp.chknumeric(classid)
        specid = newasp.chknumeric(specid)
        stype = newasp.chknumeric(stype)

        on error resume next
        newasp.loadchannel(chanid)

        if cint(stype) >= 3 and clng(classid) <> 0 then
            sql = "select childstr from [nc_classify] where channelid = " & chanid & " and classid = " & classid
            set rs = newasp.execute(sql)
            if rs.bof and rs.eof then
                set rs = nothing
                softpictureandtext = ""
                exit function
            else
                childstr = rs("childstr")
            end if
            rs.close
        else
            childstr = "0"
        end if
        select case cint(stype)
            case 0: foundstr = "order by a.softtime desc ,a.softid desc"
            case 1: foundstr = "and a.isbest > 0 order by a.softtime desc ,a.softid desc"
            case 2: foundstr = "order by a.allhits desc ,a.softid desc"
            case 3: foundstr = "and a.classid in (" & childstr & ") order by a.softtime desc ,a.softid desc"
            case 4: foundstr = "and a.classid in (" & childstr & ") and a.isbest > 0 order by a.softtime desc ,a.softid desc"
            case 5: foundstr = "and a.classid in (" & childstr & ") order by a.allhits desc ,a.softid desc"
        case else
            foundstr = "order by a.softtime desc ,a.softid desc"
        end select
        if cint(stype) >= 3 and clng(classid) = 0 then
            foundstr = "order by a.softtime desc ,a.softid desc"
        end if
        if clng(specid) > 0 then
            foundstr = "and a.specialid =" & clng(specid) & " " & foundstr
        end if
        sql = " a.softid,a.classid,a.colormode,a.fontmode,a.softname,a.softver,a.allhits,a.softtime,a.htmlfiledate,a.isbest,"
        sql = "select top " & cint(maxline) & sql & " c.classname,c.colormodes,c.fontmodes,c.htmlfiledir from [nc_softlist] a inner join [nc_classify] c on a.classid=c.classid where a.isaccept>0 and a.channelid=" & chanid & " " & foundstr & ""
        set rs = newasp.execute(sql)
        i = 0
        strcontent = ""
        if rs.bof and rs.eof then
            strcontent = "还没有添加任何软件!"
        else
            do while not rs.eof
                softtopic = newasp.readtopic(trim(rs("softname") & " " & rs("softver")), cint(maxlen))
                softtopic = newasp.readfontmode(softtopic, rs("colormode"), rs("fontmode"))
                classname = newasp.readfontmode(rs("classname"), rs("colormodes"), rs("fontmodes"))
                htmlfilename = newasp.readfilename(rs("htmlfiledate"), rs("softid"), newasp.channelhtmlext, newasp.channelprefix, newasp.channelhtmlform, "")
                if cint(newasp.channelusehtml) > 0 then
                    htmlfileurl = newasp.channelpath & rs("htmlfiledir") & newasp.showdatepath(rs("htmlfiledate"), newasp.channelhtmlpath) & htmlfilename
                    classname = "[<a href='" & newasp.channelpath & rs("htmlfiledir") & "index" & newasp.channelhtmlext & "'>" & classname & "</a>]"
                else
                    htmlfileurl = newasp.channelpath & "show.asp?id=" & rs("softid")
                    classname = "[<a href='" & newasp.channelpath & "list.asp?classid=" & rs("classid") & "'>" & classname & "</a>]"
                end if
                if cint(showclass) = 1 then
                    classname = classname
                else
                    classname = ""
                end if
                if cint(showdate) = 1 then
                    softtime = newasp.showdatetime(rs("softtime"), cint(dateformat))
                else
                    softtime = ""
                end if
                softname = "<div " & divcss & ">" & start & classname & " <a href=""" & htmlfileurl & """ target=""" & target & """ title=""" & newasp.channelmodule & "标题:" & rs("softname") & " " & rs("softver") & " 发布时间:" & rs("softtime") & " 阅览次数:" & rs("allhits") & """ class=showlist>" & softtopic & "</a>  " & softtime & "</div>"
                strcontent = strcontent & softname
                rs.movenext
                i = i + 1
            loop
        end if
        rs.close: set rs = nothing
        dim sextname, extname, softimage
        if cint(showpic) = 1 then
            sql = " a.softid,a.classid,a.softname,a.softver,a.allhits,a.softtime,a.htmlfiledate,a.softimage,"
            sql = "select " & sql & " c.htmlfiledir,b.channeldir,b.modulename,b.binddomain,b.domainname,b.iscreatehtml,b.htmlextname,b.htmlpath,b.htmlform,b.htmlprefix,b.leasthothist from ([nc_softlist] a inner join [nc_classify] c on a.classid=c.classid) inner join [nc_channel] b on a.channelid=b.channelid where a.isaccept>0 and a.channelid=" & cint(chanid) & " and a.softimage<>'' " & foundstr & ""
            set rs = newasp.execute(sql)
            if rs.bof and rs.eof then
                strpicture = "<img src='" & newasp.siteurl & newasp.installdir & "images/no_pic.gif' width=""" & width & """ height=""" & height & """  hspace=""" & hspace & """ vspace=""" & vspace & """ align=""" & align & """ border=""0"">"
            else
                htmlfilename = newasp.readfilename(rs("htmlfiledate"), rs("softid"), newasp.channelhtmlext, newasp.channelprefix, newasp.channelhtmlform, "")
                if cint(newasp.channelusehtml) <> 0 then
                    htmlfileurl = newasp.channelpath & rs("htmlfiledir") & newasp.showdatepath(rs("htmlfiledate"), newasp.channelhtmlpath) & htmlfilename
                else
                    htmlfileurl = newasp.channelpath & "show.asp?id=" & rs("softid")
                end if
                softimage = newasp.getimageurl(rs("softimage"), newasp.channeldata(1))
                sextname = split(rs("softimage"), ".")
                extname = sextname(ubound(sextname))
                select case lcase(extname)
                case "swf", "swi"
                    strpicture = "<object classid=""clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"" codebase=""http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"" width=""" & width & """ height=""" & height & """ hspace=""" & hspace & """ vspace=""" & vspace & """ align=""" & align & """>" & vbnewline
                    strpicture = strpicture & "     <param name=""movie"" value=""" & softimage & """>" & vbnewline
                    strpicture = strpicture & "     <param name=""quality"" value=""high"">" & vbnewline
                    strpicture = strpicture & "     <embed src=""" & softimage & """ width=""" & width & """ height=""" & height & """ hspace=""" & hspace & """ vspace=""" & vspace & """ align=""" & align & """ quality=""high"" pluginspage=""http://www.macromedia.com/go/getflashplayer"" type=""application/x-shockwave-flash""></embed>" & vbnewline
                    strpicture = strpicture & "</object>" & vbnewline
                case else
                    strpicture = "<a href=""" & htmlfileurl & """  target=""" & target & """ title=""" & newasp.channelmodule & "标题:" & rs("softname") & " " & rs("softver") & " 发布时间:" & rs("softtime") & " 阅览次数:" & rs("allhits") & """><img src=""" & softimage & """ width=""" & width & """ height=""" & height & """ hspace=""" & hspace & """ vspace=""" & vspace & """ align=""" & align & """ border=""0""></a>"
                end select
            end if
            rs.close: set rs = nothing
        else
            strpicture = ""
        end if
        softpictureandtext = strpicture & strcontent
    end function
    '================================================
    '函数名:readsoftpicandtext
    '作  用:读取软件图文混排列表
    '参  数:str ----原字符串
    '================================================
    public function readsoftpicandtext(byval str)
        on error resume next
        dim strtemp, i, stempcontent
        dim ntempcontent, arraylist
        dim arrtempcontent, arrtempcontents

        strtemp = str
        if instr(strtemp, "{$softpictureandtext(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$softpictureandtext(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$softpictureandtext(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), softpictureandtext(arraylist(0), arraylist(1), arraylist(2), arraylist(3), arraylist(4), arraylist(5), arraylist(6), arraylist(7), arraylist(8), arraylist(9), arraylist(10), arraylist(11), arraylist(12), arraylist(13), arraylist(14), arraylist(15), arraylist(16), arraylist(17)))
            next
        end if
        readsoftpicandtext = strtemp
    end function
    '================================================
    '函数名:loadguestlist
    '作  用:装载留言列表
    '参  数:maxnum ----最多留言数
    '        maxlen ----字符长度
    '        newindow ----是否新窗口打开 1=是,0=否
    '        showdate ----是否显示时间 1=是,0=否
    '        datemode ----时间模式
    '        styles ----风格名称
    '================================================
    public function loadguestlist(byval maxnum, byval maxlen, byval newindow, _
        byval showdate, byval datemode, byval styles)

        dim rs, sql, strcontent
        dim i, liststyle, guesttopic, linktarget
        dim writetime, lastime, guesttitle,strchanneldir

        on error resume next
        set rs = newasp.execute("select top " & cint(maxnum) & " guestid,topicformat,title,username,writetime,lastime,replynum from nc_guestbook where isaccept>0 order by istop desc,lastime desc,guestid desc")
        if rs.bof and rs.eof then
            loadguestlist = "没有任何留言!"
            set rs = nothing
            exit function
        else
            i = 0
            strcontent = "<table width=""100%"" border=0 cellpadding=2 cellspacing=0>"
            strchanneldir = newasp.getchanneldir(4)
            do while not rs.eof
                if (i mod 2) = 0 then
                    liststyle = trim(styles) & 1
                else
                    liststyle = trim(styles) & 2
                end if
                if cint(newindow) <> 0 then
                    linktarget = " target=""_blank"""
                else
                    linktarget = ""
                end if
                if cint(showdate) <> 0 then
                    writetime = newasp.showdatetime(rs("writetime"), cint(datemode))
                    lastime = newasp.showdatetime(rs("lastime"), cint(datemode))
                else
                    writetime = ""
                    lastime = ""
                end if
                guesttitle = newasp.htmlencode(rs("title"))
                guesttopic = "<span " & rs("topicformat") & ">" & newasp.gottopic(guesttitle, cint(maxlen)) & "</span>"
                guesttopic = "<a href=""" & strchanneldir & "showreply.asp?guestid=" & rs("guestid") & """ title=""主题:" & guesttitle & " 时间:" & rs("writetime") & " 作者:" & newasp.htmlencode(rs("username")) & """" & linktarget & ">" & guesttopic & "</a>"
                strcontent = strcontent & newasp.mainsetting(16)
                strcontent = replace(strcontent, "{$guestid}", rs("guestid"))
                strcontent = replace(strcontent, "{$username}", newasp.htmlencode(rs("username")))
                strcontent = replace(strcontent, "{$guesttopic}", guesttopic)
                strcontent = replace(strcontent, "{$liststyle}", liststyle)
                strcontent = replace(strcontent, "{$number}", i)
                strcontent = replace(strcontent, "{$writetime}", writetime)
                strcontent = replace(strcontent, "{$lastime}", lastime)
                rs.movenext
                i = i + 1
            loop
            strcontent = strcontent & "</table>"
        end if
        loadguestlist = strcontent
    end function
    '================================================
    '函数名:readguestlist
    '作  用:读取留言列表
    '参  数:str ----原字符串
    '================================================
    public function readguestlist(byval str)
        dim strtemp, i, stempcontent
        dim ntempcontent, arraylist
        dim arrtempcontent, arrtempcontents

        strtemp = str
        if instr(strtemp, "{$readguestlist(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$readguestlist(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$readguestlist(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), loadguestlist(arraylist(0), arraylist(1), arraylist(2), arraylist(3), arraylist(4), arraylist(5)))
            next
        end if
        readguestlist = strtemp
    end function
    '================================================
    '函数名:loadpopularsoft
    '作  用:装载排行软件列表
    '参  数:classid   ----分类id
    '        chanid   ----频道id
    '        stype   ----调用类型
    '        maxline   ----显示列表数
    '        maxlen   ----显示标题长度
    '        showhits   ----是否显示下载数
    '        target   ----连接目标
    '        start   ----标题头标记
    '        styles   ----样式名称
    '================================================
    public function loadpopularsoft(byval chanid, byval classid, byval stype, _
        byval maxlen, byval maxline, byval showhits, _
        byval target, byval start, byval styles)

        dim sql, rs, foundsql, strhits
        dim childstr, i, strcontent
        dim htmlfilename, htmlfileurl
        dim newstitle, allhits, strsoftname
        dim divstyle

        chanid = newasp.chknumeric(chanid)
        classid = newasp.chknumeric(classid)
        stype = newasp.chknumeric(stype)
        if chanid = 0 then chanid = 1

        on error resume next
        newasp.loadchannel(chanid)

        if clng(classid) > 0 and trim(classid) <> "" then
            sql = "select childstr from [nc_classify] where channelid=" & chanid & " and classid=" & classid
            set rs = newasp.execute(sql)
            if rs.bof and rs.eof then
                set rs = nothing
                loadpopularsoft = ""
                exit function
            else
                childstr = rs("childstr")
                foundsql = "and a.classid in (" & childstr & ")"
            end if
            rs.close
        else
            childstr = "0"
            foundsql = ""
        end if

        select case cint(stype)
        case 1
            foundsql = foundsql & " order by a.dayhits desc ,a.softid desc"
            strhits = "dayhits"
        case 2
            foundsql = foundsql & " order by a.weekhits desc ,a.softid desc"
            strhits = "weekhits"
        case 3
            foundsql = foundsql & " order by a.monthhits desc ,a.softid desc"
            strhits = "monthhits"
        case 4
            foundsql = foundsql & " and a.isbest>0 order by a.allhits desc ,a.softid desc"
            strhits = "allhits"
        case else
            foundsql = foundsql & "order by a.allhits desc ,a.softid desc"
            strhits = "allhits"
        end select
        sql = " a.softid,a.classid,a.colormode,a.fontmode,a.softname,a.softver,a.allhits,a.softtime,a.htmlfiledate,a.isbest,a.dayhits,a.weekhits,a.monthhits,"
        sql = "select top " & cint(maxline) & sql & " c.classname,c.colormodes,c.fontmodes,c.htmlfiledir from [nc_softlist] a inner join [nc_classify] c on a.classid=c.classid where a.isaccept>0 and a.channelid=" & chanid & " " & foundsql
        set rs = newasp.execute(sql)
        i = 0
        strcontent = ""
        if rs.bof and rs.eof then
            strcontent = "还没有找到任何内容!"
        else
            do while not rs.eof
                if trim(styles) <> "" and trim(styles) <> "0" then
                    if (i mod 2) = 0 then
                        divstyle = " class=""" & trim(styles) & "1"""
                    else
                        divstyle = " class=""" & trim(styles) & "2"""
                    end if
                end if

                newstitle = newasp.gottopic(rs("softname") & " " & rs("softver"), cint(maxlen))
                newstitle = newasp.readfontmode(newstitle, rs("colormode"), rs("fontmode"))
                htmlfilename = newasp.readfilename(rs("htmlfiledate"), rs("softid"), newasp.channelhtmlext, newasp.channelprefix, newasp.channelhtmlform, "")
                if cint(newasp.channelusehtml) > 0 then
                    htmlfileurl = newasp.channelpath & rs("htmlfiledir") & newasp.showdatepath(rs("htmlfiledate"), newasp.channelhtmlpath) & htmlfilename
                else
                    htmlfileurl = newasp.channelpath & "show.asp?id=" & rs("softid")
                end if
                if cint(showhits) > 0 then
                    allhits = rs(strhits)
                else
                    allhits = ""
                end if
                strsoftname = "<div" & divstyle & ">" & start & " <a href=""" & htmlfileurl & """ target=""" & target & """ title=""" & newasp.channelmodule & "名称:" & rs("softname") & " " & rs("softver") & " 发布时间:" & rs("softtime") & " 下载总数:" & rs("allhits") & """ class=popular>" & newstitle & "</a>  " & allhits & "</div>"
                strcontent = strcontent & strsoftname

                rs.movenext
                i = i + 1
            loop
        end if
        rs.close: set rs = nothing
        loadpopularsoft = strcontent
    end function
    '================================================
    '函数名:readpopularsoft
    '作  用:读取软件排行列表
    '参  数:str ----原字符串
    '================================================
    public function readpopularsoft(byval str)
        on error resume next
        dim strtemp, i, stempcontent
        dim ntempcontent, arraylist
        dim arrtempcontent, arrtempcontents

        strtemp = str
        if instr(strtemp, "{$readpopularsoft(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$readpopularsoft(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$readpopularsoft(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), loadpopularsoft(arraylist(0), arraylist(1), arraylist(2), arraylist(3), arraylist(4), arraylist(5), arraylist(6), arraylist(7), arraylist(8)))
            next
        end if
        readpopularsoft = strtemp
    end function
    '================================================
    '函数名:loadpopulararticle
    '作  用:装载排行文章列表
    '参  数:classid   ----分类id
    '        chanid   ----频道id
    '        stype   ----调用类型
    '        maxline   ----显示列表数
    '        maxlen   ----显示标题长度
    '        showhits   ----是否显示下载数
    '        target   ----连接目标
    '        start   ----标题头标记
    '        styles   ----样式名称
    '================================================
    public function loadpopulararticle(byval chanid, byval classid, byval stype, _
        byval maxlen, byval maxline, byval showhits, byval target, _
        byval start, byval styles)

        dim sql, rs, foundsql, strhits
        dim childstr, i, strcontent
        dim htmlfilename, htmlfileurl
        dim newstitle, allhits, articletitle
        dim divstyle

        chanid = newasp.chknumeric(chanid)
        classid = newasp.chknumeric(classid)
        stype = newasp.chknumeric(stype)

        if chanid = 0 then chanid = 2

        on error resume next
        newasp.loadchannel(chanid)

        if clng(classid) > 0 and trim(classid) <> "" then
            sql = "select childstr from [nc_classify] where channelid=" & chanid & " and classid=" & clng(classid)
            set rs = newasp.execute(sql)
            if rs.bof and rs.eof then
                set rs = nothing
                loadpopulararticle = ""
                exit function
            else
                childstr = rs("childstr")
                foundsql = "and a.classid in (" & childstr & ")"
            end if
            rs.close
        else
            childstr = "0"
            foundsql = ""
        end if
        select case cint(stype)
        case 1
            foundsql = foundsql & " order by a.dayhits desc ,a.articleid desc"
            strhits = "dayhits"
        case 2
            foundsql = foundsql & " order by a.weekhits desc ,a.articleid desc"
            strhits = "weekhits"
        case 3
            foundsql = foundsql & " order by a.monthhits desc ,a.articleid desc"
            strhits = "monthhits"
        case 4
            foundsql = foundsql & " and a.isbest>0 order by a.allhits desc ,a.articleid desc"
            strhits = "allhits"
        case else
            foundsql = foundsql & "order by a.allhits desc ,a.articleid desc"
            strhits = "allhits"
        end select
        sql = " a.articleid,a.classid,a.colormode,a.fontmode,a.title,a.brieftopic,a.allhits,a.writetime,a.htmlfiledate,a.isbest,a.dayhits,a.weekhits,a.monthhits,"
        sql = "select top " & cint(maxline) & sql & " c.classname,c.colormodes,c.fontmodes,c.htmlfiledir from [nc_article] a inner join [nc_classify] c on a.classid=c.classid where a.isaccept>0 and a.channelid=" & chanid & " " & foundsql
        set rs = newasp.execute(sql)
        i = 0
        strcontent = ""
        if rs.bof and rs.eof then
            strcontent = "还没有找到任何软件!"
        else
            do while not rs.eof
                if trim(styles) <> "" and trim(styles) <> "0" then
                    if (i mod 2) = 0 then
                        divstyle = " class=""" & trim(styles) & "1"""
                    else
                        divstyle = " class=""" & trim(styles) & "2"""
                    end if
                end if
                newstitle = newasp.gottopic(rs("title"), cint(maxlen))
                newstitle = newasp.readfontmode(newstitle, rs("colormode"), rs("fontmode"))
                htmlfilename = newasp.readfilename(rs("htmlfiledate"), rs("articleid"), newasp.channelhtmlext, newasp.channelprefix, newasp.channelhtmlform, "")
                if cint(newasp.channelusehtml) > 0 then
                    htmlfileurl = newasp.channelpath & rs("htmlfiledir") & newasp.showdatepath(rs("htmlfiledate"), newasp.channelhtmlpath) & htmlfilename
                else
                    htmlfileurl = newasp.channelpath & "show.asp?id=" & rs("articleid")
                end if
                if cint(showhits) > 0 then
                    allhits = rs(strhits)
                else
                    allhits = ""
                end if
                articletitle = "<div" & divstyle & ">" & start & " <a href=""" & htmlfileurl & """ target=""" & target & """ title=""" & newasp.channelmodule & "标题:" & rs("title") & " 发布时间:" & rs("writetime") & " 阅览次数:" & rs("allhits") & """ class=popular>" & newstitle & "</a>  " & allhits & "</div>"
                strcontent = strcontent & articletitle
                rs.movenext
                i = i + 1
            loop
        end if
        rs.close: set rs = nothing
        loadpopulararticle = strcontent
    end function
    '================================================
    '函数名:readpopularsoft
    '作  用:读取软件排行列表
    '参  数:str ----原字符串
    '================================================
    public function readpopulararticle(byval str)
        on error resume next
        dim strtemp, i, stempcontent
        dim ntempcontent, arraylist
        dim arrtempcontent, arrtempcontents

        strtemp = str
        if instr(strtemp, "{$readpopulararticle(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$readpopulararticle(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$readpopulararticle(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), loadpopulararticle(arraylist(0), arraylist(1), arraylist(2), arraylist(3), arraylist(4), arraylist(5), arraylist(6), arraylist(7), arraylist(8)))
            next
        end if
        readpopulararticle = strtemp
    end function
    '================================================
    '函数名:loadpopularflash
    '作  用:装载排行动画列表
    '参  数:classid   ----分类id
    '        chanid   ----频道id
    '        stype   ----调用类型
    '        maxline   ----显示列表数
    '        maxlen   ----显示标题长度
    '        showhits   ----是否显示下载数
    '        target   ----连接目标
    '        start   ----标题头标记
    '        styles   ----样式名称
    '================================================
    public function loadpopularflash(byval chanid, byval classid, byval stype, _
        byval maxlen, byval maxline, byval showhits, _
        byval target, byval start, byval styles)

        dim sql, rs, foundsql, strhits
        dim childstr, i, strcontent
        dim htmlfilename, htmlfileurl
        dim newstitle, allhits, strtitle
        dim divstyle

        chanid = newasp.chknumeric(chanid)
        classid = newasp.chknumeric(classid)
        stype = newasp.chknumeric(stype)
        if chanid = 0 then chanid = 1

        on error resume next
        newasp.loadchannel(chanid)

        if clng(classid) > 0 and trim(classid) <> "" then
            sql = "select childstr from [nc_classify] where channelid=" & chanid & " and classid=" & classid
            set rs = newasp.execute(sql)
            if rs.bof and rs.eof then
                set rs = nothing
                loadpopularflash = ""
                exit function
            else
                childstr = rs("childstr")
                foundsql = "and a.classid in (" & childstr & ")"
            end if
            rs.close
        else
            childstr = "0"
            foundsql = ""
        end if

        select case cint(stype)
        case 1
            foundsql = foundsql & " order by a.dayhits desc ,a.flashid desc"
            strhits = "dayhits"
        case 2
            foundsql = foundsql & " order by a.weekhits desc ,a.flashid desc"
            strhits = "weekhits"
        case 3
            foundsql = foundsql & " order by a.monthhits desc ,a.flashid desc"
            strhits = "monthhits"
        case 4
            foundsql = foundsql & " and a.isbest>0 order by a.allhits desc ,a.flashid desc"
            strhits = "allhits"
        case else
            foundsql = foundsql & "order by a.allhits desc ,a.flashid desc"
            strhits = "allhits"
        end select
        sql = " a.flashid,a.classid,a.colormode,a.fontmode,a.title,a.allhits,a.addtime,a.htmlfiledate,a.isbest,a.dayhits,a.weekhits,a.monthhits,"
        sql = "select top " & cint(maxline) & sql & " c.classname,c.colormodes,c.fontmodes,c.htmlfiledir from [nc_flashlist] a inner join [nc_classify] c on a.classid=c.classid where a.isaccept>0 and a.channelid=" & chanid & " " & foundsql
        set rs = newasp.execute(sql)
        i = 0
        strcontent = ""
        if rs.bof and rs.eof then
            strcontent = "还没有找到任何内容!"
        else
            do while not rs.eof
                if trim(styles) <> "" and trim(styles) <> "0" then
                    if (i mod 2) = 0 then
                        divstyle = " class=""" & trim(styles) & "1"""
                    else
                        divstyle = " class=""" & trim(styles) & "2"""
                    end if
                end if

                newstitle = newasp.gottopic(rs("title"), cint(maxlen))
                newstitle = newasp.readfontmode(newstitle, rs("colormode"), rs("fontmode"))
                htmlfilename = newasp.readfilename(rs("htmlfiledate"), rs("flashid"), newasp.channelhtmlext, newasp.channelprefix, newasp.channelhtmlform, "")
                if cint(newasp.channelusehtml) > 0 then
                    htmlfileurl = newasp.channelpath & rs("htmlfiledir") & newasp.showdatepath(rs("htmlfiledate"), newasp.channelhtmlpath) & htmlfilename
                else
                    htmlfileurl = newasp.channelpath & "show.asp?id=" & rs("flashid")
                end if
                if cint(showhits) > 0 then
                    allhits = rs(strhits)
                else
                    allhits = ""
                end if
                strtitle = "<div" & divstyle & ">" & start & " <a href=""" & htmlfileurl & """ target=""" & target & """ title=""" & newasp.channelmodule & "名称:" & rs("title") & " 发布时间:" & rs("addtime") & " 下载总数:" & rs("allhits") & """ class=popular>" & newstitle & "</a>  " & allhits & "</div>"
                strcontent = strcontent & strtitle

                rs.movenext
                i = i + 1
            loop
        end if
        rs.close: set rs = nothing
        loadpopularflash = strcontent
    end function
    '================================================
    '函数名:readpopularflash
    '作  用:读取动画排行列表
    '参  数:str ----原字符串
    '================================================
    public function readpopularflash(byval str)
        on error resume next
        dim strtemp, i, stempcontent
        dim ntempcontent, arraylist
        dim arrtempcontent, arrtempcontents

        strtemp = str
        if instr(strtemp, "{$readpopularflash(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$readpopularflash(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$readpopularflash(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), loadpopularflash(arraylist(0), arraylist(1), arraylist(2), arraylist(3), arraylist(4), arraylist(5), arraylist(6), arraylist(7), arraylist(8)))
            next
        end if
        readpopularflash = strtemp
    end function
    '================================================
    '函数名:loadsofttype
    '作  用:装载软件类型列表
    '参  数:chanid   ----频道id
    '        softtype   ----软件类型
    '        maxline   ----显示列表数
    '        maxlen   ----显示标题长度
    '        showclass   ----是否显示分类
    '        showdate   ----是否显示日期
    '        datemode   ----显示日期模式
    '        newindow  ----是否新窗口打开连接
    '        styles   ----样式名称
    '================================================
    public function loadsofttype(byval chanid, byval softtype, byval maxlen, _
        byval maxline, byval showclass, byval showdate, _
        byval datemode, byval newindow, byval styles)

        dim sql, rs, foundsql, strcontent, i
        dim strsoftname, childstr, liststyle, htmlfilename, bestcode, beststring
        dim classname, htmlfileurl, softtime, linktarget, softtopic

        softtype = newasp.checkstr(softtype)
        chanid = newasp.chknumeric(chanid)
        maxline = newasp.chknumeric(maxline)
        if chanid = 0 then chanid = 2
        if maxline = 0 then maxline = 10

        on error resume next
        newasp.loadchannel(chanid)

        if trim(softtype) <> "" then
            foundsql = "and a.softtype='" & softtype & "' order by a.softtime desc ,a.softid desc"
        else
            foundsql = "order by a.softtime desc ,a.softid desc"
        end if

        sql = " a.softid,a.classid,a.colormode,a.fontmode,a.softname,a.softver,a.softtype,a.allhits,a.softtime,a.htmlfiledate,a.isbest,"
        sql = "select top " & maxline & sql & " c.classname,c.colormodes,c.fontmodes,c.htmlfiledir,c.usehtml from [nc_softlist] a inner join [nc_classify] c on a.classid=c.classid where a.isaccept>0 and a.channelid=" & chanid & " " & foundsql
        set rs = newasp.execute(sql)
        i = 0
        strcontent = ""
        if rs.bof and rs.eof then
            strcontent = "还没有找到任何软件!"
        else
            strcontent = "<table width=""100%"" border=0 cellpadding=2 cellspacing=0>"
            do while not rs.eof
                if (i mod 2) = 0 then
                    liststyle = trim(styles) & 1
                else
                    liststyle = trim(styles) & 2
                end if
                if rs("isbest") <> 0 then
                    bestcode = 2
                    beststring = "<font color='" & newasp.mainsetting(3) & "'>推荐</font>"
                else
                    bestcode = 1
                    beststring = ""
                end if
                strcontent = strcontent & newasp.mainsetting(14)
                strsoftname = newasp.gottopic(rs("softname") & " " & rs("softver"), cint(maxlen))
                strsoftname = newasp.readfontmode(strsoftname, rs("colormode"), rs("fontmode"))

                classname = newasp.readfontmode(rs("classname"), rs("colormodes"), rs("fontmodes"))
                htmlfilename = newasp.readfilename(rs("htmlfiledate"), rs("softid"), newasp.channelhtmlext, newasp.channelprefix, newasp.channelhtmlform, "")
                if cint(newasp.channelusehtml) <> 0 then
                    htmlfileurl = newasp.channelpath & rs("htmlfiledir") & newasp.showdatepath(rs("htmlfiledate"), newasp.channelhtmlpath) & htmlfilename
                    classname = "<a href='" & newasp.channelpath & rs("htmlfiledir") & "index" & newasp.channelhtmlext & "'>" & classname & "</a>"
                else
                    htmlfileurl = newasp.channelpath & "show.asp?id=" & rs("softid")
                    classname = "<a href='" & newasp.channelpath & "list.asp?classid=" & rs("classid") & "'>" & classname & "</a>"
                end if
                if cint(showclass) = 0 then classname = ""
                if cint(showdate) <> 0 then
                    softtime = newasp.showdatetime(rs("softtime"), cint(datemode))
                else
                    softtime = ""
                end if
                if cint(newindow) <> 0 then
                    linktarget = " target=""_blank"""
                else
                    linktarget = ""
                end if

                softtopic = "<a href='" & htmlfileurl & "'" & linktarget & " title='" & newasp.channelmodule & "名称:" & rs("softname") & " 发布时间:" & rs("softtime") & " 下载次数:" & rs("allhits") & "' class=showlist>" & strsoftname & "</a>"
                strcontent = replace(strcontent, "{$softtopic}", softtopic)
                strcontent = replace(strcontent, "{$installdir}", newasp.installdir)
                strcontent = replace(strcontent, "{$softname}", strsoftname)
                strcontent = replace(strcontent, "{$title}", rs("softname"))
                strcontent = replace(strcontent, "{$dateandtitle}", rs("softtime"))
                strcontent = replace(strcontent, "{$htmlfileurl}", htmlfileurl)
                strcontent = replace(strcontent, "{$classname}", classname)
                strcontent = replace(strcontent, "[]", "")
                strcontent = replace(strcontent, "{$target}", linktarget)
                strcontent = replace(strcontent, "{$softtime}", softtime)
                strcontent = replace(strcontent, "{$softhits}", rs("allhits"))
                strcontent = replace(strcontent, "{$liststyle}", liststyle)
                strcontent = replace(strcontent, "{$bestcode}", bestcode)
                strcontent = replace(strcontent, "{$beststring}", beststring)
                rs.movenext
                i = i + 1
            loop
            strcontent = strcontent & "</table>"
        end if
        set rs = nothing
        loadsofttype = strcontent
    end function
    '================================================
    '函数名:readsofttype
    '作  用:读取软件类型列表
    '参  数:str ----原字符串
    '================================================
    public function readsofttype(byval str)
        on error resume next
        dim strtemp, i, stempcontent
        dim ntempcontent, arraylist
        dim arrtempcontent, arrtempcontents

        strtemp = str
        if instr(strtemp, "{$readsofttype(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$readsofttype(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$readsofttype(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), loadsofttype(arraylist(0), arraylist(1), arraylist(2), arraylist(3), arraylist(4), arraylist(5), arraylist(6), arraylist(7), arraylist(8)))
            next
        end if
        readsofttype = strtemp
    end function
    '================================================
    '函数名:loaduserrank
    '作  用:装用户排行列表
    '================================================
    public function loaduserrank(byval stype,byval grade,byval maxline,byval styles)
        dim sql, rs, foundsql, strcontent, i
        dim liststyle,username

        stype = newasp.checknumeric(stype)
        grade = newasp.checknumeric(grade)
        maxline = newasp.checknumeric(maxline)
        if maxline = 0 then maxline = 10
        if stype = 1 then
            foundsql = "order by jointime desc,userid desc"
        elseif stype = 2 then
            foundsql = "order by lasttime desc,userid desc"
        elseif stype = 3 then
            foundsql = "order by userpoint desc,userid desc"
        else
            foundsql = "order by userlogin desc,userid desc"
        end if
        if grade > 0 then
            sql = "select top " & maxline & " userid,username,userpoint,userlogin from [nc_user] where usergrade=" & grade & " " & foundsql
        else
            sql = "select top " & maxline & " userid,username,userpoint,userlogin from [nc_user] " & foundsql
        end if
        set rs = newasp.execute(sql)
        i = 0
        strcontent = ""
        if not (rs.bof and rs.eof) then
            strcontent = "<table width=""100%"" border=0 cellpadding=2 cellspacing=0>"
            do while not rs.eof
                if (i mod 2) = 0 then
                    liststyle = trim(styles) & 1
                else
                    liststyle = trim(styles) & 2
                end if
                username = "<a href=""" & newasp.installdir & "user/userlist.asp?userid=" & rs("userid") & """ target=""_blank"">" & rs("username") & "</a>"
                strcontent = strcontent & newasp.mainsetting(23)
                strcontent = replace(strcontent, "{$liststyle}", liststyle)
                strcontent = replace(strcontent, "{$installdir}", newasp.installdir)
                strcontent = replace(strcontent, "{$username}", username)
                strcontent = replace(strcontent, "{$username}", rs("username"))
                strcontent = replace(strcontent, "{$userid}", rs("userid"))
                strcontent = replace(strcontent, "{$userlogin}", rs("userlogin"))
                strcontent = replace(strcontent, "{$userpoint}", rs("userpoint"))
                rs.movenext
                i = i + 1
                strcontent = replace(strcontent, "{$orderid}", i)
            loop
            strcontent = strcontent & "</table>"
        end if
        rs.close: set rs = nothing

        loaduserrank = strcontent
    end function
    '================================================
    '函数名:readuserrank
    '作  用:读取用户排行列表
    '参  数:str ----原字符串
    '================================================
    public function readuserrank(byval str)
        on error resume next
        dim strtemp, i, stempcontent
        dim ntempcontent, arraylist
        dim arrtempcontent, arrtempcontents

        strtemp = str
        if instr(strtemp, "{$readuserrank(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$readuserrank(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$readuserrank(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), loaduserrank(arraylist(0), arraylist(1), arraylist(2), arraylist(3)))
            next
        end if
        readuserrank = strtemp
    end function
    '================================================
    '函数名:loadstatistic
    '作  用:装载频道统计
    '参  数:moduleid ----所属模块
    '        channelid ----频道id
    '        strclass ----所调用的分类id或者软件类型
    '        stype ----统计类型,0=全部统计,1=今日更新统计,2=点击数统计,3=软件容量统计
    '================================================
    public function loadstatistic(byval moduleid, byval channelid, byval strclass, byval stype)

        moduleid = newasp.checknumeric(moduleid)
        channelid = newasp.checknumeric(channelid)
        stype = newasp.checknumeric(stype)

        dim rs, sql, statcount
        dim foundsql, classid, childstr

        classid = newasp.checknumeric(strclass)
        on error resume next
        loadstatistic = 0
        if classid > 0 then
            sql = "select childstr from [nc_classify] where channelid = " & channelid & " and classid=" & classid
            set rs = newasp.execute(sql)
            if rs.bof and rs.eof then
                childstr = 0
            else
                childstr = rs("childstr")
            end if
            rs.close: set rs = nothing
            foundsql = "and channelid=" & channelid & " and classid in (" & childstr & ")"
        else
            foundsql = "and channelid=" & channelid
        end if
        select case moduleid
        case 1
            if stype = 1 then
                if issqldatabase = 1 then
                    sql = "select count(articleid) from nc_article where isaccept>0 " & foundsql & " and datediff(d,writetime,getdate())=0"
                else
                    sql = "select count(articleid) from nc_article where isaccept>0 " & foundsql & " and writetime>=date()"
                end if
            elseif stype = 2 then
                sql = "select sum(allhits) from nc_article where isaccept>0 " & foundsql
            elseif stype = 4 then
                sql = "select sum(dayhits) from nc_article where isaccept>0 " & foundsql
            else
                sql = "select count(articleid) from nc_article where isaccept>0 " & foundsql
            end if
        case 2
            if not isnumeric(strclass) then
                foundsql = foundsql & " and softtype='" & newasp.checkstr(strclass) & "'"
            end if
            if stype = 1 then
                if issqldatabase = 1 then
                    sql = "select count(softid) from nc_softlist where isaccept>0 " & foundsql & " and datediff(d,softtime,getdate())=0"
                else
                    sql = "select count(softid) from nc_softlist where isaccept>0 " & foundsql & " and softtime>=date()"
                end if
            elseif stype = 2 then
                sql = "select sum(allhits) from nc_softlist where isaccept>0 " & foundsql
            elseif stype = 3 then
                sql = "select sum(softsize) from nc_softlist where isaccept>0 " & foundsql
            elseif stype = 4 then
                sql = "select sum(dayhits) from nc_softlist where isaccept>0 " & foundsql
            else
                sql = "select count(softid) from nc_softlist where isaccept>0 " & foundsql
            end if
        case 4
            if stype = 1 then
                if issqldatabase = 1 then
                    sql = "select count(guestid) from nc_guestbook where isaccept>0 and datediff(d,writetime,getdate())=0"
                else
                    sql = "select count(guestid) from nc_guestbook where isaccept>0 and writetime>=date()"
                end if
            else
                sql = "select count(guestid) from nc_guestbook where isaccept>0"
            end if
        case 5
            if stype = 1 then
                if issqldatabase = 1 then
                    sql = "select count(flashid) from nc_flashlist where isaccept>0 " & foundsql & " and datediff(d,addtime,getdate())=0"
                else
                    sql = "select count(flashid) from nc_flashlist where isaccept>0 " & foundsql & " and addtime>=date()"
                end if
            elseif stype = 2 then
                sql = "select sum(allhits) from nc_flashlist where isaccept>0 " & foundsql
            elseif stype = 3 then
                sql = "select sum(filesize) from nc_flashlist where isaccept>0 " & foundsql
            elseif stype = 4 then
                sql = "select sum(dayhits) from nc_flashlist where isaccept>0 " & foundsql
            else
                sql = "select count(flashid) from nc_flashlist where isaccept>0 " & foundsql
            end if
        case else
            if stype = 1 then
                if issqldatabase = 1 then
                    sql = "select count(userid) from nc_user where datediff(d,jointime,getdate())=0"
                else
                    sql = "select count(userid) from nc_user where jointime>=date()"
                end if
            else
                sql = "select count(userid) from nc_user"
            end if
        end select
        set rs = newasp.execute(sql)
        if rs.bof and rs.eof then
            statcount = 0
        else
            statcount = ccur(rs(0))
            if (moduleid = 2 and stype = 3) or (moduleid = 5 and stype = 3) then
                statcount = round(statcount / 1024 / 1024, 3)
                statcount = formatnumber(statcount, 3, -1)
            end if
        end if
        rs.close: set rs = nothing
        loadstatistic = statcount
    end function
    '================================================
    '函数名:readstatistic
    '作  用:读取频道统计
    '参  数:str ----原字符串
    '================================================
    public function readstatistic(byval str)
        on error resume next
        dim strtemp, i, stempcontent
        dim ntempcontent, arraylist
        dim arrtempcontent, arrtempcontents

        strtemp = str
        on error resume next
        if instr(strtemp, "{$readstatistic(") > 0 then
            stempcontent = newasp.cutmatchcontent(strtemp, "{$readstatistic(", ")}", 1)
            ntempcontent = newasp.cutmatchcontent(strtemp, "{$readstatistic(", ")}", 0)
            arrtempcontents = split(stempcontent, "|||")
            arrtempcontent = split(ntempcontent, "|||")
            for i = 0 to ubound(arrtempcontents)
                arraylist = split(arrtempcontent(i), ",")
                strtemp = replace(strtemp, arrtempcontents(i), loadstatistic(arraylist(0), arraylist(1), arraylist(2), arraylist(3)))
            next
        end if
        readstatistic = strtemp
    end function

    public function showindex(byval ishtml)
        dim htmlcontent
        newasp.loadtemplates 0, 1, 0
        htmlcontent = newasp.htmlcontent
        htmlcontent = replace(htmlcontent, "{$channelrootdir}", newasp.installdir)
        htmlcontent = replace(htmlcontent, "{$installdir}", newasp.installdir)
        if len(newasp.htmlsetting(1)) < 2 then
            htmlcontent = replace(htmlcontent, "{$pagetitle}", "首页")
        else
            htmlcontent = replace(htmlcontent, "{$pagetitle}", newasp.htmlsetting(1))
        end if
        htmlcontent = replace(htmlcontent, "{$channelid}", 0)
        htmlcontent = readannouncecontent(htmlcontent, 0)
        htmlcontent = readclassmenu(htmlcontent)
        htmlcontent = readclassmenubar(htmlcontent)
        htmlcontent = readarticlepic(htmlcontent)
        htmlcontent = readsoftpic(htmlcontent)
        htmlcontent = readarticlelist(htmlcontent)
        htmlcontent = readsoftlist(htmlcontent)
        htmlcontent = readflashlist(htmlcontent)
        htmlcontent = readflashpic(htmlcontent)
        htmlcontent = readfriendlink(htmlcontent)
        htmlcontent = readnewspicandtext(htmlcontent)
        htmlcontent = readsoftpicandtext(htmlcontent)
        htmlcontent = readguestlist(htmlcontent)
        htmlcontent = readannouncelist(htmlcontent)
        htmlcontent = readpopulararticle(htmlcontent)
        htmlcontent = readpopularsoft(htmlcontent)
        htmlcontent = readpopularflash(htmlcontent)
        htmlcontent = readsofttype(htmlcontent)
        htmlcontent = readstatistic(htmlcontent)
        htmlcontent = readuserrank(htmlcontent)
        htmlcontent = replace(htmlcontent, "{$skinpath}", newasp.skinpath)
        htmlcontent = replace(htmlcontent, "{$installdir}", newasp.installdir)
        if ishtml then
            showindex = htmlcontent
        else
            response.write htmlcontent
        end if
    end function

end class
%>