我发现网上关于操作帝国CMS标签的完整的系统的例子很少,所以各种CMS都推出了自定义模型和自定义字段的功能
分类:热门资源

如图所示,我们可能有时需要同时调取一级栏目和二级栏目做为导航,这在帝国CMS中不是什么难事,用帝国CMS的灵动标签就可以很方便的解决,程序如下所示,在指定需要读取的父栏目后,就可以把这个栏目下的所有子栏目(包括一级栏目和二级栏目同时同时调取出来了,很方便,简单易用)

前两天刚接触帝国CMS,它给我的感觉是,它确实很强大。内置非常灵活的万能调用标签:能实现各式各样的效果,满足各种网站的需要,适应于所有模型。这也就是今天所说的主题,关于标签。

早期的文章管理系统,数据表字段模型都会内置好,按自己的思路,把文章模型、信息模型、图片模型都内置,然后用户根据需要,在设置栏目时选择不同的模型,实现不同的需求。然而这种内置模型字段的方式,不能很好的满足站长的各种个性化需求,所以各种CMS都推出了自定义模型和自定义字段的功能。

下面贴出代码,希望能帮助有需要的朋友~

至于为什么我要写这篇文章呢,我发现网上关于操作帝国CMS标签的完整的系统的例子很少,跟WordPress没法比,这对于想用它来建站的人是一个劣势,所以我决定把我学到的展示出来。

对于PHP程序员来讲,自定义模型实际是在数据库中建立一个新的数据表,然后添加不同的字段来记录不同的数据,自定义字段功能,即在原有数据表中添加新的字段,或者在附加表中添加新的字段,然后根据数据模型进行数据写入、数据查询读取、数据在模板中的展示操作。而CMS的模型自定义功能,则是把这一系列操作内置,流程化,自动化,建立模型,选择不同的字段类型建立字段,根据不同字段类型,自动生成后台数据录入界面和前台数据展示页面。站长不需要编程知识即可很方便的根据自己的需求,设计不同的数据模型,更加方便站长个性化建站。同时,懂PHP编程的站长,除了能够很方便的建立各种模型外,省去了数据录入和数据查询展示的重复操作环节,专注于个性功能的开发,能够更快更好的制作各种各样的功能模块。

PHP

本题针对新鸟,老鸟可以闪过,也欢迎共同探讨。

前面部分说到了自定义模型的优势,那本文下部分主要从自定义模型流程对比、自定义字段字段类型对比、自定义字段选项对比(主表副表、前台投稿、设置权限等)三个方面。

?php$ecms_bq_sql=sys_ReturnEcmsLoopBq(select*from[!db.pre!]enewsclasswherebclassid=58orderbymyorderlimit7,14,24,0);$bqno=0;while($bqr=$empire-fetch($ecms_bq_sql)){$bqsr=sys_ReturnEcmsLoopStext($bqr);$bqno++;?liahref=?=$public_r[newsurl]??=$bqr[classpath]?/?=sub($bqr[classname],0,54,false)?/ap?php$ecms_bq_sql2=sys_ReturnEcmsLoopBq(select*from[!db.pre!]enewsclasswherebclassid=$bqr[classid]orderbymyorderlimit8,14,24,0);$bqno2=0;while($bqr2=$empire-fetch($ecms_bq_sql2)){$bqsr2=sys_ReturnEcmsLoopStext($bqr2);$bqno2++;?ahref=?=$public_r[newsurl]??=$bqr2[classpath]?/?=sub($bqr2[classname],0,54,false)?/a?php}?/p/li?php}?

帝国CMS的一个好处是,你可以去官网()下载“一键安装包(运行环境+ECMS)”,如图,

详细对比分析下帝国CMS、PHPCMS、DEDECMS,这三款CMS的优缺点。

威尼斯正规官网 1

  1. 自定义模型流程对比

安装调试都很方便,即使电脑上没有安装MySQL,没有安装Apache 服务器,没有安装PHP MyAdmin(MySQL 基于web的数据库管理软件),也可以在瞬间搭建起一个运行环境,非常方便的进行调试,一切对网页操作拿不准的举动,都可以在本机先进行测试,再上传。帝国CMS给我的令一个惊喜是:它的程序运行环境可以在不到10秒左右的时间安装完成,输入localhost,即可运行,这简直是太方便了。这样的话,即使在自己机器上调试程序出错了,也可以一键卸载,删除整个EmpireServer文件夹,再重新解压缩,再一键安装,嗯,方便至极!!

在CMS中自定义模型,我们一般最期望实现的两点是1)在数据库中建一个表,并且可自由设置表中有什么字段;2)建好字段后,后台数据添加表单能自动生成,前台数据展示直接能通过标签调用,而不需要自己写读取数据的PHP代码。

声明:我不是枪手,我是在这两天接触到帝国CMS由心而发的感受,好话不多说了,下边看下今天的主题----标签。

那么这三款CMS中是怎样满足我们的这两点期望的呢?

接触到帝国CMS,首先要学习它的标签,这其实就跟学编程一样,编程学的多了,会发现其实每学习一门新的编程语言,我们需要做的只是学习一些常用的函数、API等。我个人是学过编程,但没学过php,但是这种编程的思想很重要,这也使我很快的能了解一个基于PHP构建的帝国CMS。

按照帝国CMS的官方提示,帝国CMS自定义模型一般步骤为1)系统分析、2)建立数据表、3)建立字段、4)建立系统模型。

终于要步入正题了!!!

帝国自定义模型的创建步骤实际为先建立一个数据表,然后建立字段,每一个字段类据类型等作详细设置后,再整体控制各个字段的用途及前台后台数据录入界面的格式即建立系模型。建立系统模型的过程实际是对数据字段在模型中所扮演的角色和权限的分配过程,如是否作为录入项、是否作为投稿项、是否可增加、是否可修改、是否作为结合项等。

安装好CMS,首先就是想着,它的界面我怎么可以按照我想的样子展示出来,当然我不是学美工的,很遗憾我不能把网页设计的很漂亮。我只懂一些基本的HTML标签。

威尼斯正规官网 2

1.我们就拿tab选项卡来举例说明吧。如图:

按帝国的思维,建表和建字段只是完成了建数据库的操作,而系统模型建立的过程则为规划数据库如何使用的过程。

威尼斯正规官网 3

PHPCMS中添加自定义模型只有两步,先建立模型,然后添加字段。在添加模型的过程中不仅完成了一般意义上的建数据表的工作,同时,也完成对模型的一些初始化设置,如模型中的数据是否生成静态,栏目页、列表页、内容页的模板及URL规则等。

2.登录后台,依次点击“模版”—“首页模版”—找到table选项卡相关代码。

添加完模型后,会自动生成一部分字段,可对这些字段作修改或删除处理,同时可以自由增加字段。

威尼斯正规官网 4

PHPCMS中自定义模型建立字段时除了选择封装好的字段类型外,也整合了对字段属性的设置,如是否在前台投稿中显示、是否作为标签默认读取字段、是否作为标签调用排序字段等。

3我们看到了[phomenewspic]标签,[phomenewspic]'10',3,6,128,90,1,20,0[/phomenewspic]先看看里边参数是什么意思吧,右侧下拉条拉到最下边,点击[查看模板标签语法],弹出对话框,如图

威尼斯正规官网 5

威尼斯正规官网 6

DEDECMS中自定义模型建立亦分为两步完成,建数据表作初始化设置然后添加字段。添加模型时可选择模型是自动模型、系统模型还是独立模型。独立模型可突破原来的主表+副表的模式,方便小数据量的灵活处理。

威尼斯正规官网 7

威尼斯正规官网 8

4.大体看一下标签说明,重点看操作类型说明,很重要,一会会说,如下图:

从三款CMS的自定义模型流程对比来看,帝国CMS的属性设置相对更为细致但似乎简洁性不够,很多描述过于专业或者不够明确,站长朋友们需要看较多帮助文档才能了解到每项的意思,而PHPCMS和DEDECMS中则相对简洁,一目了然知道每一项的涵义;PHPCMS和DEDECMS在建立模型表的同时完成了对模型的初始化设置,整个设置是针对整个模型的,与具体字段无关,属全局性设置,而帝国CMS中模型的设置则是整合了对字段的整体操作,在建好字段之后,细化到对字段的细节控制,属“微观调控”。

威尼斯正规官网 9

帝国CMS中能够单独设置字段的前台后台展示模板,相对更为灵活些; PHPCMS中则由于字段类型是以组件形式封装的,前台后台数据录入界面自动生成,简便,但在某些时候需要自定义部分字段的表单HTML时只有在模板中使用逻辑判断才能实现,灵活性稍缺乏。DEDECMS模型设置和PHPCMS类似,DEDECMS这块的优势在于可以选择数据模型是主表+副表的模式还是独立表模式,并且可以自由设定前台后台的数据处理PHP文件,方便二次开发。

