网站中的站内文章搜索
在模板中,你可以复制以下代码到您的某个模版页面中,让你的网站快速拥有全站文章搜索功能。
## 模版中要复制的代码
您可将下面代码直接复制到你的某个模版页面中,此模版页面便拥有了站内文章搜索功能!(本页面拥有搜索功能)
````
关键词:
````
#### 注意事项
1. **input** 输入框,以及 **newsSearchKeyword** 这个id是必须存在的,搜索时会从这里取搜索的字符串
1. 搜索按钮的 onclick 触发的 **requestNewsSearchApi(1);** 其内的1表示获取搜索结果的第一页数据。
1. **div id="searchResultList"** 这个div中包含的html,即获取到搜索结果列表后,每一项文章显示的模版。当然,你可以去掉这个div,去掉的话就不会再有搜索结果显示。这个div内支持的动态变量包括:
````
news.id 文章的编号,可以用此 + .html 来组合出文章的url地址。如该文章编号为123, 那么 123.html 便是文章的url
news.title 文章的标题
news.addtime 文章的发布时间,会调取出 yyyy-mm-dd 这样格式的时间
news.titlepic 文章的封面图片、标题图片。
news.intro 文章简介
news.cid 文章所属栏目的编号,目前应该用不到,预留功能
````
例如,使用下面模版代码进行数据调取
````
````
调取出的结果为:
````
站内搜索
关键词:
````
###### 提示
1. 这里的代码,跟一开始,本文章最开始贴出的代码,是一样的,就是加了 html头、尾、以及 head 标签而已。
1. 默认会获取get方式传递来的 searchKeyword 的值作为关键词进行搜索,若未发现这个传入,则不会进行搜索
##### 第三步:增加一个栏目
因为第一步是要跳转到 search.html 这个页面,所以我们要增加这个页面。
在栏目管理中,增加一个栏目,
栏目类型,选择 “**独立页面**” ,
内容模版,选上第二步中,增加的模版页面,
栏目代码,填入 **search** ,因为在创建页面时,会自动生成 **栏目代码.html** 页面,这里,便可以生成 search.html
高级设置中,编辑方式,选上 “ **模版式编辑** ”
##### 第四步:使用
经过上面三步,便已经增加好搜索功能了。
你可以生成整站,然后试试搜索功能效果如何。别忘记增加几篇文章,避免搜不到东西。(也就是你网站内的栏目,栏目类型要有新闻信息、图文信息,这两种类型的,这两种类型的栏目,其内添加的信息才会被搜索到)。
至于 search.html 页面的美观成都,你可以在第二步中,自行对模版页面进行美化。
## 截图示例
## 在线体验
在线体验地址:
http://newssearchplugin.wscso.com/
# 接口说明
若你想自己修改定义 newsSearch.js ,可看以下说明。
如果只是使用,请忽略以下即可。
## 请求参数说明
| 传递的参数 | 是否必填 |说明 |
| ------------ | ------------ |
| siteid | 必填 | 网站编号,模版中可使用 {site.id} 调取当前网站的编号 |
| keyword | 必填 | 要搜索的关键词,搜索当前网站中,所有标题中含义此关键词的文章 |
| everyPageNumber | 非必填 | 每页显示多少条信息。取值范围限制 2 ~ 30 之间。若不传递此参数,默认每页显示10条 |
|currentPage | 非必填 | 请求第几页的数据,不传此参数,默认是请求第一页 |
## 返回值
返回json格式数据。此数据已在 newsSearch.js 中进行了处理,可以直接用来显示即可。如果你方有更高的要求,可自由组合,将 newsSearch.js 中的js代码复制出来,进行改动即可。
| 参数 | 参数 | 数据类型 | 说明 |
| ------------ | ------------ | ------------ | ------------ |
| result | | 整数 | 当前搜索请求的结果 0:失败; 1:成功 |
| info | | 字符串|若 result=0 失败,这里便是失败原因 |
| list | | json列表| 搜索到的信息列表,其中某条信息包含以下字段 |
| | id | 整数 |信息编号,如 id为 123 ,则此文章的url为 123.html |
| | title | 字符串|标题 |
| | addtime | 整数 |发布时间,linux 10位时间戳 |
| | titlepic | URL|封面图片,标题图片,图片的绝对路径url |
| | intro |字符串| 内容简介 |
| | cid | 整数 |该信息所属栏目的编号,此项可能用不到。预留。 |
| page | |json列表| 分页相关 |
| | allRecordNumber| 整数 |总条数 |
| | currentFirstPage |boolean | 当前是否是首页,第一页。 true:是 ; false:不是 |
| | currentLastPage | boolean |当前是否是最后一页。 true:是 ; false:不是|
| | currentPageNumber | 整数 |当前页面,当前第几页 |
| | everyNumber | 整数 |每页显示多少条 |
| | firstPage | URL|首页,第一页ajax请求的URL |
| | haveNextPage |boolean| 是否还有下一页。 true:是 ; false:不是 |
| | haveUpPage |boolean| 是否还有上一页。 true:是 ; false:不是 |
| | lastPage |URL| 尾页URL,最后一页ajax请求的URL |
| | lastPageNumber |整数 | 最后一页是编号为几的页数,如最后一页是第三页,这里便是 3 |
| | nextList | json列表|下几页的json列表 |
| | nextPage | URL|下一页URL,下一页ajax请求的URL |
| | nextPageNumber |整数 | 下一页的编号。如上一页是第3页,这里便是 3 |
| | upList |json列表| 上几页的json列表 |
| | upPage | URL|上一页URL,ajax请求的URL |
| | upPageNumber | 整数 |上一页的编号,如上一页是第2页,这里便是 2 |
下面是每页显示两条信息的返回数据示例
````
{
"result":1,
"info":"成功",
"list":[
{
"titlepic":"",
"id":8,
"title":"如何正确运用PHPjson_encode函数进行中文转换",
"addtime":1538384317,
"intro":"json_encode 和 json_decode这两个函数的具体用法 网上有很多相关的文章 ,本文主要介绍 用json_encode 时中文无法转换的解决方案,本文假设文件所用的编码为gb2312;先写出所需的数组array nbsp39id39 gt 391339nbsp39name39 gt 39乒乓球39nbs",
"cid":5
},
{
"titlepic":"",
"id":7,
"title":"Jackson2.6.7发布,高性能JSON处理",
"addtime":1538384248,
"intro":"Jackson 267 发布了,下载地址:Source codenbspzipSource codenbsptargz点击查看官方发行说明Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。",
"cid":5
}
],
"page":{
"limitStart":0,
"allRecordNumber":4,
"currentPageNumber":1,
"everyNumber":2,
"lastPageNumber":2,
"nextPage":"http://localhost:8080/plugin/newsSearch/search.do?currentPage=2",
"upPage":"http://localhost:8080/plugin/newsSearch/search.do?currentPage=1",
"lastPage":"http://localhost:8080/plugin/newsSearch/search.do?currentPage=2",
"firstPage":"http://localhost:8080/plugin/newsSearch/search.do?currentPage=1",
"haveNextPage":true,
"haveUpPage":false,
"currentLastPage":false,
"currentFirstPage":true,
"upPageNumber":1,
"nextPageNumber":2,
"upList":[
],
"nextList":[
{
"href":"http://localhost:8080/plugin/newsSearch/search.do?currentPage=2",
"pageNumber":2,
"title":"2"
}
]
}
}
````
网市场云建站系统 v4.2 版本升级,优化文档、插件机制 [2018-08-05]
网市场云建站 v4.1升级,以真正实用建站商盈利为目的建站系统 [2018-06-15]
网市场云建站系统 v3.9 发布,增加模版插件功能 [2018-02-11]
````
1. **script** 中设定的几个参数
1. **siteid** 指定网站的编号,无需改动
1. **masterSiteUrl** 指定管理后台的url,无需改动
1. **everyPageNumber** 设定每页显示10条结果。数值可设定2~30之间,可自由设定。如果不设置此参数,则默认显示10条搜索结果
1. **div id="xnx3_page** 这个div中显示分页跳转相关,如首页、上一页、下一页、尾页等。如果没有这个div,则不会显示分页跳转的这些链接。
## 需求示例:点搜索后,跳转到新打开的搜索页面显示结果
即输入搜索关键词,点击搜索后,跳转到一个专门的搜索页面,并非在本页显示搜索结果
这种情况,就需要进行get传递参数。
例如,有这么个需求,首页顶部要放个搜索功能,点击搜索后能跳转到搜索的结果页,显示搜索的结果、或者再次搜索其他关键词。
##### 第一步:首页加入搜索的html代码
html代码为:
````
````
点击搜索按钮,就会跳转到 search.html 这个搜索页面中去。
当然,搜索的关键词,会通过get传递过去,get的参数 searchKeyword 便是搜索的关键词,为了避免乱码,必须使用 js 的 escape 转码,就像上面 html 代码中的。
你可以直接将上面代码,复制到你想要放搜索框的位置便可。
##### 第二步:增加一个模版页面
这里增加的模版页面,便是 search.html 这个页面的模版,要显示成什么样子,都是在这个模版页面中进行调节。
新增一个模版页面,类型是 “**详情页模版**” ,模版页面增加完毕后,编辑其内容,可将以下内容粘贴进去
````