publish相关代码及逻辑的说明
董巧功 2015-03-18
目录
一、 总体说明
Publish这个应用只有前台代码,是一个纯js的web。它依赖evias/erhea/eyayse(为方便表述,以下都只说evias),通过使用jsonp方式,调用evias的api,来达到请求配置信息,请求数据的目的。 它一共只有四个页面:
检索页(类似百度首页,用的比较少) 首页(门户首页)
分类检索页(根据导航条件,进行的检索) 检索结果页(关键字检索的结果展示)
二、 页面介绍 1. 检索页:
页面:search-index.html
处理逻辑:js/dayangit/search-index.js 页面初始化函数:SearchIndexPage.init()
2. 首页
页面: index.jsp
处理逻辑: js\\dayangit\\index.js,slider_files\\slider.js 页面初始化函数:IndexPage.init()
slider.js包含初始化轮播大图、精品、最新资源、热门资源这四个区域。如下图: 其中:
轮播大图: 检索包含“轮播”标签的资源,按照最后修改时间进行排序。 精品:检索包含“精品”标签的资源,按照最后修改时间进行排序。 最新资源:按照创建时间倒序进行排序,取前11个资源。
热门资源:按照点击下载次数(ACCESSCOUNT),进行排序,取前11个资源。 热门资源: 遍历一级导航,以一级导航的节点作为查询条件,检索出前12个资源,调用topN插件。如下图,其中“财务处”、“后勤处”、“离退休处”都是一级导航。有多少个一级导航,就调用多少次topN插件。
3. 分类检索页
页面: category-index.jsp
处理逻辑: js/dayangit/ category-index.js 页面初始化函数:CategoryIndex.init ()
4. 检索结果页
页面: search-result.jsp
处理逻辑: js/dayangit/search-result.js 页面初始化函数:SearchResult.init ()
5. 其他子页面
header.jsp:头部banner,其中的顶部导航,是通过api请求的evias的顶层导航配置。 head-logo.html:logo页 footer.html:底部footer
download-dialog.html:下载对话框。
三、 功能插件
1. 导航插件
这个插件是所有页面都需要调用的。
通过api请求evias中导航管理中“显示位置”配置为“档案发布应用”的智能条件树。 由此可见,这个导航的实质是一棵智能条件树,每一个节点都包含一个查询条件。 代码位置: webroot\\js\\dayangit\\navigation-dropdown.js,详细的逻辑可以参考注释。 提示:如果导航没有正确的显示,可以打开firebug,看是否有\未获取到导航数据,可能没有配置导航,或出现了后台错误。\这样是输出。
2. topN插件
这个插件用于首页的热门资源的展示。
代码位置: webroot\\js\\dayangit\\plugin\\topN.js,代码比较简单,不详细介绍。 用到了模板: webroot\\js\\dayangit\\template\\topN-template.js
提示:如果热门资源没有正确的显示,可以打开firebug,看是否有“topN出错:”这样的输出。
3. 检索结果插件
这个插件用于分类检索页和检索结果页的资源结果集展示。 代码位置: webroot\\js\\dayangit\\plugin\\resource-list.js
用到了模板: webroot\\js\\dayangit\\template\\resource-list-template.js
4. 搜索框插件
这个插件用于各个页面的搜索框的事件绑定。
代码位置: webroot\\js\\dayangit\\plugin\\dyit-search.js
5. 轮播图插件
这是一个比较独立的插件,跟业务逻辑没有直接关系。