5.试着分析参数

按我的经验来看,帝国CMS这块的设置虽然很细致,但实际把问题复杂化了,据观察,帝国CMS的用户自定义模型的深度用户并不多。实际按照PHPCMS和DEDECMS的思路,建模型数据表的同时,对模型作一部分全局设置,然后单个字段中根据不同字段类型及不同需求作细节设置,这样的流程更直观更方便。

[phomenewspic]'10',3,6,128,90,1,20,0[/phomenewspic],这是我改过了的,

另外,PHPCMS中自定义模型后可直接预览模型的数据录入界面,方便查看字段设置的效果,这点非常方便。

默认的应该是:[phomenewspic]'news',3,6,128,90,1,20,20[/phomenewspic],首先看到这个news就晕了,这是栏目ID吗?点击上图中“查看栏目ID点这里”,发现我的主栏目ID明明只有10,12,15,16啊,到像是一个数据库表的名字,再看剩下几个table选项卡,发现第一个参数依次是photo,movie,flash。这让我想起了安装数据库时建立的系统默认建立的几个表,其中几个名字就是上边这几个。这下让我更加坚定我的猜测。

所以,从自定义模型细节易用性对比来看:DEDECMS>PHPCMS>帝国CMS。

这咋整,晕了啊!回头再看看phomenewspic的参数列表,发现有一个参数,我们忽略了,就是“操作类型说明”,我觉得这点帝国CMS做的不好,应该在这做一个链接,链接到操作类型说明,一方面能引起他人注意,另一方面可能别人还不太容易发现,其实“操作类型说明”,它和我们已经见过面了,只是,我们没注意它的存在,它就在第三步点击“[查看模板标签语法]”后,偷偷的显示出来了,如图

2.字段类型对比:

威尼斯正规官网 10

CMS中自定义字段有一个很好的优点就是都封装好了一些常见的字段类型,建立字段的同时,直接设置好了字段对应的表现形式,选择不同的字段类型,在会员中心投稿表单界面、后台数据录入界面及前台数据展示界面中都会有所不同,并且是自动呈现。举个例子,如果是PHP程序员需要实现对文章内容的存储,除了需要在数据库中添加一个字段外,还需要在数据录入表单中添加一个textarea,同时还要引用一些编辑器如fckeditor等。过程比较费事,并且存在许多重复性劳动。而如果在PHPCMS或者帝国CMS中实现这一需求,则只需要在建立字段时选择“编辑器”字段类型,在DEDECMS中也类似只需要选择“HTML文本”类型的字段即可。因为CMS的字段类型都将各种不同的字段进行了封装,添加字段时直接选择,然后自动生成的数据录入界面中和前台数据展示界面中,程序都会根据字段类型作一些处理,然后自动输出。(PHPCMS中生成表单界面时会调用input_form相关的类根据字段类型进行处理,在输出数据前,会调用output_form相关的类根据不同字段类型对数据进行处理)。

真坑爹啊。。一开始害我去网上搜的“操作说明”,结果它就在眼皮底下。

帝国CMS的字段类型
PHCMS的字段类型
DEDECMS的字段类型
单行文本框(text)
密码框(password)
下拉框(select)
单选框(radio)
复选框(checkbox)
多行文本框(textarea)
编辑器(editor)
图片(img)
FLASH文件(flash)
文件(file)
日期(date)
颜色(color)
选择外表关联字段(linkfield)
下拉外表关联字段(linkfieldselect)
单行文本
多行文本
选项
数字
编辑器
日期和时间
颜色和字型
图片
多图片
文件
镜像下载
多文件上传
栏目
类别
地区
标题
作者
来源
关键词
会员组
会员ID
推荐位
模板
转向链接
分页选择
视频
联动菜单
单行文本(varchar)
单行文本(char)
多行文本
HTML文本
文本保存HTML数据
整数类型
小数类型
时间类型
图片
图片(仅网址)
多媒体文件
附件类型
使用option下拉框
使用radio选项卡
Checkbox多选框
联动类型

6.操作类型有了,对照着参数列表开始分析

从上表可见PHPCMS中字段类型的的丰富程度和实用性是明显优于帝国CMS和DEDECMS的。DEDECMS字段类型稍多于帝国CMS。

