cache.asp

来自「ZD-BS是一个基于asp+access的个人blog系统 程序特点: 1.」· ASP 代码 · 共 352 行

ASP
352
字号
<script language="JScript" runat="server">

//============================================================
// Copyright 2006 VAL/ZYI. All Rights Reserved.
//============================================================

function CacheClass(){
	
//attributes

	//the error mark
	this.bError=false;

	//the Load counter
	this.loadCount=0;

	//Application for the blog cache
	this.setting=new Array();
	this.area=new Array();
	this.keyword=new Array();
	this.archive=new Array();
	this.page=new Array();
	this.category=new Array();
	this.newArticle=new Array();
	this.newComment=new Array();
	this.blogroll=new Array();
	this.counter=new Array();

//methods

	this.reload=function(bLoad){
		Application.Contents.RemoveAll();
		if(bLoad) this.getAll();
	};

	this.getAll=function(bAll){
		this.getSetting();
		this.getArea();
		if(bAll){
			this.getKeyword();
			this.getArchive();
			this.getPage();
			this.getCategory();
			this.getNewArticle();
			this.getNewComment();
			this.getBlogroll();
			this.getCounter();
		}	
	};

	this.getSetting=function(){
		var arrApp=func.loadApp(zd_nameSpace+"setting");
		if(arrApp==undefined){
			this.loadSetting();
			arrApp=func.loadApp(zd_nameSpace+"setting");
		}
		if(arrApp==0){
			this.setting=null;
			this.bError=true;
		}else{
			for(var i=0;i<=arrApp.ubound(2);i++){
				switch(arrApp.getItem(1,i)){
					case "int":
					this.setting[arrApp.getItem(0,i)]=func.checkInt(arrApp.getItem(2,i));
					break;
					case "boolean":
					this.setting[arrApp.getItem(0,i)]=func.checkInt(arrApp.getItem(2,i))==1?true:false;
					break;
					case "date":
					this.setting[arrApp.getItem(0,i)]=func.getDate(arrApp.getItem(2,i));
					break;
					case "string":
					this.setting[arrApp.getItem(0,i)]=arrApp.getItem(2,i);
					break;
					default:
					this.setting[arrApp.getItem(0,i)]=null;
					break;
				}
			}
		}
	};

	this.loadSetting=function(){
		var strQuery="SELECT set_name,set_mode,set_value FROM zd_setting WHERE set_type='option'";
		var arrVBArray=dbConn.query(strQuery,undefined,undefined,true);
		func.saveApp(zd_nameSpace+"setting",arrVBArray==null?0:arrVBArray);
		this.loadCount++;
	};

	this.getArea=function(){
		var arrApp=func.loadApp(zd_nameSpace+"area");
		if(arrApp==undefined){
			this.loadArea();
			arrApp=func.loadApp(zd_nameSpace+"area");
		}
		if(arrApp==0){
			this.area=null;
		}else{
			for(var i=0;i<=arrApp.ubound(2);i++){
				this.area[i]={
					"ID":arrApp.getItem(0,i),
					"title":arrApp.getItem(1,i),
					"content":arrApp.getItem(2,i),
					"order":arrApp.getItem(3,i),
					"state":arrApp.getItem(4,i)
				};
			}
		}
	};

	this.loadArea=function(){
		var strQuery="SELECT cat_ID,cat_name,cat_describe,cat_order,cat_state FROM zd_category WHERE cat_type='area' ORDER BY cat_order ASC";
		var arrVBArray=dbConn.query(strQuery,undefined,undefined,true);
		func.saveApp(zd_nameSpace+"area",arrVBArray==null?0:arrVBArray);
		this.loadCount++;
	};

	this.getKeyword=function(){
		var arrApp=func.loadApp(zd_nameSpace+"keyword");
		if(arrApp==undefined){
			this.loadKeyword();
			arrApp=func.loadApp(zd_nameSpace+"keyword");
		}
		if(arrApp==0){
			this.keyword=null;
		}else{
			for(var i=0;i<=arrApp.ubound(2);i++){
				this.keyword[i]={
					"name":arrApp.getItem(0,i),
					"URL":arrApp.getItem(1,i),
					"describe":arrApp.getItem(2,i)
				};
			}
		}
	};

	this.loadKeyword=function(){
		var strQuery="SELECT link_name,link_URL,link_describe FROM zd_link WHERE link_type='keyword'";
		var arrVBArray=dbConn.query(strQuery,undefined,undefined,true);
		func.saveApp(zd_nameSpace+"keyword",arrVBArray==null?0:arrVBArray);
		this.loadCount++;
	};

	this.getArchive=function(){
		var arrApp=func.loadApp(zd_nameSpace+"archive");
		if(arrApp==undefined){
			this.loadArchive();
			arrApp=func.loadApp(zd_nameSpace+"archive");
		}
		if(arrApp==0){
			this.archive=null;
		}else{
			for(var i=0;i<=arrApp.ubound(2);i++){
				this.archive[i]={
					"yyyy":arrApp.getItem(0,i),
					"mm":arrApp.getItem(1,i)
				};
			}
		}
	};

	this.loadArchive=function(){
		var strQuery="SELECT DISTINCT YEAR(post_postTime) AS yyyy,MONTH(post_postTime) AS mm FROM zd_post WHERE post_type='article' AND post_state<>'draft'";
		var arrVBArray=dbConn.query(strQuery,undefined,undefined,true);
		func.saveApp(zd_nameSpace+"archive",arrVBArray==null?0:arrVBArray);
		this.loadCount++;
	};

	this.getPage=function(){
		var arrApp=func.loadApp(zd_nameSpace+"page");
		if(arrApp==undefined){
			this.loadPage();
			arrApp=func.loadApp(zd_nameSpace+"page");
		}
		if(arrApp==0){
			this.page=null;
		}else{
			for(var i=0;i<=arrApp.ubound(2);i++){
				this.page[i]={
					"ID":arrApp.getItem(0,i),
					"title":arrApp.getItem(1,i),
					"order":arrApp.getItem(2,i)
				};
			}
		}
	};

	this.loadPage=function(){
		var strQuery="SELECT post_ID,post_title,post_catID FROM zd_post WHERE post_type='page' AND post_state='normal' ORDER BY post_catID ASC";
		var arrVBArray=dbConn.query(strQuery,undefined,undefined,true);
		func.saveApp(zd_nameSpace+"page",arrVBArray==null?0:arrVBArray);
		this.loadCount++;
	};

	this.getCategory=function(){
		var arrApp=func.loadApp(zd_nameSpace+"category");
		if(arrApp==undefined){
			this.loadCategory();
			arrApp=func.loadApp(zd_nameSpace+"category");
		}
		if(arrApp==0){
			this.category=null;
		}else{
			for(var i=0;i<=arrApp.ubound(2);i++){
				this.category[i]={
					"articleCount":arrApp.getItem(0,i),
					"ID":arrApp.getItem(1,i),
					"name":arrApp.getItem(2,i),
					"describe":arrApp.getItem(3,i),
					"state":arrApp.getItem(4,i)
				};
			}
		}
	};

	this.loadCategory=function(){
		var arrVBArray=dbConn.query("SELECT (select count(post_ID) FROM zd_post WHERE post_catID=cat_ID AND post_type='article' AND post_state<>'draft') as logCount,cat_ID,cat_name,cat_describe,cat_state FROM zd_category WHERE cat_type='category' ORDER BY cat_order ASC",undefined,undefined,true);
		func.saveApp(zd_nameSpace+"category",arrVBArray==null?0:arrVBArray);
		this.loadCount++;
	};

	this.getNewArticle=function(){
		var arrApp=func.loadApp(zd_nameSpace+"newArticle");
		if(arrApp==undefined){
			this.loadNewArticle();
			arrApp=func.loadApp(zd_nameSpace+"newArticle");
		}
		if(arrApp==0){
			this.newArticle=null;
		}else{
			for(var i=0;i<=arrApp.ubound(2);i++){
				this.newArticle[i]={
					"categoryState":arrApp.getItem(0,i),
					"ID":arrApp.getItem(1,i),
					"title":arrApp.getItem(2,i),
					"authorID":arrApp.getItem(3,i),
					"state":arrApp.getItem(4,i)
				};
			}
		}
	};

	this.loadNewArticle=function(){
		var intCount=dbConn.query("select top 1 set_value from zd_setting where set_name='cacheArticleCount'");
		intCount=func.checkInt(intCount[0]["set_value"]);
		var strQuery="SELECT TOP "+intCount+" ";
		strQuery+="cat_state,post_ID,post_title,post_authorID,post_state ";
		strQuery+="FROM zd_post,zd_category ";
		strQuery+="WHERE post_catID=cat_ID AND post_type='article' AND post_state<>'draft' ";
		strQuery+="ORDER BY post_postTime DESC";
		var arrVBArray=dbConn.query(strQuery,undefined,undefined,true);
		func.saveApp(zd_nameSpace+"newArticle",arrVBArray==null?0:arrVBArray);
		this.loadCount++;
	};

	this.getNewComment=function(){
		var arrApp=func.loadApp(zd_nameSpace+"newComment");
		if(arrApp==undefined){
			this.loadNewComment();
			arrApp=func.loadApp(zd_nameSpace+"newComment");
		}
		if(arrApp==0){
			this.newComment=null;
		}else{
			for(var i=0;i<=arrApp.ubound(2);i++){
				this.newComment[i]={
					"categoryState":arrApp.getItem(0,i),
					"articleState":arrApp.getItem(1,i),
					"articleAuthorID":arrApp.getItem(2,i),
					"ID":arrApp.getItem(3,i),
					"articleID":arrApp.getItem(4,i),
					"content":arrApp.getItem(5,i),
					"authorID":arrApp.getItem(6,i),
					"authorName":arrApp.getItem(7,i)
				};
			}
		}
	};

	this.loadNewComment=function(){
		var intCount=dbConn.query("select top 1 set_value from zd_setting where set_name='cacheCommentCount'");
		intCount=func.checkInt(intCount[0]["set_value"]);
		var strQuery="SELECT TOP "+intCount+" ";
		strQuery+="cat_state,post_state,post_authorID,comm_ID,comm_postID,comm_content,comm_authorID,comm_authorName ";
		strQuery+="FROM zd_comment,zd_post,zd_category ";
		strQuery+="WHERE comm_postID=post_ID AND post_catID=cat_ID AND comm_type='comment' AND comm_state='publish' ";
		strQuery+="ORDER BY comm_postTime DESC";
		var arrVBArray=dbConn.query(strQuery,undefined,undefined,true);
		func.saveApp(zd_nameSpace+"newComment",arrVBArray==null?0:arrVBArray);
		this.loadCount++;
	};

	this.getBlogroll=function(){
		var arrApp=func.loadApp(zd_nameSpace+"blogroll");
		if(arrApp==undefined){
			this.loadBlogroll();
			arrApp=func.loadApp(zd_nameSpace+"blogroll");
		}
		if(arrApp==0){
			this.bogroll=null;
		}else{
			for(var i=0;i<=arrApp.ubound(2);i++){
				this.blogroll[i]={
					"name":arrApp.getItem(0,i),
					"URL":arrApp.getItem(1,i),
					"describe":arrApp.getItem(2,i),
					"state":arrApp.getItem(3,i)
				};
			}
		}
	};

	this.loadBlogroll=function(){
		var strQuery="SELECT link_name,link_URL,link_describe,link_state FROM zd_link WHERE link_type='blogroll' ORDER BY link_order ASC";
		var arrVBArray=dbConn.query(strQuery,undefined,undefined,true);
		func.saveApp(zd_nameSpace+"blogroll",arrVBArray==null?0:arrVBArray);
		this.loadCount++;
	};

	this.getCounter=function(){
		var arrApp=func.loadApp(zd_nameSpace+"counter");
		if(arrApp==undefined){
			this.loadCounter();
			arrApp=func.loadApp(zd_nameSpace+"counter");
		}
		if(arrApp==0){
			this.counter=null;
		}else{
			this.counter={
				"article":arrApp.getItem(0,0),
				"comment":arrApp.getItem(1,0),
				"ping":arrApp.getItem(2,0),
				"trackback":arrApp.getItem(3,0),
				"visit":arrApp.getItem(4,0)
			};
		}
	};

	this.loadCounter=function(){
		var strQuery="select top 1 ";
		strQuery+="(select count(post_ID) from zd_post where post_type='article' and post_state<>'draft') as logCount,";
		strQuery+="(select count(comm_ID) from zd_comment where comm_type='comment' and comm_state='publish') as commCount,";
		strQuery+="(select count(comm_ID) from zd_comment where comm_type='pingback' and comm_state='publish') as pingCount,";
		strQuery+="(select count(comm_ID) from zd_comment where comm_type='trackback' and comm_state='publish') as tbCount,";
		strQuery+="set_number from zd_setting where set_name='visitCount'";
		var arrVBArray=dbConn.query(strQuery,undefined,undefined,true);
		func.saveApp(zd_nameSpace+"counter",arrVBArray==null?0:arrVBArray);
		this.loadCount++;
	};

}
</script>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?