内置的JavaScript对象可以进行站点功能高级开发与管理。
下表演示了将表A新建的数据写入A_prop表,对应站点ID为testsite,栏目代号CODE为news.A,并进行发布。
|
var pstmt = null; var sql = null; try { var site = session.GetSite("testsite"); var topic = site.GetTopicByCode("news.A"); //将A中有的但A_prop表中还没有的数据写入A_prop表 //state=2表示审核通过待发布 sql = "insert into A_prop(id,title,siteid,topic,state) select id,name,?,?,2 from A where not exists(select id from A_prop where A.id=A_PROP.id)"; pstmt = session.PrepareStatement(sql); pstmt.SetString(1,site.id); pstmt.SetString(2,topic.id); pstmt.ExecuteUpdate(); session.Commit();//提交事务处理 pstmt.Close();//关闭游标 //发布栏目news.A的文章 topic.Build(false); } catch(e) { //写入日志 out.Error(e); } finally { if(pstmt!=null) pstmt.Close(); } |
下表演示通过全文检索接口将每天发布的文章生成特定XML文件。站点ID为testsite。
|
var xmlfile = null; try { xmlfile = new NpsFile("/xml/my.xml"); xmlfile.OpenWriter(false);//覆盖写入 var site = session.GetSite("testsite"); var query = "publishdate:[NOW/DAY-1DAY TO NOW/DAY"; //昨天0点到今天0点的数据 var arts = site.FTSearch(query,0); for(var i=0;i<arts.count;i++) { var art = arts.GetNthArticle(i); xmlfile.WriteString("<id>"); xmlfile.WriteString(art.id); xmlfile.WriteString("</id>"); xmlfile.WriteString("<title>"); xmlfile.WriteString(art.title); xmlfile.WriteString("</title>"); xmlfile.WriteString("<url>"); xmlfile.WriteString(art.url); xmlfile.WriteString("</url>"); art.Clear();//清除临时环境 } } catch(e) { //写入日志 out.Error(e); } finally { if(xmlfile!=null) xmlfile.Close(); } |