您的位置:首页 > 其它

众联BreezeCMS实现思路(三)

2015-11-03 08:32 253 查看


Decorate是页面组件,当前管理台的页面都是由这些页面组成的。另外既然是Decorate模式,decorate可以做成类似的容器模式,在decorate中套decorate。


CMSMgrDecorate

在CMSMgrDecorate中有三类方法:
显示方法,模型定制方法,页面交互方法。
显示方法是Decorate主方法,这些方法包括:
processingData是第一个重要方法,该方法传入的是由Control由processorShowData处理后的数据(其结构,参见《control定制》中关于数据定制相关的方法。),然后将数据转换成本Decorator进行处理所需要的数据return回去。
setData方法,这是对外调用方法,调用该方法进行数据设置,该方法调用processingData,同时,他还会调用被嵌套的子组件的对应的setData,这样一口气可以把自己以及所有儿子的组件的数据全部设置好。该方法一般不要重载和改变。要处理数据重新定制processingData

即可。
getDisplayData是第二个非常重要的主方法,这个方法也亦是对外方法,该方法将根据本组件的视图,返回对应的html片段信息。
childrenData是第三个方法,该方法是一个辅助方法。被tpl视图反向调用,目的是如果Decorate是个容器,有子内容(子内容也是一个或若干个组件)那么可以在视图中反向调用这个方法,以获取子组件部分的html片段。
例如现在的几个组件,就是多层的套用关系:左边菜单树有子组件tag分栏,tag分栏又有子组件list列表(或者single表单),list表单又有子组件分页。

模型定制相关的方法主要是在alias模型定义中的扩展设定如下:



在这个页面中,扩展配置页面的每个按钮,就是有Decorate独立定制的,模型设定页面会扫描所有的Decorate内容,Decorate中有一个特殊接口,当这个接口被模型页面扫描到后,便会将数据结构返回,模型设定会根据这些信息显示按钮以及相关的配置页面。

模型定制接口如下:
getCfgInfo 这是一个被模型管理扫描过的函数,获取系统配置的信息,默认返回是null,即没有配置,若有返回,其值为:

{

name: "列表页按钮",

sig: "listOperBtns"

}

getDisplayCfg 这个方法用于模型设置时,点击对应的按钮后,返回本设定特定的html片段

getCfgSetting该方法可以返回配置设置页面后填写完表单,从表单中获取用户的设置信息,并转化成json格式返回。该方法在基类中有一个默认方法,可以实现默认的表单处理,不过有一个前提,可以参考默认方法的提示。

第三类方法就和组件本身相关,是不同组件的自有方法,这里不一一描述。


当前的decorate介绍

CMSMgrDefaultHeaderDecorate该Decorate是用于头部部分的组件,如下:



CMSMgrDefaultListFilterDecorate用于特殊过滤器组件,效果如下:



CMSMgrDefaultListPaginationDecorate 这是个分页组件

CMSMgrDefaultListViewDecorate 这是列表页组件

CMSMgrDefaultNodeDecorate 这是左边节点数组件

CMSMgrDefaultSingleViewDecorate 这是左边菜单树组件

CMSMgrDefaultTagDecorate 这是tag分页栏组件,效果如下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: