【转】phpcms-v9中关于模型的理解
PHPCMS v9 模型概念
一、什么是模型?
模型是系统知识的抽象表示。我们不能仅仅通过语言来描述一个系统,也不能仅仅通过记忆来记录关于系统的知识。知识是通过某种媒介来表达的,这种媒介所表达的内容就是模型。而知识形成媒介的过程就是建模,或者称为模型化。通常模型可以使用多种不同的媒介来表达,比如纸质或电子文档、缩微模型/原型、音像制品等等。而表达模型的体现方式也是多种多样的,常见的有图表、公式、原型、文字描述等等。
举例来说,一般新闻类的信息,都具有标题、内容、作者、来源、发布时间等属性。不论是国内新闻,还是国际新闻、基本都具有这些属性。那么我们就可以把这些属性模型化,在PHPCMS中我们理解成“内容模型”。
很显示如果要做下载类网站,需要的模型肯定和普通的“内容模型”不一样,那么我们需要重要定义新的模型。
PHPCMS 允许使用者根据自身需求自定义模型,来构建多样性网站。
二、PHPCMS V9 内置模型介绍
PHPCMS V9 内置新闻、图片、下载三种模型,每个模型都分别自定义不同的属性,并可以为模型指定默认模版列表。
PHPCMS v9 模型管理和使用
一、修改模型默认模版
每个模型都可以指定对应的默认模版,添加栏目时选择对应模型,可默认加载模型对应模版。如下图所示:
注意:
- 模版位于: phpcms\templates\default(风格名称)\content目录下
- 栏目页模版命名必须以:category(*).html
- 列表页以list 开头,如list_pro.html
- 内容页以show 开头
二、模型字段管理
每个模型都有多个的属性,每个属性都属不同的字段类型,我们可以通过模型字段管理来增减字段,并为字段选择类型,来自定义出自己所需模型,如下图所示:
模型管理列表
每个模型都有多个的属性,每个属性都属不同的字段类型,我们可以通过模型字段管理来增减字段,并为字段选择类型,来自定义出自己所需模型,如下图所示:
内容模型的字段列表管理
摘要字段详情
三、如何使用模型
模型可绑定栏目,新建栏目时选择模型类型, 这样在当前栏目下添加内容时将继承模型的定义。并自动加载被选模型的模版设置。如下图所示:
为栏目指定模型
自动加载被选择模型模版设置
PHPCMS v9 模型字段设置
一、字段设置选项作用
字段管理设置时有一些选项,其中有些是比较重要的设置。现介绍如下:
注意:
- 是否为主表字段,将决定是否可直接在列表页进行调用显示。
- 相关参数的配置,将随着字段类型的变化而变化。
PHPCMS v9 重点字段类型使用介绍
一、万能字段
下面以建一个租房模型,来介绍万能字段的使用。首先建立租房模型,如下图所示:
添加万能字段 tenement 别名为 租房信息详情 ,并在相关参数中加入附属字段设置,如下图所示:
接下来添加万能字段 tenement 的附属字段,并在字段设置中,选择为万能字段附属字段,以户型室huxingshi为例,其它附属字段同样的操作,如下图所示:
其它字段同上操作,完成后模型添加效果如下:
说明:利用万能字段还可以做出更多的效果,大家也可以看一下内容模型里的系统内置投票字段。更多效果以待大家发掘。
二、联动菜单
联动菜单常用于区域选择,分类选择等位置,v9内置联动菜单字段,结合扩展功能里 联动菜单的设置,即可做出多级菜单的联动效果,效果如下图所示:
后台使用效果
下面我们以为租房模型添加一个所在区域联动菜单为例,说明联动字段的使用, 首先添加联动菜单数据,并选择菜单风格和应用站点范围(V9 支持多站点站群系统),如下图所示:
接下来为刚才添加的联动菜单,添加菜单数据,如下图所示:
添加子菜单,如下图所示:
添加完联动菜单数据以后,接下来进行联动菜单字段的添加,字段类型选择联动菜单,然后在相关参数设置选项,选择刚才添加的联动菜单项,如下图所示:
添加完成以后,在模型应用栏目,添加信息时,就会出现联动菜单选择框,效果如下图所示:
【转】phpcms-v9中关于模型的理解的更多相关文章
- PhpCms V9中的{date('Y-m-d',$r[inputtime])}问题解决方法
不少朋友会碰到这个问题:在PhpCms V9中的首页或者文章内容页调用发布时间{date('Y-m-d',$r[inputtime])}调用显示1970-01-01,然后尝试用截断的方法也没有成功,应 ...
- CSS中盒模型的理解
今天突然看到一篇关于CSS中盒模型的文章,忽然觉得自己竟然遗忘了很多小的地方,所以写一篇文章来记忆一下 (摘抄于千与千寻写的CSS盒子模型理解,并在自己基础上添加了一些东西,希望更完善,对大家有帮助) ...
- phpcms v9中模板标签使用及联动菜单
{template "content","header"} 调用根目录下phpcms\template\content\header文件 {charset} 字 ...
- Java学习疑惑(8)----可视化编程, 对Java中事件驱动模型的理解
我们编写程序就是为了方便用户使用, 我觉得UI设计的核心就是简洁, 操作过于繁琐的程序让很大一部分用户敬而远之. 即使功能强大, 但是人们更愿意使用易于操作的软件. 近年流行起来的操作手势和逐渐趋于成 ...
- phpcms v9不限模型全站搜索
简单修改一下v9默认的搜索功能,可以不按模型搜索全站内容 下面是被修改后的search模块中的index.php文件 <?php defined('IN_PHPCMS') or exit('No ...
- phpcms v9中的$CATEGORYS栏目数组
首先 如果不能用$CATEGORYS这个数组或掉不出来内容应加入 $CATEGORYS = getcache('category_content_1','commons'); 1.用途 $CATEGO ...
- phpcms v9 中的数据库操作函数
1.查询 $this->select($where = '', $data = '*', $limit = '', $order = '', $group = '', $key='') 返回 ...
- phpcms v9中调用栏目及调用多个子栏目中的文章列表
调用一个指定栏目列表: {pc:content action="lists" catid="6" order="id DESC& ...
- phpcms v9 中get的mysql查询表某字段最大值数据,表某字段不重复数据
直切正题 1.表tb中字段num最大的数据 {pc:get $sql="select * from tb where num=(select MAX(num) from tb)"} ...
随机推荐
- rabbitmq因为主机名更改导致连接不上
今天创建rabbitmq用户的时候报错,说nodedown,定睛一看,发现主机名是localhost,而此时我们的主机名是controller01,所以猜测是主机名导致的,重启服务器,就成功添加了. ...
- Docker入门教程(七)Docker API
Docker入门教程(七)Docker API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和 ...
- TCP 介绍
TCP介绍 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义.在简化的计算机网络O ...
- ASP.NET 递归将分类绑定到 TreeView
CREATE TABLE [dbo].[sysMenuTree]([NoteId] [decimal](18, 0) NOT NULL,[ParentId] [decimal](18, 0) NULL ...
- js日期加减
先补充下基础知识: var myDate = new Date(); //myDate默认返回当前时间 myDate.getYear(); //获取当前年份(2位) myDate.getFullYea ...
- oracle自定义判断数据是否为数值函数
CREATE OR REPLACE FUNCTION isnumeric (str IN VARCHAR2) RETURN NUMBER IS v_str ); BEGIN IF str IS NUL ...
- MVC5的AuthorizeAttribute详解
现今大多数的网站尤其是购物网站都要求你登录后才能继续操作,当你匿名的将商品放入购物车后,不可能匿名购买这时可以转到登录界面让用户进行登录验证. 适用系统自带的过滤器 MVC5只要将属性[Authori ...
- [LeetCode] Longest Valid Parentheses
第一种方法,用栈实现,最容易想到,也比较容易实现,每次碰到‘)’时update max_len,由于要保存之前的‘(’的index,所以space complexity 是O(n) // 使用栈,时间 ...
- webstorm总结
webStorm修改文件类型,文件着色 File->Settings->Editor->File Types
- Yii2 数据操作Query Builder(转)
Query Builder $rows = (new \yii\db\Query()) ->select(['dyn_id', 'dyn_name']) ->from('zs_dynast ...