威尼斯正规官网 11

即:PHPCMS >DEDECMS>帝国CMS。

 [phomenewspic]'news',3,6,128,90,1,20,20[/phomenewspic],news先不管,3暂且认为是每行显示的图片数,回到主页上一看,确实是每行就显示3张图片。一次发现,6是显示的总的图片数量,128是每张图片宽度,90是每张图片高度,1为显示标题,20为截取20个字符,最后一个20就是操作类型,再去看“操作类型说明”,20代表的是“各表推荐信息”,其中的参数ID,就是数据库的表名!!!!!!!!!和我开始猜的一样,坑爹啊,在phomenewspic参数列表说明的时候为什么第一个参数只是说是“栏目ID/专题ID”呢?为什么不能添加一个“或者是数据库表名”的说明呢???由于第一个参数是“news”,害的我把剩下的每个参数都一个一个试了一遍,看是不是相应的参数,其中就包括,我把倒数第二个参数改为“2”,看是不是截取了两个字符。等等,我每个参数都这样试过了。。。。。

3.自定义字段属性选项对比:

7.知道了每个参数的含义,我们就可以随意的操作标签啦!!!

有些时候设置的一些字段,我们希望只有管理员才能设置该字段的值;有些时候,添加的一些字段,我们希望能够方便和标题摘要一起在文章列表中调用;有些时候,添加的一些字段,我们希望这个字段添加后不能再被修改;有时些时候,添加的一些字段,我们希望实现只在后台数据录入界面中显示,而在前台投稿中不显示……这时候,灵活的字段属性选项,显得尤为重要。

看“操作类型说明”上,如果类型数字为:24,那么第一个参数还可以用SQL语句!!!!为什么不在phomenewspic参数列表第一个参数说明一下呢!!!!

那么这三款CMS中的字段属性有哪些差异?哪个最能满足用户的需求呢?

       那就试试吧,看行不行。

1)自定义字段是否可选择是否存在主表还是副表?

把第一个tab页面的标签改为[phomenewspic]'select * from [!db.pre!]news',3,6,128,90,1,20,24[/phomenewspic],保存,更新主页,发现了错误。如图:

PHPCMS2008和DEDECMS的自定义字段只能添加到副表中,帝国CMS自定义字段则可选择是添加在主表中还是副表中,这样的好处在于,自定义字段可以方便作为数据调用条件和查询条件和在文章列表中调用,而如果单纯只加在副表中,一旦涉及到数据联合查询,效率会低很多,并且即使是简单的标题+摘要+自定义字段显示的文章列表中都非得多表联合查询,人为增加SQL查询复杂度,降低效率。很典型的问题是在涉及到联动筛选的情况时,自定义字段如果不能选择存储在主表中,会人为制造非常大的麻烦。

威尼斯正规官网 12

威尼斯正规官网 13

SQL语句错误!!??由于表名中用到了这个[!db.pre!],我第一个想到的是莫非表名写错了吗??

如上图所示的,联动筛选字段(帝国CMS和DEDECMS中称作结合项),如果是想要用PHPCMS2008和帝国CMS来自定义,售价、面积、户型等自下义字段,只能添加在副表中,结果是非常痛苦的,每个条件的查询都要主表和副表同时查询,并且查询条件分期在主表中和副表中时,要同时满足条件,非得join查询。 如果涉及排序等,更是头痛,反正是人为自找麻烦。如果能选择直接把字段字义表主表中,这样,这类数据量存储不大的字段,不会明显增加主表的负担,但查询和读取都直接是单表操作,非常方便。帝国CMS中这点做的比较不错,并且有提供了单独的结合项功能。DEDECMS中貌似也有结合项功能,适用于多条件筛选的情况。

用PHP MyAdmin 登录数据库,发现表名的后缀是:ecms_news,ecms_movie,ecms_photo

所以,这一点,帝国CMS>DEDECMS>PHPCMS。

威尼斯正规官网 14

2)字段的权限设置

把第一个tab页面的标签改为[phomenewspic]'select * from [!db.pre!]ecms_news',3,6,128,90,1,20,24[/phomenewspic],保存,更新主页,哈哈!成功啦!如图

