cms网站内容如何自定义(CMS建站过程中有时候少不了表单功能细节作一些对比分析)
优采云 发布时间: 2021-09-04 20:17cms网站内容如何自定义(CMS建站过程中有时候少不了表单功能细节作一些对比分析)
在使用cms建站的过程中,站长和朋友有时需要制作一些表格供用户填写信息。如果是单独的程序来实现它,似乎是琐碎或麻烦的,需要创建。数据表用于存储数据、写入数据操作文件、修改数据提交表单模板,而cms的自定义表单功能可以满足这样的需求,无需太多编程知识,一路下一步,添加自定义字段,设置字段的属性,然后选择表单模板。前台自动生成数据提交表单界面,通过程序自动获取数据字段,完成数据的写入和读取处理,大大简化了表单的创建过程,但实际情况有所不同 细节上的不同考虑cms中的自定义表单,还是会给站长朋友,尤其是对编程不太了解的站长朋友造成更多的困惑。
本文罗野将对PHPcms、Empirecms和织梦的自定义表单函数的细节做一些对比分析,供大家参考。
创建自定义表单数据表
创建自定义表单的第一步,基本上就是提交表单的相关数据,比如表单的名称,表单数据表的名称,表单的介绍,表单的选择模板。
PHPcms:
DEDEcms:
对比上图的PHPcms和DEDEcms表单创建界面,PHPcms表单可以设置是否打开,开始和结束时间,是否发送邮件。这三个附加功能都相当不错,尤其是表单提交后自动发送邮件到指定邮箱的功能,非常方便站长及时了解用户提交的信息。
但是PHPcms只能生成表单页面,不支持前台直接展示表单数据。在DEDEcms中,除了表单发布模板,还可以自定义列表模板和内容模板。显示用户提交的表单数据,同时可以选择是否公开数据。优点是方便数据的自动显示。缺点是模板没有选择性呈现,需要手动填写。一旦删除了输入中的默认值,用户就无法直观的知道要填写什么样的模板。
当然,对于数据的展示,无论是PHPcms还是DEDE,即使没有使用后台列表模板和发布模板设置,也可以通过数据调用标签进行调用。在PHPcms中,可以使用GET标签进行调用,而在DEDE中,可以使用SQL标签进行调用,但两者的前提是大家都需要了解SQL知识。 DEDE的list_diyform.htm内置了对表单数据的调用,相对来说比较适合新手朋友,但是对于有一定SQL或者编程知识的朋友来说,DEDE这里的设计比较有限。对于数据的调用,我们会在后面的落叶部分做详细的分析。
添加和设置自定义字段
PHPcms:
DEDEcms:
对比两者的自定义字段设置界面,发现除了基本的设置字段名称和字段提示文本外,都内置了字段内部类型的设置。和自定义模型一样,字段类型设置过程实际上是集成了表单界面的自动生成和数据的自动显示。通过选择附件类型等不同的字段类型,表单界面不需要自己编写文件上传功能,文件会自动生成。上传框可以轻松实现复杂的表单功能。
PHPcms和织梦数据(字段)类型的区别在于详细的设置。 PHPcms自定义字段类型包括单行文本、多行文本、选项、编辑器、日期时间、数字、图片、区域、文件等。DEDE的字段类型包括单行文本、多行文本、 HTML文本、整数类型、小数类型、时间类型、使用选项下拉框、使用单选标签、CHECKBOX复选框、图片、附件类型等。其实两者的字段类型功能模块是类似的,还有应该是一些。但是DEDE的描述似乎不够直观。单行文本(varchar)和单行文本(char)等对于新手用户来说并不容易理解。纠结这两者的区别,什么是varchar,什么是char,DEDEcms里面的细节一直比PHPcms好,但是这里的处理好像不够详细,还是DEDEcms认为一个自定义的表单不应该是新手用户吗?
另外,PHPcms中每个字段类型都有前端显示样式、默认值、编辑器宽高等详细设置,DEDEcms这里的设计显然太简单了。
自定义表单调用(参考)
一般来说,每个自定义表单生成后,都会提供一个独立的访问地址,但实际站长朋友一般不限于独立访问自定义表单。更希望的是,表单可以嵌入到一些特定的页面(如主题页面)中,与页面集成在一起。
PHPcms提供了一个很方便的调用函数,就是直接使用模板中的{cache_read(1.html)}来调用ID为1的表单,其实就是通过include目录下的global.func . php公共函数文件中的cache_read函数用于读取静态页面形式缓存的表单页面。这样就可以将表单文件以静态HTML的形式很好的融入到目标页面中。
DEDEcms 似乎没有提供调用表单的好方法。前段时间,有的程序员在使用织梦套站时,需要给话题添加评论功能。如果不方便用DEDE的留言板改,不方便通用,所以考虑用DEDE的自定义表单功能来实现,需要嵌入表单界面 到主题页面关联主题ID,可以直接在主题页面提交数据和调用数据。这时候才发现,通话很不方便。最粗暴的方便是直接用IFRAME来装箱,但是显然这样让人感觉不太好,最好是将表单页面以JS的形式输出,以JS的方式引用,或者更好的体验直接通过 AJAX 调用它们,但实际情况仍然使问题复杂化。如果你会写AJAX来操作,你基本上不会被这种表单处理的问题所困扰。
当然,在PHPcms中,使用缓存来调用表单也带来了一些新的问题。在实际使用中,经常会遇到表单模板更新了,但是表单调用却无法更新的情况。问题出在缓存更新的问题上,PHPcms的很多优点都源于他的缓存,也有很多纠结的问题也源于他的缓存。
自定义表单数据的调用
用户通过自定义表单提交数据。在某些情况下,站长只希望管理员在后台看到它,而在其他情况下,他希望显示数据并在网站上调用。
如上所说,DEDEcms默认提供了表单数据调用和显示的模板,同时它还控制着数据是否显示。但是实际的数据展示更多的是希望能整合到网站的页面上,而不是单纯的单页列表,而且DEDEcms默认模板中的数据调用涉及到原生的PHP语法,也就是不适合其他页面的集成,所以需要使用数据调用标签来调用。最直接的方式就是调用SQL标签:
例如在自定义表单1中调用ID为1的数据
{dede:sql sql='Select * from dede_diyform1 where'}
[field:title/]
{/dede:sql}
PHPcms中的数据调用基本类似,直接使用GET标签:
{get:sql sql='Select * from phpcms_diyform1 where'}
[field:title/]
{/get}
不同的是PHPcms后台提供了生成GET标签的功能。用户可以在后台模板的在线管理中选择生成SQL语句的方式,方便的生成SQL语句来调用数据。
[作者相关文章]
Empire、PHPcms和织梦的对比(一):自定义模型的功能分析
Empire、PHPcms和织梦对比(二):支持SQL调用的标签
Empire、PHPcms 和织梦 对比(三):自定义 URL 规则
Empirecms和PHPcms对比(四):分片功能分析
Empire、PHPcms和织梦的对比(五):标签分析方法解析
Empire、PHPcms和织梦对比(六):专题特征对比分析
黄页B2B系统模型和基于cms的站群模型分析
从PHPcms, Empirecms谈站长如何选择cms
作者:落叶(/guohui)网站: