1 文章检索服务
/_wp3services/generalQuery?queryObj=articles由第三方在页面向文章检索服务地址()发送请求。
当文章检索服务响应请求分别对其请求的条件、排序及返回信息进行解析,解析成功,根据请求参数,以json格式返回文章相关属性。
条件、排序和返回信息是以json字符串向文章检索服务发送请求。
JSON.stringify()在IE8是未定义的,为了兼容需引用“/_js/json/json2.js”
1.1 请求参数说明
参数名 | 说明 | 备注 |
queryObj | 用于区分查询的对象类型,目前包含articles(文章) | 必填 |
siteId | 站点ID | 必填 |
columnId | 栏目ID | |
pageIndex | 页码,默认为1 | |
rows | 查询条数,默认为10 | |
returnAttr | 当值为1时,仅返回文章的属性 | |
allUrl | 说明: | |
conditions | 条件 | |
orders | 排序 | |
reqModule | 1:返回content 内容时使用, | |
returnInfos | 请求返回属性 | |
allImgs | 是否显示所有图片(版本v16077之前版本使用) | 过时 |
scope | 查询范围(版本v16077之后版本使用) | 新增 |
1.2 请求参数站点Id和栏目Id获取方式
通过站点检索服务地址 (域名/_wp3services/generalQuery?queryObj=sites&scope=1)
域名/_wp3services/generalQuery?queryObj=columns&siteId=2&scope=1
1.3 查询条件(conditions)
以json字符,向文章检索服务发送请求;查询条件,支持复合查询条件设置。
conditions:查询条件,多个条件之间为And连接,内部允许嵌套 orConditions
orConditions:查询条件,多个条件之间为or连接,内部允许嵌套 conditions
judge:关系符,目前包括“=、<、>、<=、>=、like”
[ { orConditions: [ {field: "author", value: "谷子", judge: "like"}, {field: "creator", value: "系统管理员", judge: "like"} ] }, { conditions: [ { orConditions: [ {field: "title", value: "%菊花%", judge: "like"}, {field: "key", value: "Ch", judge: "like"} ] }, { orConditions: [ {field: "imgLogo", value: "true", judge: "="}, {field: "fileLogo", value: "true", judge: "="} ] } ] } ]; /* 查询条件属性目前包括(后期可扩展): title: 标题 creator: 创建者 createTime: 创建时间 createOrgId: 机构Id folderIds: 文件夹Id author: 作者 source: 文章来源 summary: 简介 key: 关键字 allKeys: 关键字查询(包括标题、作者、关键字及内容中含有此关键的查询) infoCode: 文号 scope: 范围(1当前及子,0当前) categoryId: 文章分类Id imgLogo: 图片标识,(值是true,否为false) fileLogo: 附件标识,(值是true,否为false) videoLogo: 视频标识,(值是true,否为false) f1~f50: 扩展字段1至扩展字段50 top: 置顶 new: 最新 hot: 热门 publishTime: 发布时间 publisher: 发布者 */
参数名 | 说明 | 备注 |
id | 文章Id | |
title | 文章标题 | |
artTypeId | 文章类型 | |
publishTime | 发布时间 | |
publisher | 发布人 | |
visiCount | 浏览量 | |
content | 文章内容 | |
infoCode | 文号 | |
categoryId | 文章分类Id | 文章所属分类 |
newest | 是否最新 | |
hot | 是否是热点 | |
shortTitle | 短标题 | |
subTitle | 副标题 | |
summary | 简介 | |
creatorId | 创建者Id | |
createTime | 创建时间 | |
createOrgId | 创建部门Id | |
author | 文章作者 | |
editor | 责任编辑 | |
source | 文章来源 | |
key | 关键字 | |
size | 大小 | |
score | 分数 | V15061不支持 |
f1~f50 | 扩展字段 | |
1.4 排序(orders)
[ |
type:排序方式,升序(asc)和降序(desc),默认为升序
1.5 返回属性(returnInfos)
格式名称(name) | 格式值(value) | 备注 |
l | 任意数字 | 字符长度 |
lp | 任意数字 | 取满足长度的字符,余下的以“…”代替 |
d | ² 'yyyy-MM-dd'(年-月-日) ² 'MM-dd'(月-日) ² 'yyyy-MM-dd HH'(年-月-日 时) ² 'yyyy-MM-dd HH:mm'(年-月-日 时:分) ² 'yyyy-MM-dd HH:mm:ss'(年-月-日 时:分:秒) ² 'yyyy/MM/dd'(年/月/日) ² 'MM月DD日'(MM月DD日) ² 'yyyy年MM月dd日'(yyyy年MM月dd日) ² 'yyyy年MM月dd日 hh时'(yyyy年MM月dd日 hh时) | 日期的格式 |
[ {name: " title "}, {field: "mytitle", name: " title "}, {field: " mytitle ",pattern: [{name: "l",value: "10"}], name: "title"} ] /* json说明: mytitle:自定义标题 title:标题 mytitle:标题名称,取10个字符,输出 */
1.6 结果返回值默认属性说明
参数名 | 说明 | 备注 |
total | 数据总条数 | |
lastPageNum | 最后页面显示条数 | |
pageCount | 总页数 | |
startExeTime | 开始执行时间 | |
endExeTime | 查询花费时间 | |
data | [ |
1.7 文章属性
参数名 | 说明 | 备注 |
id | 文章Id | 默认输出 |
title | 文章标题 | 默认输出 |
publishTime | 发布时间 | 默认输出 |
publisher | 发布人 | 默认输出 |
visitCount | 浏览量 | 默认输出 |
url | 文章访问地址 | 默认输出,访问文章模板页面链接地址 |
link | 文章外链地址 | 访问文章的外链地址(有版本要求) |
wapUrl | (手机)文章访问地址 | 默认输出 |
mircImgPath | 缩略图 | 默认输出 |
content | 文章内容 | 改输出模式仅在版本v16077以后版本支持 |
infoCode | 文号 | |
category | 文章分类名称 | 文章所属分类,多个逗号分隔 |
color | 文章标题颜色 | 标题样式 |
bold | 标题是否加粗 | 标题样式 |
top | 是否置顶 | |
newest | 是否最新 | |
hot | 是否是热点 | |
topImg | 置顶图标 | |
newImg | 最新图标 | |
hotImg | 热点图标 | |
imgPath | 图片的路径 | |
imgName | 图片名称 | |
filePath | 附件的路径 | |
fileName | 附件名称 | |
videoPath | 视频路径 | |
videoName | 视频名称 | |
audioPath | 音频路径 | |
audioName | 音频名称 | |
shortTitle | 短标题 | |
subTitle | 副标题 | |
summary | 简介 | |
creator | 创建者 | |
creatorId | ||
createTime | 创建时间 | |
createOrg | 创建部门名称 | |
author | 文章作者 | |
editor | 责任编辑 | |
source | 文章来源 | |
key | 关键字 | |
publishOrg | 发布部门名称 | |
size | 大小 | |
score | 分数 | V16077以上版本支持 |
downLoads | 下载次数 | V16077以上版本支持 |
f1~f50 | 扩展字段 | |
allImg | 图片 | 获取文章中多张图 |
coverImgPath | 封面图 | V6061以上不支持 |
artTypeId | 文章类型Id | V16077以上版本支持 |
artTypeName | 文章类型名称 | V16077以上版本支持 |
score | 文章评分 | V16077以上版本支持 |
downLoads | 文章下载次数 | V16077以上版本支持 |
phColId | 发布栏目Id | V16077以上版本支持 |
phColName | 发布栏目名称 | V16077以上版本支持 |
phColUrl | 发布栏目Url | V16077以上版本支持 |
imgLogo | 是否是图片文章 | V16077以上版本支持 |
fileLogo | 是否是附件文章 | V16077以上版本支持 |
videoLogo | 是否是视频文章 | V16077以上版本支持 |
audioLogo | 是否是音频文章 | V16077以上版本支持 |
1.8 返回json数据格式
{ "total":9, "data":[ {"folderName":"额额","code":"0300000-2015-0004", "filePath":"","creator":"系统管理员", "summary":"","id":448,"title":"ddddddd", "wapUrl":"/_s9/01/c0/c177a448/pagem.psp", "url":"/_s9/01/c0/c177a448/page.psp", "publishTime":"2015-07-23 14:24:04", "publisher":"系统管理员","visitCount":10,"mircImgPath":"" } ], "lastPageNum":4, "pageCount":2, "startExeTime":1438146506082, "endExeTime":"34.946" }
仅返回文章属性json格式
[ { 'folderName':'额额', 'code':'0300000-2015-0004', 'filePath':'', 'creator':'系统管理员', 'summary':'','id':448, 'title':'ddddddd', 'wapUrl':'/_s9/01/c0/c177a448/pagem.psp', 'url':'/_s9/01/c0/c177a448/page.psp', 'publishTime':'2015-07-23 14:24:04', 'publisher':'系统管理员', 'visitCount':10,'mircImgPath':'' }, { 'folderName':'学校概况', 'code':'0100000-2015-0006', 'filePath':'','creator':'系统管理员', 'summary':'ddddcc,guzi','id':426, 'title':'sddddddddddd', 'wapUrl':'/_s9/01/aa/c107a426/pagem.psp', 'url':'/_s9/01/aa/c107a426/page.psp', 'publishTime':'2015-07-23 13:09:18', 'publisher':'系统管理员', 'visitCount':10,'mircImgPath':'' } ]
2 实例应用:
var url = http://172.18.10.8:8080/_wp3services/generalQueryvar?queryObj=articles'; //查询条件 var conditdata = [ {field: 'key', value: key, judge: 'like'}, {field: 'author', value: author, judge: 'like'}, {field: 'creator', value: creator, judge: 'like'}, {field: 'publishTime', value: beginPt, judge: '>='}, {field: 'publishTime', value: endPt, judge: '<'}, {field: 'categoryId', value: catalogs, judge: 'in'}, {field: 'scope', value: 1, judge: '='} ]; //请求返回参数 var returnInfosdata = [ {name: 'folderName'}, {field: 'code', name: 'f11'}, {name: 'filePath'}, {name: 'creator'}, {name: 'summary'} ]; //排序参数 var orderData = [ {field: 'visitCount', type: 'desc'}, {field: 'publicTime', type: 'desc'}, {field: 'createTime', type: 'desc'}, {field: 'top', type: 'desc'} ]; var orders = JSON.stringify(orderData); var conditions = JSON.stringify(conditdata); var returnInfos = JSON.stringify(returnInfosdata); //向文章检索服务发送请求 $.ajax({ url:url, type: 'POST', async: false, dataType: 'json', data: {siteId: siteId, columnId: 17, pageIndex: 1, rows: 10, conditions: conditions, orders: orders, returnInfos: returnInfos }, success: function(result) {} });
3 实例展示
3.1案例一 (普通列表页)
代码
$(function(){ var articleUrl = "/_wp3services/generalQuery?queryObj=articles"; var siteId = 120; //站点Id var columnId = $(".col_title").data("col-id"); //多个以英文逗号分隔 var pageIndex = 1; //从某页开始 var rows = 14; //每页显示多少篇文章 var text = ""; /*$("#login_search .search").on("click",function(){ text = $.trim($("#keyword").val()); if(text =="" || text =="请输入关键字"){ text =""; }else{ text ='%'+text+'%'; } conditData(text); });*/ loadContents(pageIndex,columnId,siteId,rows); function loadContents(pageIndex,columnId,siteId,rows){ $("#wp_news_w6").find("ul.news_list").children().remove(); //排序参数 var orderData = [ ]; var returnInfos = JSON.stringify(returnData()); var orders = JSON.stringify(orderData); var conditions = JSON.stringify(conditData(text)); $.ajax({ url: articleUrl, type: 'POST', contentType: "application/x-www-form-urlencoded; charset=utf-8", async: false, dataType: 'json', data: { siteId:siteId, columnId:columnId, pageIndex:pageIndex, rows: rows, orders:orders, returnInfos: returnInfos, conditions:conditions //visitPermitFilter:1 }, success: function(result){ var total = result.total; if (result != null){ //console.log(result); for (j=0;j < result.data.length; j++){ var art = result.data[j]; html = '<li class="news n1 clearfix">'+ ' <span class="news_title"><a href="'+art.url+'" target="_blank" title="'+art.title+'">'+art.title+'</a></span>'+ ' <span class="news_meta">'+art.publishTime+'</span>'+ '</li>'; $("#wp_news_w6").find("ul.news_list").append(html); } } var pageCount = result.pageCount; var pageHtml = ""; pageHtml += ('<div class="new_pages" >'); pageHtml += (' <ul class="wp_paging clearfix"> '); pageHtml += (' <li class="pages_count"> '); pageHtml += (' <span class="per_page">每页<em class="per_count">' + rows + '</em>条记录</span> '); pageHtml += (' <span class="all_count">总共<em class="all_count">' + total + '</em>条记录</span> '); pageHtml += (' </li> '); pageHtml += (' <li class="new_page_nav">'); pageHtml += (' <a class="first" href="javascript:void(0);"><span>首页</span></a> '); pageHtml += (' <a class="prev" href="javascript:void(0);" ><span>上一页</span></a> '); pageHtml += (' <a class="next" href="javascript:void(0);" ><span>下一页</span></a> '); pageHtml += (' <a class="last" href="javascript:void(0);"><span>尾页</span></a> '); pageHtml += (' </li> '); pageHtml += (' <li class="new_page_jump"> '); pageHtml += (' <span class="pages">页码:<em class="curr_page" curr_page="' + pageIndex + '">' + pageIndex + '</em>/<em class="all_pages" pageCount="' + pageCount + '">' + pageCount + '</em></span> '); pageHtml += (' <span><input class="pageNum" type="text" /><input type="hidden" class="currPageURL" value=""></span></span> '); pageHtml += (' <span><a class="new_pagingJump" href="javascript:void(0);" target="_self">跳转</a></span> '); pageHtml += (' </li> '); pageHtml += (' </ul> '); pageHtml += ('</div> '); $("#wp_paging_w6").html(pageHtml); //$("#wp_news_w501").html(html); } }); } initpageClick("wp_paging_w6",columnId,siteId,rows); //跳转页面 initFirstPageClick("wp_paging_w6",columnId,siteId,rows); //首页 initLastPageClick("wp_paging_w6",columnId,siteId,rows); //尾页 initPrevPageClick("wp_paging_w6",columnId,siteId,rows); //上一页 initNextPageClick("wp_paging_w6",columnId,siteId,rows); //下一页 /*查询条件*/ function conditData(val){ var conditdata = [ //{field: "title", value: val, judge: "like"}, {field: "scope", value: 1, judge: "="} ]; return conditdata; } //请求返回参数 function returnData(){ var returnInfosdata = [ {field: "title",pattern: [{name: "lp",value: "30"}], name: "title"}, {field: "publishTime",pattern: [{name: "d",value: "yyyy-MM-dd"}],name: "publishTime"} ]; return returnInfosdata; } //初始化跳转页面 function initpageClick(idTag,columnId,siteId,rows) { $(document).on('click', "#" + idTag + " .new_pagingJump", function(event) { var pageNum = $(".new_page_jump .pageNum").val(); if (pageNum === "") { alert("请输入页码!"); return; } var pageCount = $(".new_pages .all_pages").attr("pageCount"); if (isNaN(pageNum) || pageNum <= 0 || pageNum > pageCount) { alert("请输入正确页码!"); return; } loadContents(pageNum,columnId,siteId,rows); }); } //初始化首页 function initFirstPageClick(idTag,columnId,siteId,rows) { $(document).on('click', "#" + idTag + " .new_page_nav .first", function(event) { loadContents(1,columnId,siteId,rows); }); } //初始化尾页 function initLastPageClick(idTag,columnId,siteId,rows) { $(document).on('click', "#" + idTag + " .new_page_nav .last", function(event) { var allPages = $(".new_pages .all_pages").attr("pageCount"); loadContents(allPages,columnId,siteId,rows); }); } //初始化上一页 function initPrevPageClick(idTag,columnId,siteId,rows) { $(document).on('click', "#" + idTag + " .new_page_nav .prev", function(event) { var pageCount = $(".new_page_jump .curr_page").attr("curr_page"); var prev = --pageCount; if (prev <= 0) { return; } loadContents(prev,columnId,siteId,rows); }); } //初始化下一页 function initNextPageClick(idTag,columnId,siteId,rows) { $(document).on('click', "#" + idTag + " .new_page_nav .next", function(event) { var pageCount = $(".new_page_jump .curr_page").attr("curr_page"); var next = ++pageCount; var allPages = $(".new_pages .all_pages").attr("pageCount"); if (allPages < next) { return; } loadContents(next,columnId,siteId,rows); }); } });