有些字段,只希望在管理员或者编辑人员在编辑信息时才能设置,普通用户不给设置权限,这就需要给自定义字段一个完整的权限系统。这一点PHPCMS中做的非常不错,可以直接能过勾选“不允许设置该字段值的会员组”的选项来实现。帝国CMS中最后一步“系统模型建立”中“可增加”、“可修改”这几项似乎有权限设置的影子,只是实现了部分权限功能,而DEDECMS中则没有看到明确的字段权限设置选项。

威尼斯正规官网 15

所以,这一点PHPCMS>帝国CMS>DEDECMS。

在我的“虚拟主机”下,把所有的发表的都显示出来了,打叉的是因为没图。但是,所有的文章都出来了。实验成功。

3)不在前台投稿中显示

8 按照自己的方式显示:

有些时候设置某些字段,虽然普通会员也可以有给他赋值的权限,但是不需要或者不想在前台投稿中显示(如摘要等,有时候想简单点,只让用户发个标题和内容),所以很需要实现某个自定义字段只在后台编辑时可以填写,而在前台投稿界面中不自动显示。关于这点,在PHPCMS中只需设置“是否在前台投稿中显示”项为否即可,DEDECMS中字段选项中“前台参数”项中的“前台投稿及采集规则禁用本字段”亦实现了这一需求,至于帝国CMS中,可以通过系统模型设置是否为录入项实现,但似乎不够直观。

[phomenewspic]'10',3,6,128,90,1,20,0[/phomenewspic]

有时候,在使用PHPCMS自定义字段时,不希望字段在前台投稿中显示的另一个原因是,想对添加的一部分字段的表单样式作单独的修改或者作一些JS处理,PHPCMS内置的字段样式不太够用或者不太方便,所以在设置字段时选择不在前台投稿中显示,然后在模板中按需求手动添加这个字段的表单项,这一点在DEDECMS中有自定义表单HTML项,不需要像PHPCMS中这样变相实现字段HTML项的定义,帝国CMS中添加自段时有提供定义前台后台录入数据表单HTML的设置项,但他同时写出了提示“增加字段时请留空”,这个做法不太理解,不过,他在进行系统模型定义的最后一步可以统一设置每个字段的前后台数据录入界面表单HTML。不过,DEDECMS和帝国CMS中的字两项设置对普通新手用户可能反而带来疑惑,对熟悉二次开发的倒是挺方便的。

我的操作类型选择的是“0“,指的是栏目最新信息,这样的话,我的第一个参数就可以是栏目ID了,我的栏目ID分别是:10,12,15,16。如果不知道自己的ID,可以查看第5步。

威尼斯正规官网,从这个小点来看,普通用户PHPCMS>DEDECMS>帝国CMS,二次开发DEDECMS>帝国CMS>PHPCMS。

最后就是更改每一个table选项卡了。

关于帝国CMS、PHPCMS、DEDECMS这三款CMS自定义模型功能,实际还有很多值得对比分析的地方,都各有优缺点,实现应用中总会有感觉很爽的地方,同时也会有很纠结的地方,在这些方面我是深有感触的。

我的table选项卡代码是:

当然,本文并不在绝对的得出哪款CMS更好,哪款CMS不好的结论,只是根据自己实际使用的感触作一些简单的对比分析,上面对比的谁优于谁也只是基于我个人的感受,具体不同层次的用户依个人习惯可能感受不同,希望能给朋友们一些参考。

威尼斯正规官网 16


这样,我的每个table选项卡,可以按栏目ID显示了,没更改以前,是按数据库表的内容显示的。那样的话,我不做电影,不使用电影模版,不往电影的数据库添加信息的话,电影这个选项卡永远是空的。

9.说明

因为我这几个栏目选用的都是默认新闻模版,我的所有栏目信息都在news表中,所以,当我在第7步把第一个tab页面的标签改为[phomenewspic]'select * from [!db.pre!]ecms_news',3,6,128,90,1,20,24[/phomenewspic]以后,它把我所有的信息都显示出来了。

10.写的有点多,发现帝国CMS相比于其他CMS要专业些,本文本着让每一个初次接触帝国CMS的都能看懂的方式写作,有些表述可能不太清楚,肯定也会有我个人的没想全的地方,欢迎指正。

本文由威尼斯在线注册平台发布于热门资源,转载请注明出处:我发现网上关于操作帝国CMS标签的完整的系统的例子很少,所以各种CMS都推出了自定义模型和自定义字段的功能

上一篇:创建存储过程,可以创建一个过程供永久使用 下一篇:没有了
猜你喜欢
热门排行
精彩图文