内容模型 (Content Model)是网站除一般的文章,产品类型外,可以自定义多数据结构的信息类型。其实现的功能即是通常指的数据结构自定义、表单自定义、业务自定义范 畴里的事情。内容模型根据不同的应用需求,快捷、有效地设置和管理不同类型、不同属性的信息。
We7 CMS系统内容模型分为系统模型和用户自定义模型,系统模型内置了“文章”、“产品”、“招聘”等常用内容模型以方便直接使用,用户自定义模型由用户定义,字段都由管理员进行自由控制。用户自定义模型管理员可对模型的字段进行管理 (包括添加、删除、修改、排序等管理操作),或根据需要随时添加和管理新的内容模型 (如添加Flash模型、影视模型、音乐模型、课件模型、教案模型……等内容模型)。
内容模型是网站管理系统中自我扩展的功能模块之一,We7 CMS系统中的内容模型可完全自我扩展,满足用户的网站多种内容类型的需求。
We7Cms提供了可视化内容模型管理功能。通过拖拽需要的控件到模型面板中就能轻松地配置好您所需要的内容模型。
内容模型定义一般要经过两个步骤:
以拥有内容模型管理权限的账号登陆系统,点击左侧菜单“设置-》内容模型”打开内容模型管理界面, 点击新建模型进入模型添加界面。录入内容模型基本信息,点击保存,保存内容模型的基本信息。此时内容模型的创建成功。点击“编辑模型布局”进入模型布局管理。
定义模型布局包括:
录入面板布局
录入控件面板下总体样式如下图所示:
从控件工具箱中选择所需控件拖拽到右侧的布局容器即可。
控件工具箱如下图所示:
拖拽一个控件到布局容器中后会出现属性编辑界面, 在最上面的下接框中选择需要的字段。如果没有可以点击“新增”按钮进行添加。 字段添加界面如下:
选好字段并设置好相关属性后,控件的属性就设置完成了。
下面是定义好的布局:
点击保存按钮可把模型信息保存到内容模型中去。如果选置同步更新会员中心表单,则当前的模型布局会全部同步到会员中心的模型布局中去。
列表面板布局
列表面板布局包含:
列表布局面板界面如下:
查询字段设置 点击左侧工具箱中的列,然后点击右边查询框增加一项,在右侧布局容器中增加一个查询控件。同时左侧出现查询控件的相关属性设置。如下图所示。设置好控件的相关查询属性。
注意:其中有一项是操作符,可以选择“包含”和“等于”,“包含”指的是进行模糊查询。且此项设置只对字符类型数据有效。
列表字段设置 点击左侧式具箱中的列,选择右边列表增加一项。在右侧布局容器的列表中增加一项。同时右侧工具箱出现添加字段的属性设置。设置好相关属性后,点击保存按钮,模型信息保存进入模型配置。列表字段属性界面以及设置好后的效果如下图所示:
控件管理
详情请见:内容模型前台控件
布局绑定
详情请见:内容模型布局绑定
内容模型由六部份组成:模型控件,模型容器,模型面板,模型配置,数据提供者以及操作命令。
内容模型配置文件说明:详情请参考内容模型配置说明
模型容器是用于装载各种模型控件的容器。一个模型容器与一系统业务操作相对应。如编辑容器,用来进行数据的录入以及修改;列表容器列表显示查找到的信息;查询容器用来提交查询条件;导航容器用来进行功能导航。
在系统根目录下的ModelUI目录下按不同的用途设置了不同的容器。如System目录下是系统默认的容器。We7目录下是为We7 CNS专门订制的容器。
容器的设置对应于模型配置文件中的<edit />< condition />< list />< pager /><command/>节点,这些节点中的path属性用于设置容器的容器控件。容器控件的命名方式是:
容器所在的文件夹名.容器文件名
如:We7.Editor
下面是设置好的一个面板中的容器:
<panel name="edit"> <edit path="we7.Editor" visible="true"> <group> <control label="ID" name="ID" type="GUID" required="true" visible="false"/> <control label="栏目" name="OwnerID" type="We7.ChannelSelect" required="true" visible="true" /> <control label="标题" name="Title" type="TextInput" required="true" visible="true" /> </group> </edit> <condition visible="false" path="we7.Condition"> <control id="ID" label="ID" name="ID" type="Request" required="false" visible="false" /> </condition> <context> <dataKey>ID</dataKey> </context> </panel>
模型面板是进数业务处理与信息交互的核心区域。模型面板上承载了不同的模型容器。各模型容器所提交的数据都通过模型面板进行处理。各模 型容器信息的交互也是通过模型机板进行传递。
在ModelUI/Panel目录下存放了系统定义好的面板。关于面板的配置请参考内容模型详细配置说明
模型控件是用于录入信息以及显示信息的单个控件,是内容模型用户界面中的最小组成单位。
模型控件存放于ModelUI/Cotnrols目录下。
模型控件的命名规范为:
模型控件所在文件夹名.模型控件文件名。
内容模型在配置文件中配置请参考内容模型详细配置说明
内容模型控件配置说明
<FieldLabel="ArticleID"FieldName="ArticleID"DataType="String"Control="ArticleID"Visiable="false"Listable="false" />
控件名称 | 说明 | 参数 |
---|---|---|
ArticleID | 用于获取文章ID | 无 |
ChannelID | 用于获取栏目ID | 无 |
ConstantInput | 用于输入指定的常量。常量在Config/ContentModel/Constans.xml中配置 | const常对应的关关键字 width 宽 height高 dateformat日间格式 |
DateTimeInput | 时间控件 | dateformat日间格式 width 宽 height 高 |
DialogInput | 弹出窗口控件 | url 弹出窗口中的内容页 width 宽 height 高 |
GUID | 生成GUID的控件 | 无 |
HiddenValue | 用于保存隐藏值 | 无 |
MemberInput | 用户成员控件 | width 宽 height 高 |
NumberInput | 数值控件。当输入非数值时会显示提示信息 | width 宽 height 高 |
TextArea | 多行文本框 | width 宽 height 高 |
TextInput | 单行文本框 | width 宽 height 高 |
EnumSelect | 枚举下拉框 | data 枚举数据,用“|”分开。 |
EnumCheckBox | 枚举复选框 | data 枚举数据,用“|”分开。 direction 控件对齐方向。h表横向对齐。v表纵向对齐 |
EnumRadioButton | 枚举单选模型 | data 枚举数据,用“|”分开。 direction控件对齐方向。h表横向对齐。v表纵向对齐 |
Editor | FCKEditor编辑器 | width 宽 height 高 |
XMLSelect | 将XML中的列表信息显示出来。 | data 对应的配置文件名。 配置文件要放在Config/Constans文件夹下。 |
Thumbnail | 缩略图控件 | 无 |
We7Controls控件的函数说明:
在配置模型时可自定义的系统字段有:
当在模型中定义这些字段时,会将这个数据插入到数据库的表中。
定义查询数据的参数字段是:
<QueryDataKeys="AdviceID"PageSize="10"> <FieldLabel="编号"FieldName="SN"DataType="Int32"Control="TextInput"> </Field> <FieldLabel="密码"FieldName="MyQueryPwd"DataType="String"Control="TextInput"> </Field> <FieldLabel="标题"FieldName="Title"DataType="String"Control="TextInput"> <ParamName="qt"Value="like"></Param><!—这个表示模糊查询-> </Field> </Query>
默认情况下内容模型的输入界面与预览界面的信息都是以从上到下的形式进行展现的。在某些情况下,需要按不同的方式进行布局。此时我们可以定义模型布局再进行布局绑定。
要进行模型布局绑定首先是要生成模型布局控件。
在模型管理界面中,按鼠标放置在需要进行布局绑定的记录的编辑按钮上,在弹出的下接框中选择“布局管理”,在“布局管理”页面上选择“布局绑定”,界面如下:
要进行布局绑定,首先要生成布局控件。点击下面的按钮生成布局控件。
生成布局控件后就可以进行布局绑定了。
根据需要在不同的位置绑定不同的布局控件。
内容模型二次开发,一般指的是模型控件,模型容器与模型布局面板的开发。
内容模型的相关代码主要存放于两个项目中:We7.Model.Core,We7.Model.UI.
下面对两个项目中的代码组织结构进行一个简要的说明:
要自定义模型控件需要经过以下几个步骤:
要自定义模型容器需要经过以下几个步骤:
在这里,根据扩展的容器不同可以继承于不同的基类。如操作命令容器继承于CommandContainer,列表容器继承于 ListContainer,查询容器继承于ConditionContainer,分页容器继承于PagerContainer,导航容器继承于 NavigationContainer.
要自定义模型面板需要经过以下几个步骤:
联系客服