asp常用函数集合,非常不错以后研究第1/4页
程序员文章站
2022-06-22 13:38:17
<% function loadtempletfile(byval path) on e...
<%
function loadtempletfile(byval path)
on error resume next
dim objstream
set objstream = server.createobject("adodb.stream")
with objstream
.type = 2
.mode = 3
.open
.loadfromfile server.mappath(path)
if err.number <> 0 then
err.clear
response.write("预加载的模板[" & path & "]不存在!")
response.end()
end if
.charset = "" & chrset & ""
.position = 2
loadtempletfile = .readtext
.close
end with
set objstream = nothing
end function
function movefiles(sfolder,dfolder)
on error resume next
dim fso
set fso = server.createobject("scripting.filesystemobject")
if fso.folderexists(server.mappath(sfolder)) and fso.folderexists(server.mappath(dfolder)) then
fso.copyfolder server.mappath(sfolder),server.mappath(dfolder)
movefiles = true
else
movefiles = false
set fso = nothing
call alertbox("系统没有找到指定的路径[" & sfolder & "]!",2)
end if
set fso = nothing
end function
function renamefolder(sfolder,dfolder)
on error resume next
dim fso
set fso = server.createobject("scripting.filesystemobject")
if fso.folderexists(server.mappath(sfolder)) then
fso.movefolder server.mappath(sfolder),server.mappath(dfolder)
renamefolder = true
else
renamefolder = false
set fso = nothing
call alertbox("系统没有找到指定的路径[" & sfolder & "]!",2)
end if
set fso = nothing
end function
function checkfolder(spath)
on error resume next
dim fso
set fso = server.createobject("scripting.filesystemobject")
if fso.folderexists(server.mappath(spath)) then
checkfolder = true
else
checkfolder = false
end if
set fso = nothing
end function
function checkfile(spath)
on error resume next
dim fso
set fso = server.createobject("scripting.filesystemobject")
if fso.fileexists(server.mappath(spath)) then
checkfile = true
else
checkfile = false
end if
set fso = nothing
end function
function createdir(spath)
dim fso,patharr,i,path_level,pathtmp,cpath
on error resume next
spath = replace(spath,"\","/")
set fso = server.createobject("scripting.filesystemobject")
patharr = split(spath,"/")
path_level = ubound(patharr)
for i = 0 to path_level
if i = 0 then pathtmp = patharr(0) & "/" else pathtmp = pathtmp&patharr(i) & "/"
cpath = left(pathtmp,len(pathtmp)-1)
if not fso.folderexists(cpath) then fso.createfolder(cpath)
next
set fso = nothing
if err.number <> 0 then
err.clear
createdir = false
else
createdir = true
end if
end function
function delclassfolder(spath)
on error resume next
dim fso
set fso = server.createobject("scripting.filesystemobject")
if fso.folderexists(server.mappath(spath)) then
fso.deletefolder(server.mappath(spath))
end if
set fso = nothing
end function
function delnewsfile(spath,filename)
on error resume next
dim fso,temparr,cpath,epath,i:i = 0
set fso = server.createobject("scripting.filesystemobject")
spath = spath & filename & site_extname
if fso.fileexists(server.mappath(spath)) then
fso.deletefile(server.mappath(spath))
while(i <> -1)
i = i + 1
epath = replace(spath,filename & ".",filename & "_" & i + 1 & ".")
if fso.fileexists(server.mappath(epath)) then
fso.deletefile(server.mappath(epath))
else
i = -1
end if
wend
end if
end function
class stringclass
public function getstr(strhtml)
dim patrnstr
patrnstr="<.*?>"
dim objregex
set objregex = new regexp
objregex.pattern = patrnstr
objregex.ignorecase = true
objregex.global = true
getstr = objregex.replace(strhtml,"")
set objregex = nothing
end function
public function replacestr(patrn,mstr,replstr)
dim objregex
set objregex = new regexp
objregex.pattern = patrn
objregex.ignorecase = true
objregex.global = true
replacestr = objregex.replace(mstr,replstr)
set objregex = nothing
end function
public function classcustomtag(byval patrn,byval mstr,byval classid,byval indexid,byval pagestr)
dim objregex,match,matches
set objregex = new regexp
objregex.pattern = patrn
objregex.ignorecase = true
objregex.global = true
set matches = objregex.execute(mstr)
for each match in matches
mstr = replace(mstr,match.value,parseclasstag(match.value,classid,indexid,pagestr))
next
set matches = nothing
set objregex = nothing
classcustomtag = mstr
end function
public function newscustomtag(byval patrn,byval mstr,byval classid,byval newsid,byval keywords)
dim objregex,match,matches
set objregex = new regexp
objregex.pattern = patrn
objregex.ignorecase = true
objregex.global = true
set matches = objregex.execute(mstr)
for each match in matches
mstr = replace(mstr,match.value,parsenewstag(match.value,classid,newsid,keywords))
next
set matches = nothing
set objregex = nothing
newscustomtag = mstr
end function
end class
function processcustomtag(byval scontent)
dim objregex,match,matches
set objregex = new regexp
objregex.pattern = "{ncms:[^<>]+?\/}"
objregex.ignorecase = true
objregex.global = true
set matches = objregex.execute(scontent)
for each match in matches
scontent = replace(scontent,match.value,parsetag(match.value))
next
set matches = nothing
set objregex = nothing
processcustomtag = scontent
end function
function x_processcustomtag(byval scontent)
dim objregex,match,matches
set objregex = new regexp
objregex.pattern = "(\[ncms:).+?(\])(.|\n)+?(\[\/ncms\])"
objregex.ignorecase = true
objregex.global = true
set matches = objregex.execute(scontent)
for each match in matches
scontent = replace(scontent,match.value,parsetag(match.value))
next
set matches = nothing
set objregex = nothing
x_processcustomtag = scontent
end function
function getattribute(byval strattribute,byval strtag)
dim objregex,matches
set objregex = new regexp
objregex.pattern = lcase(strattribute)&"=""[0-9a-za-z]*"""
objregex.ignorecase = true
objregex.global = true
set matches = objregex.execute(strtag)
if matches.count > 0 then
getattribute = split(matches(0).value,"""")(1)
else
getattribute = ""
end if
set matches = nothing
set objregex = nothing
end function
function getinnerhtml(byval strhtml)
dim objregex,matches,str
set objregex = new regexp
objregex.pattern = "(\])(.|\n)+?(\[\/ncms\])"
objregex.ignorecase = true
objregex.global = false
set matches = objregex.execute(strhtml)
if matches.count > 0 then
str = trim(matches.item(0).value)
end if
set matches = nothing
if len(str) > 8 then
getinnerhtml = mid(str,2,len(str) - 8)
end if
end function
function parsetag(byval strtag)
dim arrresult,classname,arrattributes,objclass
if len(strtag) = 0 then exit function
arrresult = split(strtag,":")
classname = split(arrresult(1)," ")(0)
select case lcase(classname)
case "news"
set objclass = new ncmsnewstag
if not isnumeric(getattribute("id",strtag)) then
response.write("标签[ncms:news]参数错误!参数[id]必须是数字!")
response.end()
end if
objclass.id = getattribute("id",strtag)
if not isnumeric(getattribute("num",strtag)) then
response.write("标签[ncms:news]参数错误!参数[num]必须是数字!")
response.end()
end if
objclass.num = getattribute("num",strtag)
if not isnumeric(getattribute("len",strtag)) then
response.write("标签[ncms:news]参数错误!参数[len]必须是数字!")
response.end()
end if
objclass.len = getattribute("len",strtag)
objclass.show = getattribute("show",strtag)
if getattribute("lih",strtag) <> "" and not isnumeric(getattribute("lih",strtag)) then
response.write("标签[ncms:news]参数错误!参数[lih]必须是数字!")
response.end()
end if
objclass.lih = getattribute("lih",strtag)
if getattribute("imgw",strtag) <> "" and not isnumeric(getattribute("imgw",strtag)) then
response.write("标签[ncms:news]参数错误!参数[imgw]必须是数字!")
response.end()
end if
objclass.imgw = getattribute("imgw",strtag)
if getattribute("imgh",strtag) <> "" and not isnumeric(getattribute("imgh",strtag)) then
response.write("标签[ncms:news]参数错误!参数[imgh]必须是数字!")
response.end()
end if
objclass.imgh = getattribute("imgh",strtag)
if getattribute("tgt",strtag) <> "" and getattribute("tgt",strtag) <> "blank" then
response.write("标签[ncms:news]参数错误!参数[tgt]必须是[<font color=""red"">blank</font>]!")
response.end()
end if
objclass.tgt = getattribute("tgt",strtag)
if getattribute("hit",strtag) <> "" and not isnumeric(getattribute("hit",strtag)) then
response.write("标签[ncms:free]参数错误!参数[hit]必须是数字!")
response.end()
end if
objclass.hit = getattribute("hit",strtag)
if not isnumeric(getattribute("col",strtag)) then
response.write("标签[ncms:news]参数错误!参数[col]必须是数字!")
response.end()
end if
parsetag = objclass.newsshow(getattribute("ty",strtag),getattribute("col",strtag))
set objclass = nothing
case "free"
set objclass = new x_ncmsnewstag
if not isnumeric(getattribute("id",strtag)) then
response.write("标签[ncms:free]参数错误!参数[id]必须是数字!")
response.end()
end if
objclass.id = getattribute("id",strtag)
if not isnumeric(getattribute("num",strtag)) then
response.write("标签[ncms:free]参数错误!参数[num]必须是数字!")
response.end()
end if
objclass.num = getattribute("num",strtag)
if not isnumeric(getattribute("len",strtag)) then
response.write("标签[news:free]参数错误!参数[len]必须是数字!")
response.end()
end if
objclass.len = getattribute("len",strtag)
objclass.show = getattribute("show",strtag)
if getattribute("lih",strtag) <> "" and not isnumeric(getattribute("lih",strtag)) then
response.write("标签[ncms:free]参数错误!参数[lih]必须是数字!")
response.end()
end if
objclass.lih = getattribute("lih",strtag)
if getattribute("hit",strtag) <> "" and not isnumeric(getattribute("hit",strtag)) then
response.write("标签[ncms:free]参数错误!参数[hit]必须是数字!")
response.end()
end if
objclass.hit = getattribute("hit",strtag)
if not isnumeric(getattribute("col",strtag)) then
response.write("标签[ncms:free]参数错误!参数[col]必须是数字!")
response.end()
end if
parsetag = objclass.newsshow(getattribute("ty",strtag),getattribute("col",strtag),getinnerhtml(strtag))
case "menu"
set objclass = new ncmsmenutag
parsetag = objclass.menushow(getattribute("show",strtag))
set objclass = nothing
case "info"
set objclass = new ncmsinfotag
if not isnumeric(getattribute("num",strtag)) then
response.write("标签[ncms:info]参数错误!参数[num]必须是数字!")
response.end()
end if
objclass.num = getattribute("num",strtag)
if not isnumeric(getattribute("len",strtag)) then
response.write("标签[ncms:info]参数错误!参数[len]必须是数字!")
response.end()
end if
objclass.len = getattribute("len",strtag)
parsetag = objclass.infoshow()
set objclass = nothing
case "head"
set objclass = new ncmsheadtag
if not isnumeric(getattribute("num",strtag)) then
response.write("标签[ncms:head]参数错误!参数[num]必须是数字!")
response.end()
elseif getattribute("num",strtag) > 6 then
response.write("标签[ncms:head]参数错误!参数[num]在[1-6]之间!")
response.end()
end if
objclass.num = getattribute("num",strtag)
if not isnumeric(getattribute("len",strtag)) then
response.write("标签[ncms:head]参数错误!参数[len]必须是数字!")
response.end()
end if
objclass.len = getattribute("len",strtag)
if getattribute("imgw",strtag) <> "" and not isnumeric(getattribute("imgw",strtag)) then
response.write("标签[ncms:head]参数错误!参数[imgw]必须是数字!")
response.end()
end if
objclass.imgw = getattribute("imgw",strtag)
if getattribute("imgh",strtag) <> "" and not isnumeric(getattribute("imgh",strtag)) then
response.write("标签[ncms:head]参数错误!参数[imgh]必须是数字!")
response.end()
end if
objclass.imgh = getattribute("imgh",strtag)
if getattribute("size",strtag) <> "" and not isnumeric(getattribute("size",strtag)) then
response.write("标签[ncms:head]参数错误!参数[size]必须是数字!")
response.end()
end if
objclass.size = getattribute("size",strtag)
parsetag = objclass.headshow(getattribute("ty",strtag))
set objclass = nothing
case "link"
set objclass = new ncmslinktag
if not isnumeric(getattribute("num",strtag)) then
response.write("标签[ncms:link]参数错误!参数[num]必须是数字!")
response.end()
end if
objclass.num = getattribute("num",strtag)
if not isnumeric(getattribute("col",strtag)) then
response.write("标签[ncms:link]参数错误!参数[col]必须是数字!")
response.end()
end if
parsetag = objclass.linkshow(getattribute("ty",strtag),getattribute("col",strtag))
set objclass = nothing
case else
response.write("标签[ncms:xxx]构造错误!")
response.end()
end select
end function
function parseclasstag(byval strtag,byval classid,byval indexid,byval pagestr)
dim arrresult,classname,arrattributes,objclass
if len(strtag) = 0 then exit function
arrresult = split(strtag,":")
classname = split(arrresult(1)," ")(0)
select case lcase(classname)
case "list"
set objclass = new ncmsclasstag
if not isnumeric(getattribute("len",strtag)) then
response.write("标签[news:list]参数错误!参数[len]必须是数字!")
response.end()
end if
objclass.len = getattribute("len",strtag)
objclass.order = getattribute("order",strtag)
if getattribute("lih",strtag) <> "" and not isnumeric(getattribute("lih",strtag)) then
response.write("标签[news:list]参数错误!参数[lih]必须是数字!")
response.end()
end if
objclass.lih = getattribute("lih",strtag)
if not isnumeric(getattribute("col",strtag)) then
response.write("标签[news:list]参数错误!参数[col]必须是数字!")
response.end()
end if
parseclasstag = objclass.classshow(getattribute("ty",strtag),getattribute("col",strtag),classid,indexid,pagestr)
set objclass = nothing
case else
response.write("标签[news:xxxx]构造错误!")
response.end()
end select
end function
function parsenewstag(byval strtag,byval classid,byval newsid,byval keywords)
dim arrresult,classname,arrattributes,objclass
if len(strtag) = 0 then exit function
arrresult = split(strtag,":")
classname = split(arrresult(1)," ")(0)
select case lcase(classname)
case "relate"
set objclass = new ncmsrelatetag
if not isnumeric(getattribute("num",strtag)) then
response.write("标签[news:relate]参数错误!参数[num]必须是数字!")
response.end()
end if
objclass.num = getattribute("num",strtag)
if not isnumeric(getattribute("len",strtag)) then
response.write("标签[news:relate]参数错误!参数[len]必须是数字!")
response.end()
end if
objclass.len = getattribute("len",strtag)
if getattribute("lih",strtag) <> "" and not isnumeric(getattribute("lih",strtag)) then
response.write("标签[news:relate]参数错误!参数[lih]必须是数字!")
response.end()
end if
objclass.lih = getattribute("lih",strtag)
if not isnumeric(getattribute("col",strtag)) then
response.write("标签[news:relate]参数错误!参数[col]必须是数字!")
response.end()
end if
parsenewstag = objclass.relateshow(getattribute("col",strtag),classid,newsid,keywords)
set objclass = nothing
case "page"
set objclass = new ncmspagetag
parsenewstag = objclass.pageshow(getattribute("show",strtag),classid,newsid)
set objclass = nothing
case else
response.write("标签[news:xxxx]构造错误!")
response.end()
end select
end function
function getcurclasscount(classid)
dim rs,curclasscount
set rs = conn.execute("select count(*) from ncms_news where classid in(" & classid & allchildclass(classid) & ")")
if instr(rs(0)/n_listnum,".") <> 0 then
curclasscount = fix(rs(0)/n_listnum) + 1
else
curclasscount = rs(0)/n_listnum
end if
rs.close:set rs = nothing
getcurclasscount = curclasscount
end function
class ncmsclasstag
public ty,len,order,lih
public function classshow(stype,scolumn,classid,indexid,pagestr)
dim temphtm,xsql,rs,sql,databox,l,obox
temphtm = "" & chr(10) & "<table cellpadding=""0"" cellspacing=""0"" width=""100%"" border=""0"">" & chr(10)
temphtm = temphtm & "<tr>" & chr(10)
if indexid = "" or indexid = 0 then
indexid = 1
end if
select case stype
case "text"
set rs = server.createobject("adodb.recordset")
if order = "desc" then
sql = "select classid,title,click,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and created=1 and pagetype=0 order by id desc"
elseif order = "asc" then
sql = "select classid,title,click,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and created=1 and pagetype=0 order by id asc"
else
response.write("标签[news:list]参数[order]错误!")
response.end()
end if
rs.cursorlocation = 3
rs.open sql,conn,1,3
if rs.eof then
rs.close:set rs = nothing
temphtm = "<li><font color=""red"">暂时没有新闻!</font></li>"
classshow = temphtm
exit function
end if
rs.pagesize = n_listnum
rs.absolutepage = indexid
for l = 1 to rs.pagesize
if rs.eof then exit for
temphtm = temphtm & "<td height=""" & lih & """ align=""left"" valign=""middle"">·<a href=""" & site_root & "/" & site_html & "/" & getclasspath(rs("classid")) & "/" & rs("filename") & site_extname & """ title=""" & rs("title") & """>" & gottopic(rs("title"),len) & "</a></td>" & chr(10)
temphtm = temphtm & "<td height=""" & lih & """ align=""center"" valign=""middle"">" & rs("click") & "</td>" & chr(10)
temphtm = temphtm & "<td height=""" & lih & """ align=""center"" valign=""middle"">" & rs("addtime") & "</td>" & chr(10)
if l = rs.pagesize then
temphtm = temphtm & "</tr>" & chr(10)
else
if cint(l mod scolumn) = 0 then
temphtm = temphtm & "</tr>" & chr(10)
temphtm = temphtm & "<tr>" & chr(10)
end if
end if
rs.movenext
next
rs.close:set rs = nothing
temphtm = temphtm & "</table>" & chr(10)
classshow = temphtm & pagestr
case "image"
if isobjinstalled("persits.jpeg") = true and jpeg_gate = 0 then
set rs = server.createobject("adodb.recordset")
if order = "desc" then
sql = "select classid,title,bimg,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and isimg=1 and created=1 and pagetype=0 order by id desc"
elseif order = "asc" then
sql = "select classid,title,bimg,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and isimg=1 and created=1 and pagetype=0 order by id asc"
else
response.write("标签[news:list]参数[order]错误!")
response.end()
end if
rs.cursorlocation = 3
rs.open sql,conn,1,3
if rs.eof then
rs.close:set rs = nothing
temphtm = "<li><font color=""red"">暂时没有新闻!</font></li>"
classshow = temphtm
exit function
end if
rs.pagesize = n_listnum
rs.absolutepage = indexid
for l = 1 to rs.pagesize
if rs.eof then exit for
temphtm = temphtm & "<td><div id=""simg""><a href=""" & site_root & "/" & site_html & "/" & getclasspath(rs("classid")) & "/" & rs("filename") & site_extname & """><img height=""" & jpeg_height & """ src=""" & site_root & "/" & site_upload & "/" & site_simg & "/" & rs("bimg") & """ width=""" & jpeg_width & """ alt=""" & rs("title") & """ /></a></div></td>" & chr(10)
if l = rs.pagesize then
temphtm = temphtm & "</tr>" & chr(10)
else
if cint(l mod scolumn) = 0 then
temphtm = temphtm & "</tr>" & chr(10)
temphtm = temphtm & "<tr>" & chr(10)
end if
end if
if checkfile("" & site_root & "/" & site_upload & "/" & site_bimg & "/" & rs("bimg") & "") = true then
set obox = server.createobject("persits.jpeg")
obox.open server.mappath("" & site_root & "/" & site_upload & "/" & site_bimg & "/" & rs("bimg") & "")
obox.width = jpeg_width
obox.height = jpeg_height
obox.save server.mappath("" & site_root & "/" & site_upload & "/" & site_simg & "/" & rs("bimg") & "")
set obox = nothing
end if
rs.movenext
next
rs.close:set rs = nothing
temphtm = temphtm & "</table>" & chr(10)
classshow = temphtm & pagestr
else
set rs = server.createobject("adodb.recordset")
if order = "desc" then
sql = "select classid,title,bimg,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and isimg=1 and created=1 and pagetype=0 order by id desc"
elseif order = "asc" then
sql = "select classid,title,bimg,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and isimg=1 and created=1 and pagetype=0 order by id asc"
else
response.write("标签[news:list]参数[order]错误!")
response.end()
end if
rs.cursorlocation = 3
rs.open sql,conn,1,3
if rs.eof then
rs.close:set rs = nothing
temphtm = "<li><font color=""red"">暂时没有新闻!</font></li>"
classshow = temphtm
exit function
end if
rs.pagesize = n_listnum
rs.absolutepage = indexid
for l = 1 to rs.pagesize
if rs.eof then exit for
temphtm = temphtm & "<td><div id=""simg""><a href=""" & site_root & "/" & site_html & "/" & getclasspath(rs("classid")) & "/" & rs("filename") & site_extname & """><img height=""" & jpeg_height & """ src=""" & site_root & "/" & site_upload & "/" & site_bimg & "/" & rs("bimg") & """ width=""" & jpeg_width & """ alt=""" & rs("title") & """ /></a></div></td>" & chr(10)
if l = rs.pagesize then
temphtm = temphtm & "</tr>" & chr(10)
else
if cint(l mod scolumn) = 0 then
temphtm = temphtm & "</tr>" & chr(10)
temphtm = temphtm & "<tr>" & chr(10)
end if
end if
rs.movenext
next
rs.close:set rs = nothing
temphtm = temphtm & "</table>" & chr(10)
classshow = temphtm & pagestr
end if
case else
response.write("标签[news:list]参数[ty]错误!")
response.end()
end select
end function
end class
function loadtempletfile(byval path)
on error resume next
dim objstream
set objstream = server.createobject("adodb.stream")
with objstream
.type = 2
.mode = 3
.open
.loadfromfile server.mappath(path)
if err.number <> 0 then
err.clear
response.write("预加载的模板[" & path & "]不存在!")
response.end()
end if
.charset = "" & chrset & ""
.position = 2
loadtempletfile = .readtext
.close
end with
set objstream = nothing
end function
function movefiles(sfolder,dfolder)
on error resume next
dim fso
set fso = server.createobject("scripting.filesystemobject")
if fso.folderexists(server.mappath(sfolder)) and fso.folderexists(server.mappath(dfolder)) then
fso.copyfolder server.mappath(sfolder),server.mappath(dfolder)
movefiles = true
else
movefiles = false
set fso = nothing
call alertbox("系统没有找到指定的路径[" & sfolder & "]!",2)
end if
set fso = nothing
end function
function renamefolder(sfolder,dfolder)
on error resume next
dim fso
set fso = server.createobject("scripting.filesystemobject")
if fso.folderexists(server.mappath(sfolder)) then
fso.movefolder server.mappath(sfolder),server.mappath(dfolder)
renamefolder = true
else
renamefolder = false
set fso = nothing
call alertbox("系统没有找到指定的路径[" & sfolder & "]!",2)
end if
set fso = nothing
end function
function checkfolder(spath)
on error resume next
dim fso
set fso = server.createobject("scripting.filesystemobject")
if fso.folderexists(server.mappath(spath)) then
checkfolder = true
else
checkfolder = false
end if
set fso = nothing
end function
function checkfile(spath)
on error resume next
dim fso
set fso = server.createobject("scripting.filesystemobject")
if fso.fileexists(server.mappath(spath)) then
checkfile = true
else
checkfile = false
end if
set fso = nothing
end function
function createdir(spath)
dim fso,patharr,i,path_level,pathtmp,cpath
on error resume next
spath = replace(spath,"\","/")
set fso = server.createobject("scripting.filesystemobject")
patharr = split(spath,"/")
path_level = ubound(patharr)
for i = 0 to path_level
if i = 0 then pathtmp = patharr(0) & "/" else pathtmp = pathtmp&patharr(i) & "/"
cpath = left(pathtmp,len(pathtmp)-1)
if not fso.folderexists(cpath) then fso.createfolder(cpath)
next
set fso = nothing
if err.number <> 0 then
err.clear
createdir = false
else
createdir = true
end if
end function
function delclassfolder(spath)
on error resume next
dim fso
set fso = server.createobject("scripting.filesystemobject")
if fso.folderexists(server.mappath(spath)) then
fso.deletefolder(server.mappath(spath))
end if
set fso = nothing
end function
function delnewsfile(spath,filename)
on error resume next
dim fso,temparr,cpath,epath,i:i = 0
set fso = server.createobject("scripting.filesystemobject")
spath = spath & filename & site_extname
if fso.fileexists(server.mappath(spath)) then
fso.deletefile(server.mappath(spath))
while(i <> -1)
i = i + 1
epath = replace(spath,filename & ".",filename & "_" & i + 1 & ".")
if fso.fileexists(server.mappath(epath)) then
fso.deletefile(server.mappath(epath))
else
i = -1
end if
wend
end if
end function
class stringclass
public function getstr(strhtml)
dim patrnstr
patrnstr="<.*?>"
dim objregex
set objregex = new regexp
objregex.pattern = patrnstr
objregex.ignorecase = true
objregex.global = true
getstr = objregex.replace(strhtml,"")
set objregex = nothing
end function
public function replacestr(patrn,mstr,replstr)
dim objregex
set objregex = new regexp
objregex.pattern = patrn
objregex.ignorecase = true
objregex.global = true
replacestr = objregex.replace(mstr,replstr)
set objregex = nothing
end function
public function classcustomtag(byval patrn,byval mstr,byval classid,byval indexid,byval pagestr)
dim objregex,match,matches
set objregex = new regexp
objregex.pattern = patrn
objregex.ignorecase = true
objregex.global = true
set matches = objregex.execute(mstr)
for each match in matches
mstr = replace(mstr,match.value,parseclasstag(match.value,classid,indexid,pagestr))
next
set matches = nothing
set objregex = nothing
classcustomtag = mstr
end function
public function newscustomtag(byval patrn,byval mstr,byval classid,byval newsid,byval keywords)
dim objregex,match,matches
set objregex = new regexp
objregex.pattern = patrn
objregex.ignorecase = true
objregex.global = true
set matches = objregex.execute(mstr)
for each match in matches
mstr = replace(mstr,match.value,parsenewstag(match.value,classid,newsid,keywords))
next
set matches = nothing
set objregex = nothing
newscustomtag = mstr
end function
end class
function processcustomtag(byval scontent)
dim objregex,match,matches
set objregex = new regexp
objregex.pattern = "{ncms:[^<>]+?\/}"
objregex.ignorecase = true
objregex.global = true
set matches = objregex.execute(scontent)
for each match in matches
scontent = replace(scontent,match.value,parsetag(match.value))
next
set matches = nothing
set objregex = nothing
processcustomtag = scontent
end function
function x_processcustomtag(byval scontent)
dim objregex,match,matches
set objregex = new regexp
objregex.pattern = "(\[ncms:).+?(\])(.|\n)+?(\[\/ncms\])"
objregex.ignorecase = true
objregex.global = true
set matches = objregex.execute(scontent)
for each match in matches
scontent = replace(scontent,match.value,parsetag(match.value))
next
set matches = nothing
set objregex = nothing
x_processcustomtag = scontent
end function
function getattribute(byval strattribute,byval strtag)
dim objregex,matches
set objregex = new regexp
objregex.pattern = lcase(strattribute)&"=""[0-9a-za-z]*"""
objregex.ignorecase = true
objregex.global = true
set matches = objregex.execute(strtag)
if matches.count > 0 then
getattribute = split(matches(0).value,"""")(1)
else
getattribute = ""
end if
set matches = nothing
set objregex = nothing
end function
function getinnerhtml(byval strhtml)
dim objregex,matches,str
set objregex = new regexp
objregex.pattern = "(\])(.|\n)+?(\[\/ncms\])"
objregex.ignorecase = true
objregex.global = false
set matches = objregex.execute(strhtml)
if matches.count > 0 then
str = trim(matches.item(0).value)
end if
set matches = nothing
if len(str) > 8 then
getinnerhtml = mid(str,2,len(str) - 8)
end if
end function
function parsetag(byval strtag)
dim arrresult,classname,arrattributes,objclass
if len(strtag) = 0 then exit function
arrresult = split(strtag,":")
classname = split(arrresult(1)," ")(0)
select case lcase(classname)
case "news"
set objclass = new ncmsnewstag
if not isnumeric(getattribute("id",strtag)) then
response.write("标签[ncms:news]参数错误!参数[id]必须是数字!")
response.end()
end if
objclass.id = getattribute("id",strtag)
if not isnumeric(getattribute("num",strtag)) then
response.write("标签[ncms:news]参数错误!参数[num]必须是数字!")
response.end()
end if
objclass.num = getattribute("num",strtag)
if not isnumeric(getattribute("len",strtag)) then
response.write("标签[ncms:news]参数错误!参数[len]必须是数字!")
response.end()
end if
objclass.len = getattribute("len",strtag)
objclass.show = getattribute("show",strtag)
if getattribute("lih",strtag) <> "" and not isnumeric(getattribute("lih",strtag)) then
response.write("标签[ncms:news]参数错误!参数[lih]必须是数字!")
response.end()
end if
objclass.lih = getattribute("lih",strtag)
if getattribute("imgw",strtag) <> "" and not isnumeric(getattribute("imgw",strtag)) then
response.write("标签[ncms:news]参数错误!参数[imgw]必须是数字!")
response.end()
end if
objclass.imgw = getattribute("imgw",strtag)
if getattribute("imgh",strtag) <> "" and not isnumeric(getattribute("imgh",strtag)) then
response.write("标签[ncms:news]参数错误!参数[imgh]必须是数字!")
response.end()
end if
objclass.imgh = getattribute("imgh",strtag)
if getattribute("tgt",strtag) <> "" and getattribute("tgt",strtag) <> "blank" then
response.write("标签[ncms:news]参数错误!参数[tgt]必须是[<font color=""red"">blank</font>]!")
response.end()
end if
objclass.tgt = getattribute("tgt",strtag)
if getattribute("hit",strtag) <> "" and not isnumeric(getattribute("hit",strtag)) then
response.write("标签[ncms:free]参数错误!参数[hit]必须是数字!")
response.end()
end if
objclass.hit = getattribute("hit",strtag)
if not isnumeric(getattribute("col",strtag)) then
response.write("标签[ncms:news]参数错误!参数[col]必须是数字!")
response.end()
end if
parsetag = objclass.newsshow(getattribute("ty",strtag),getattribute("col",strtag))
set objclass = nothing
case "free"
set objclass = new x_ncmsnewstag
if not isnumeric(getattribute("id",strtag)) then
response.write("标签[ncms:free]参数错误!参数[id]必须是数字!")
response.end()
end if
objclass.id = getattribute("id",strtag)
if not isnumeric(getattribute("num",strtag)) then
response.write("标签[ncms:free]参数错误!参数[num]必须是数字!")
response.end()
end if
objclass.num = getattribute("num",strtag)
if not isnumeric(getattribute("len",strtag)) then
response.write("标签[news:free]参数错误!参数[len]必须是数字!")
response.end()
end if
objclass.len = getattribute("len",strtag)
objclass.show = getattribute("show",strtag)
if getattribute("lih",strtag) <> "" and not isnumeric(getattribute("lih",strtag)) then
response.write("标签[ncms:free]参数错误!参数[lih]必须是数字!")
response.end()
end if
objclass.lih = getattribute("lih",strtag)
if getattribute("hit",strtag) <> "" and not isnumeric(getattribute("hit",strtag)) then
response.write("标签[ncms:free]参数错误!参数[hit]必须是数字!")
response.end()
end if
objclass.hit = getattribute("hit",strtag)
if not isnumeric(getattribute("col",strtag)) then
response.write("标签[ncms:free]参数错误!参数[col]必须是数字!")
response.end()
end if
parsetag = objclass.newsshow(getattribute("ty",strtag),getattribute("col",strtag),getinnerhtml(strtag))
case "menu"
set objclass = new ncmsmenutag
parsetag = objclass.menushow(getattribute("show",strtag))
set objclass = nothing
case "info"
set objclass = new ncmsinfotag
if not isnumeric(getattribute("num",strtag)) then
response.write("标签[ncms:info]参数错误!参数[num]必须是数字!")
response.end()
end if
objclass.num = getattribute("num",strtag)
if not isnumeric(getattribute("len",strtag)) then
response.write("标签[ncms:info]参数错误!参数[len]必须是数字!")
response.end()
end if
objclass.len = getattribute("len",strtag)
parsetag = objclass.infoshow()
set objclass = nothing
case "head"
set objclass = new ncmsheadtag
if not isnumeric(getattribute("num",strtag)) then
response.write("标签[ncms:head]参数错误!参数[num]必须是数字!")
response.end()
elseif getattribute("num",strtag) > 6 then
response.write("标签[ncms:head]参数错误!参数[num]在[1-6]之间!")
response.end()
end if
objclass.num = getattribute("num",strtag)
if not isnumeric(getattribute("len",strtag)) then
response.write("标签[ncms:head]参数错误!参数[len]必须是数字!")
response.end()
end if
objclass.len = getattribute("len",strtag)
if getattribute("imgw",strtag) <> "" and not isnumeric(getattribute("imgw",strtag)) then
response.write("标签[ncms:head]参数错误!参数[imgw]必须是数字!")
response.end()
end if
objclass.imgw = getattribute("imgw",strtag)
if getattribute("imgh",strtag) <> "" and not isnumeric(getattribute("imgh",strtag)) then
response.write("标签[ncms:head]参数错误!参数[imgh]必须是数字!")
response.end()
end if
objclass.imgh = getattribute("imgh",strtag)
if getattribute("size",strtag) <> "" and not isnumeric(getattribute("size",strtag)) then
response.write("标签[ncms:head]参数错误!参数[size]必须是数字!")
response.end()
end if
objclass.size = getattribute("size",strtag)
parsetag = objclass.headshow(getattribute("ty",strtag))
set objclass = nothing
case "link"
set objclass = new ncmslinktag
if not isnumeric(getattribute("num",strtag)) then
response.write("标签[ncms:link]参数错误!参数[num]必须是数字!")
response.end()
end if
objclass.num = getattribute("num",strtag)
if not isnumeric(getattribute("col",strtag)) then
response.write("标签[ncms:link]参数错误!参数[col]必须是数字!")
response.end()
end if
parsetag = objclass.linkshow(getattribute("ty",strtag),getattribute("col",strtag))
set objclass = nothing
case else
response.write("标签[ncms:xxx]构造错误!")
response.end()
end select
end function
function parseclasstag(byval strtag,byval classid,byval indexid,byval pagestr)
dim arrresult,classname,arrattributes,objclass
if len(strtag) = 0 then exit function
arrresult = split(strtag,":")
classname = split(arrresult(1)," ")(0)
select case lcase(classname)
case "list"
set objclass = new ncmsclasstag
if not isnumeric(getattribute("len",strtag)) then
response.write("标签[news:list]参数错误!参数[len]必须是数字!")
response.end()
end if
objclass.len = getattribute("len",strtag)
objclass.order = getattribute("order",strtag)
if getattribute("lih",strtag) <> "" and not isnumeric(getattribute("lih",strtag)) then
response.write("标签[news:list]参数错误!参数[lih]必须是数字!")
response.end()
end if
objclass.lih = getattribute("lih",strtag)
if not isnumeric(getattribute("col",strtag)) then
response.write("标签[news:list]参数错误!参数[col]必须是数字!")
response.end()
end if
parseclasstag = objclass.classshow(getattribute("ty",strtag),getattribute("col",strtag),classid,indexid,pagestr)
set objclass = nothing
case else
response.write("标签[news:xxxx]构造错误!")
response.end()
end select
end function
function parsenewstag(byval strtag,byval classid,byval newsid,byval keywords)
dim arrresult,classname,arrattributes,objclass
if len(strtag) = 0 then exit function
arrresult = split(strtag,":")
classname = split(arrresult(1)," ")(0)
select case lcase(classname)
case "relate"
set objclass = new ncmsrelatetag
if not isnumeric(getattribute("num",strtag)) then
response.write("标签[news:relate]参数错误!参数[num]必须是数字!")
response.end()
end if
objclass.num = getattribute("num",strtag)
if not isnumeric(getattribute("len",strtag)) then
response.write("标签[news:relate]参数错误!参数[len]必须是数字!")
response.end()
end if
objclass.len = getattribute("len",strtag)
if getattribute("lih",strtag) <> "" and not isnumeric(getattribute("lih",strtag)) then
response.write("标签[news:relate]参数错误!参数[lih]必须是数字!")
response.end()
end if
objclass.lih = getattribute("lih",strtag)
if not isnumeric(getattribute("col",strtag)) then
response.write("标签[news:relate]参数错误!参数[col]必须是数字!")
response.end()
end if
parsenewstag = objclass.relateshow(getattribute("col",strtag),classid,newsid,keywords)
set objclass = nothing
case "page"
set objclass = new ncmspagetag
parsenewstag = objclass.pageshow(getattribute("show",strtag),classid,newsid)
set objclass = nothing
case else
response.write("标签[news:xxxx]构造错误!")
response.end()
end select
end function
function getcurclasscount(classid)
dim rs,curclasscount
set rs = conn.execute("select count(*) from ncms_news where classid in(" & classid & allchildclass(classid) & ")")
if instr(rs(0)/n_listnum,".") <> 0 then
curclasscount = fix(rs(0)/n_listnum) + 1
else
curclasscount = rs(0)/n_listnum
end if
rs.close:set rs = nothing
getcurclasscount = curclasscount
end function
class ncmsclasstag
public ty,len,order,lih
public function classshow(stype,scolumn,classid,indexid,pagestr)
dim temphtm,xsql,rs,sql,databox,l,obox
temphtm = "" & chr(10) & "<table cellpadding=""0"" cellspacing=""0"" width=""100%"" border=""0"">" & chr(10)
temphtm = temphtm & "<tr>" & chr(10)
if indexid = "" or indexid = 0 then
indexid = 1
end if
select case stype
case "text"
set rs = server.createobject("adodb.recordset")
if order = "desc" then
sql = "select classid,title,click,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and created=1 and pagetype=0 order by id desc"
elseif order = "asc" then
sql = "select classid,title,click,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and created=1 and pagetype=0 order by id asc"
else
response.write("标签[news:list]参数[order]错误!")
response.end()
end if
rs.cursorlocation = 3
rs.open sql,conn,1,3
if rs.eof then
rs.close:set rs = nothing
temphtm = "<li><font color=""red"">暂时没有新闻!</font></li>"
classshow = temphtm
exit function
end if
rs.pagesize = n_listnum
rs.absolutepage = indexid
for l = 1 to rs.pagesize
if rs.eof then exit for
temphtm = temphtm & "<td height=""" & lih & """ align=""left"" valign=""middle"">·<a href=""" & site_root & "/" & site_html & "/" & getclasspath(rs("classid")) & "/" & rs("filename") & site_extname & """ title=""" & rs("title") & """>" & gottopic(rs("title"),len) & "</a></td>" & chr(10)
temphtm = temphtm & "<td height=""" & lih & """ align=""center"" valign=""middle"">" & rs("click") & "</td>" & chr(10)
temphtm = temphtm & "<td height=""" & lih & """ align=""center"" valign=""middle"">" & rs("addtime") & "</td>" & chr(10)
if l = rs.pagesize then
temphtm = temphtm & "</tr>" & chr(10)
else
if cint(l mod scolumn) = 0 then
temphtm = temphtm & "</tr>" & chr(10)
temphtm = temphtm & "<tr>" & chr(10)
end if
end if
rs.movenext
next
rs.close:set rs = nothing
temphtm = temphtm & "</table>" & chr(10)
classshow = temphtm & pagestr
case "image"
if isobjinstalled("persits.jpeg") = true and jpeg_gate = 0 then
set rs = server.createobject("adodb.recordset")
if order = "desc" then
sql = "select classid,title,bimg,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and isimg=1 and created=1 and pagetype=0 order by id desc"
elseif order = "asc" then
sql = "select classid,title,bimg,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and isimg=1 and created=1 and pagetype=0 order by id asc"
else
response.write("标签[news:list]参数[order]错误!")
response.end()
end if
rs.cursorlocation = 3
rs.open sql,conn,1,3
if rs.eof then
rs.close:set rs = nothing
temphtm = "<li><font color=""red"">暂时没有新闻!</font></li>"
classshow = temphtm
exit function
end if
rs.pagesize = n_listnum
rs.absolutepage = indexid
for l = 1 to rs.pagesize
if rs.eof then exit for
temphtm = temphtm & "<td><div id=""simg""><a href=""" & site_root & "/" & site_html & "/" & getclasspath(rs("classid")) & "/" & rs("filename") & site_extname & """><img height=""" & jpeg_height & """ src=""" & site_root & "/" & site_upload & "/" & site_simg & "/" & rs("bimg") & """ width=""" & jpeg_width & """ alt=""" & rs("title") & """ /></a></div></td>" & chr(10)
if l = rs.pagesize then
temphtm = temphtm & "</tr>" & chr(10)
else
if cint(l mod scolumn) = 0 then
temphtm = temphtm & "</tr>" & chr(10)
temphtm = temphtm & "<tr>" & chr(10)
end if
end if
if checkfile("" & site_root & "/" & site_upload & "/" & site_bimg & "/" & rs("bimg") & "") = true then
set obox = server.createobject("persits.jpeg")
obox.open server.mappath("" & site_root & "/" & site_upload & "/" & site_bimg & "/" & rs("bimg") & "")
obox.width = jpeg_width
obox.height = jpeg_height
obox.save server.mappath("" & site_root & "/" & site_upload & "/" & site_simg & "/" & rs("bimg") & "")
set obox = nothing
end if
rs.movenext
next
rs.close:set rs = nothing
temphtm = temphtm & "</table>" & chr(10)
classshow = temphtm & pagestr
else
set rs = server.createobject("adodb.recordset")
if order = "desc" then
sql = "select classid,title,bimg,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and isimg=1 and created=1 and pagetype=0 order by id desc"
elseif order = "asc" then
sql = "select classid,title,bimg,filename,addtime from ncms_news where classid in(" & classid & allchildclass(classid) & ") and isimg=1 and created=1 and pagetype=0 order by id asc"
else
response.write("标签[news:list]参数[order]错误!")
response.end()
end if
rs.cursorlocation = 3
rs.open sql,conn,1,3
if rs.eof then
rs.close:set rs = nothing
temphtm = "<li><font color=""red"">暂时没有新闻!</font></li>"
classshow = temphtm
exit function
end if
rs.pagesize = n_listnum
rs.absolutepage = indexid
for l = 1 to rs.pagesize
if rs.eof then exit for
temphtm = temphtm & "<td><div id=""simg""><a href=""" & site_root & "/" & site_html & "/" & getclasspath(rs("classid")) & "/" & rs("filename") & site_extname & """><img height=""" & jpeg_height & """ src=""" & site_root & "/" & site_upload & "/" & site_bimg & "/" & rs("bimg") & """ width=""" & jpeg_width & """ alt=""" & rs("title") & """ /></a></div></td>" & chr(10)
if l = rs.pagesize then
temphtm = temphtm & "</tr>" & chr(10)
else
if cint(l mod scolumn) = 0 then
temphtm = temphtm & "</tr>" & chr(10)
temphtm = temphtm & "<tr>" & chr(10)
end if
end if
rs.movenext
next
rs.close:set rs = nothing
temphtm = temphtm & "</table>" & chr(10)
classshow = temphtm & pagestr
end if
case else
response.write("标签[news:list]参数[ty]错误!")
response.end()
end select
end function
end class
1