- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
B3log Solo 插件机制版本:0.1.0,Oct 29, 2011作者:88250,Vanessa注意:该文档目前内容已经过时,如果继续了解设计细节,请咨询 B3log 开发团队。后续会修改该文档内容,以符合最新实现。概述插件定义运行在B3log Solo上完整实现了某独立功能的组件,包含视图(FreeMarker模版)、控制器、模型(JSON、lang props)这三个基本要素。适用场景插件主要用于B3log Solo功能特性实现。建议插件进行后台功能实现,因为前台展现部分可能会与特定皮肤耦合。插件机制设计原理下图为“偏好设定”插件示例:服务端服务端主要负责插件查找,然后调用模板引擎处理插件视图模版,并将处理结果添加到已有视图模版变量 ${plugins} 中。客户端在服务端生成视图 HTML 返回至客户端后,插件视图中的 JavaScript($(function(){...});)将在客户端完成插件 DOM 元素与已有元素的调整合并,及进行插件视图定位。同一寄主模版可以存在多个插件,但它们之间不能出现相互的直接的依赖(JavaScript functions),因为插件模版在服务端处理时是无序的,在客户端也就不能确定某客户端插件 JS 函数一定在其他插件 JS 函数前。关键点插件视图模版内容读取、缓存多语言插件状态管理(启用/禁用),持久化DOM 元素查找(客户端 APIs)如果插件涉及前台视图,则会依赖特定皮肤与事件机制相结合GAE 多实例环境下插件状态的同步安全性主要是针对插件实现的功能是否存存在不安全因素,例如删除、篡改用户数据。由于插件大多数由第三方开发,目前尚未找到有效解决方式应对潜在的安全问题。详细设计服务端类图时序图客户端客户端需要提供 JavaScript 函数及相应的机制用于客户端插的件定位和方法的回调:加载过程方法admin.plugin.add({});参数类型说明idstring插件唯一标识。插件的变量与方法需放到 plugins[id] 命名空间下。添加新页面时,做为 URL 后缀。pathstring插件添加的位置。添加新页面,有特定的 URL。地址为 “/admin-index.do#” + path.replace(/, ) + / + id。//article/tools/tools/preference添加到特定页面下。/main/panel1/article/article | article-list | draft-list/comment-list/tools/preference | file-list | list | link-list | user-list | plugin-list | others/tools/preference/preferences | skins | sings | tencentcontentstring添加内容。[text]string添加新页面的标题。[index]int添加新页面,标题所在位置的顺序,从1开始。资源构成将所有插件相关资源放到到一个目录中,其中应该包含如下文件:lang_xx.properties至少一份,这些文件为插件视图的多语言配置。*.ftl至少一份,这些文件为插件视图模版,其中plugin.ftl为插件主视图。*.js/*.css/图片等静态资源零或多份,这些文件为插件资源。x/x/x/Xxx.class至少一份,此文件是插件类实现类文件。在plugin.properties里的classesDirPath值指定类文件存放的位置。plugin.properties一份,此文件是插件描述文件。其中的内容可参考官方插件。使用时将此目录放置于 ${webRoot}/plugins/ 下,类文件放置于plugin.properties里的classesDirPath值指定的目录。附录术语表术语含义寄主/寄主模版插件主视图要插入的模版事件/事件机制B3log Latke事件处理框架,观察者模式插件主视图文件名为plugin.ftl的模版,插件模版处理将从该模版进行
文档评论(0)