二次开发 - 自定义模型使用教程

优质
小牛编辑
133浏览
2023-12-01
自定义模型使用教程:
在织梦系统中有内容模型这个概念,不同内容模型可以用来构建不同内容形式的站点,在系统中自带了以下几种模型:普通文章、图集、软件、商品、分类信息、专题。通过系统自带的模型,我们可以用来构建不同类型的站点,例如:使用图集可以做一个图片站,用软件模型构建一个软件下载站点。
当然以上随系统附带的模型被称为系统模型,用户可以自己定义一些模型,比如图书、音乐专辑等,自定义了这些模型才可以构建更多内容形式的站点,本篇将讲述如何使用系统的自定义模型管理功能来实现内容模型的构建。
我们首先登录系统后台,点击[核心]-[内容模型管理],进入内容模型管理界面,如下图所示:

这里我们介绍几个相关参数的概念:
ID 用于区分模型的唯一ID,一般常规模型的ID都是大于0的,比如普通文章、软件等,如果使用了单表模型,ID一般需要小于-1,例如这里的分类信息模型;
频道名称 用于识别频道类型的标识;
识别id 系统用于识别的id,这个关系到模板方面;
附加表 系统内容附加表项;
模型类型 分为系统类型和自动类型,系统类型为固化在系统中的内容模型,自动类型为用户可创建的内容模型类型;

接下来我们开始介绍如何使用自定义模型管理来创建一个自己的模型,并且用于建设不同内容类型的网站中去。
这里我们介绍一些周边的内容,几个要用到的概念:
字段 在数据库中,表的列称为字段,织梦系统也是如此,但更恰当的说法,存储某个内容信息单元,称为字段,例如标题、来源、作者等都是一个字段;
内容系统主表 程序将一些公用字段存储在系统主表dede_archives,例如:标题、关键词、缩略图等,主表具体字段可以查询织梦帮助中心(http://help.dedecms.com)的有关二次开发手册数据表部分的内容;
附加表 不同内容模型对应不同的附加表,通常以dede_addon[识别ID]命名,附加表中存放的都是详细内容的相关字段(非公用),例如:文章内容(dede_addonarticle)、软件类型(dede_addonsoft)、图片集合(dede_addonimage)等;
单表独立模型 存储时候不用到“主表+附加表”的结构形式,直接使用单个数据表进行存储内容数据,这样脱离主从表,减少主表数据服在开销,可以从很大程度上解决数据负载问题;
明白了以上几个概念我们可以来学习如何来自己创建一个内容模型了。
一个完整的内容模型包含模型数据表、数据字段、模型模板、模型参数4个部分,制作一个内容模型大致有以下几个步骤:1.模型规划;2.模型制作;3.模板制作;4.栏目设置,下面我们从上面4个步骤来讲解内容模型的制作。这里我们以一个图书模型(book)为例子,这个模型主要功能就是介绍书籍。

模型规划
模型规划分为几个部分一个是模型应用方面的规划,其次就是字段信息方面的规划,以图书(book)模型为例子,我们现规划一个频道使用这个模型,这个频道作用就是让大家分享一些好的学习资料,这里主要是编程方面的书籍,所以栏目划分大致如下:

以下为引用的内容:

[网络编程书籍]
    |____[ASP相关]
 |____[PHP相关]
 |____[JSP相关]
 |____[.NET相关]

这几个栏目是支持会员投稿的,因为这个推荐的书籍不是很多,所以直接采用主从表的形式,不使用独立单表模型,因为涉及到会员分享,所以这里需要会员投稿,我们给投稿会员级别设置为中级会员才有权限,并且需要摘要和说略图,投稿之后需要经过管理员审核,这样基本的使用规划完成,下面就是字段方面的规划了。
因为介绍一本书,我们规划了以下内容:

出 版 社publish单行文本(varchar)
出版时间pubtime时间类型
字  数cnum整数类型
版  次pubnum整数类型
页  数pagenum整数类型
印刷时间pritime时间类型
开  本kbook单行文本(varchar)
印  次prinum整数类型
纸  张pages单行文本(varchar)
I S B Nisbn单行文本(varchar)
包  装packs单行文本(varchar)
内容简介bodyHTML文本
作者简介wrbodyHTML文本
目录bindexHTML文本

这样,我们完成了第一步模型的规划。

模型制作
规划完成了,接下来我们开始将这些规划的内容创建为一个内容模型。首先以超级管理员身份登录到系统后台。点击[核心]-[模型管理],点击“增加新模型”按钮来创建模型。
按照系统提示配置模型的基本信息,这里因为选择的是自动模型,所以档案发布的相管程序页面只需要保留默认即可。因为我们发布的是图书,所以这里“投稿标题使用名称”设置为:图书名称。

因为这里我们使用的是自动模型,没有自己制作相应的发布管理程序,所以下面的相关模型发布程序保持默认即可,当然如果你有一定的编程能力,可以自己制作一个内容发布程序,然后在这里指定即可。

基本信息设置完毕,直接单击确定即可,进入到字段管理的页面,点击字段管理中的“添加新字段”按钮,进入字段添加页面,我们根据相关的字段信息进行字段添加。
下面是一些字段类型我们对部分字段进行一些说明:

以下为引用的内容:

单行文本(varchar) :常用字段,如文章标题、作者等都属于直接输入少量内容的文本,设置这个文本之后需要指定文本长度,默认为250,如果大于255则为text类型
多行文本:也是较为常用的字段类型,如个人简介、产品描述都可以使用多行文本进行存储
HTML文本:用织梦编辑器编辑产生的html内容,用于比较复杂的内容形式
附件类型:可以后台上传附件让用户下载,附件类型可以在后台进行设置
option下拉框:下拉选择,一般用于如软件类型、语言类型等字段
联动类型:一种数组形式的数据类型,可以在系统后台联动类型管理中进行设置

了解了这些字段类型我们就可以添加我们的字段信息了。

添加完成点击确定即可,这样我们就完成了这个模型的制作。模型添加完毕之后我们发现在内容发布的地方多出来一个发布图书的选项,这个说明我们的模型就已经成功添加了。

模板制作
我们通过织梦帮助中心的《主要模板文件与功能说明》了解到每个模型还需要制作对应的模型模板文件,我们可以通过后台模型管理中的模板文件说明查看模板文件。

模板制作主要有2个地方需要讲解下。
1.  列表页模板list_[识别ID].htm中显示在列表中需要调用添加扩展的字段需要在添加字段页面勾选“使字段可以在列表的底层模板中获得(自定义字段默认仅能在文档模板显示,启用此选项将使列表查询变慢,如无必要请不要选择)”,这样在{dede:list/}标签中就可以使用[field:fieldname/]来进行调用。
2.  内容页的标签可以使用{dede:field.fieldname /} 进行调用,具体可以参考帮助中心模板相关的帮助文档。

栏目设置
接下来我们就可以来添加一个栏目,在栏目设置中将栏目的内容模型设置为图书

然后我们就可以在这个栏目下添加文档,会发现我们现在可以发布图书内容了

添加完成之后,我们可以浏览我们的网站页面,预览我们的模型效果。

至此我们完成了整个模型的制作,整个过程还是非常简单的。这里只介绍了自动模型的制作,当然有一定PHP基础的用户可以自己开发系统模型,这样就会拥有更为强大的织梦系统,使得网站内容更加丰富。