网站中的站内文章搜索

在模板中,你可以复制以下代码到您的某个模版页面中,让你的网站快速拥有全站文章搜索功能。 ## 模版中要复制的代码 您可将下面代码直接复制到你的某个模版页面中,此模版页面便拥有了站内文章搜索功能!(本页面拥有搜索功能) ```` 关键词:
```` #### 注意事项 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. **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 这个页面的模版,要显示成什么样子,都是在这个模版页面中进行调节。 新增一个模版页面,类型是 “**详情页模版**” ,模版页面增加完毕后,编辑其内容,可将以下内容粘贴进去 ```` 站内搜索 关键词:
```` ###### 提示 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" } ] } } ````