魔扣论坛

魔扣源码论坛业务
查看: 1078|回复: 8

[帝国CMS教程] 织梦、帝国及PHPCMS对比(7):自定义表单功能分析

[复制链接]
  • TA的每日心情
    奋斗
    12 小时前
  • 签到天数: 2958 天

    [LV.Master]开坛老将

    7万

    主题

    227

    回帖

    27万

    积分

    管理员

    Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

    魔扣币
    745789
    贡献
    157917
    威望
    32799

    最佳新人活跃会员热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2019-5-31 23:33:52 | 显示全部楼层 |阅读模式
    魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
                      站长朋友们在使用CMS建站的过程中有时候少不了要做一些供用户填写信息的表单,如果是单独去写程序去实现又显得小提大作,或者也显得麻烦,需要创建存储数据的数据表,写数据操作文件及改数据提交表单模板,而CMS的自定义表单功能则能很好的满足这样的需求,不需要太多的编程知识,一路点下一步,添加自定义字段,设置字段的属性,然后选择表单的模板,前台自动生成数据提交表单界面,通过程序自动获取数据字段完成对数据的写入和读取处理,大大简化了表单创建过程,然而实际不同CMS中自定义表单细节考虑的不同,仍然会给站长朋友们尤其是对编程了解不多的朋友带来比较多的困惑。
      本文中落叶就PHPCMS、帝国CMS及织梦的自定义表单功能细节作一些对比分析,供大家参考。
      自定义表单数据表的创建
      建立自定义表单的第一步基本都是提交表单的相关数据如表单名称、表单数据表名、表单介绍、选择表单模板等。
      PHPCMS:
      DEDECMS:
      对比上图所示PHPCMS和DEDECMS表单创建界面,PHPCMS表单可以设置是否开启、开始和结束时间,并且可以设置是否发邮件,这三点附加功能是挺不错的,尤其是表单提交后自动给指定邮箱发邮件的功能,很方便站长及时了解到用户提交的信息。
      不过,PHPCMS只能生成表单页,不支持前台对表单数据的直接显示,而DEDECMS中除了可设置表单发布模板,还可通过自定义列表模板、内容模板来对用户提交的表单数据进行展示,同时也可选择是否公开这些数据,优点是方便数据自动展示,缺点时模板不是以选择的方式呈现,而要手动填,一旦  input中默认值被删除,用户不能直观了解到该填哪类模板。
      当然,对于数据的展示上,无论是PHPCMS和DEDE中即使没用后台列表模板和发布模板的设置,也可以通过数据调用标签来调用。PHPCMS中使用GET标签调用即可,而DEDE中则可通过SQL标签来调用,不过两者前提是都需要大家了解SQL知识。DEDE的list_diyform.htm中内置了对表单数据的调用,相对更适合新手朋友们,但对于本身对SQL或编程有一些了解的朋友,DEDE这里的设计反而显得局限了。针对数据的调用这块,后面落叶再作详细的分析。
      自定义字段添加及设置
      PHPCMS:
      DEDECMS:
      对比二者的自定义字段设置界面发现,二者除了基本的设置字段名称,字段提示文字之外,都内置有对字段内型的设置。和自定义模型一样,字段类型设置的过程其实都整合了表单界面自动生成及数据自动展示过程,用户通过选择不同的字段类型如附件类型,表单界面不需要自己写文件上传功能,会自动生成文件上传框,能够很方便的实现复杂的表单功能。
      PHPCMS和织梦数据(字段)类型的区别在于细节设置上。PHPCMS自定义字段类型有单行文本、多行文本、选项、编辑器、日期和时间、数字、图片、地区、文件等,DEDE的字段类型有单行文本、多行文本、HTML文本、整数类型、小数类型、时间类型、使用option下拉框、使用radio选项卡、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语句来调用数据。
      系列文章:
            织梦、帝国及PHPCMS对比(1):自定义模型功能分析
            织梦、帝国及PHPCMS对比(2):支持SQL调用的标签
            织梦、帝国及PHPCMS对比(3):自定义URL规则
            织梦、帝国及PHPCMS对比(4):碎片功能分析
            织梦、帝国及PHPCMS对比(5):标签解析方式分析
            织梦、帝国及PHPCMS对比(6):专题功能对比分析

                
    会员购买:>> 点击购买 << | 魔扣币购买:>> 点击购买 <<
    承接业务:服务器代维丨网站托管丨SEO
    联系客服:微信:morko-net | QQ:1367681973

    该用户从未签到

    2

    主题

    238

    回帖

    478

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    238
    贡献
    238
    威望
    0
    发表于 2019-6-1 10:59:42 | 显示全部楼层
    报告!别开枪,我就是路过来看看的。。。

    该用户从未签到

    1

    主题

    243

    回帖

    488

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    244
    贡献
    244
    威望
    0
    发表于 2019-6-5 15:39:49 | 显示全部楼层
    最高的不是山峰,是脚步;最深的不是海水,是情感;最清的不是溪流,是心灵;最热的不是火把,是激情;最宝贵的不是金钱,是朋友;最开心的事,不是博客,魔扣源码论坛是在这里看望朋友愿我的朋友每一天都健康平安!幸福快乐!

    该用户从未签到

    1

    主题

    261

    回帖

    523

    积分

    高级魔扣

    Rank: 4

    魔扣币
    261
    贡献
    261
    威望
    0
    发表于 2019-8-5 22:59:25 | 显示全部楼层
    好人一生平安~~',魔扣源码论坛更加强大。

    该用户从未签到

    0

    主题

    230

    回帖

    460

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    230
    贡献
    230
    威望
    0
    发表于 2019-12-24 17:06:14 来自手机 | 显示全部楼层
    为你这无私奉献的精神所深深的折服,特此颁发好人证,以此鼓励!

    该用户从未签到

    1

    主题

    237

    回帖

    475

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    237
    贡献
    237
    威望
    0
    发表于 2020-2-5 11:13:31 | 显示全部楼层
    宝贝儿,只要你幸福,我就幸福,魔扣源码论坛不管你在谁身边。

    该用户从未签到

    1

    主题

    262

    回帖

    527

    积分

    高级魔扣

    Rank: 4

    魔扣币
    264
    贡献
    264
    威望
    0
    发表于 2020-2-16 21:12:26 | 显示全部楼层
    一句祝福,浓缩着真挚的情感,犹如芳香四溢的美酒,恰似柔润馨香的春风…一份感动,一份甜美,一份陶醉,一份深情,浓郁成这千丝万缕的情愫,荡起心海涟漪重重…谢谢你,亲爱的朋友。将这浓郁的情感嵌入荧屏,捧出一颗心的真诚祝福。魔扣源码论坛愿快乐与幸福永远相伴你的每一天

    该用户从未签到

    3

    主题

    252

    回帖

    508

    积分

    高级魔扣

    Rank: 4

    魔扣币
    253
    贡献
    253
    威望
    0
    发表于 2020-5-1 11:10:00 | 显示全部楼层
    我相信,爱可以排除万难。只是,万难之后,又有万难,这是我更相信的。',
  • TA的每日心情
    开心
    2022-10-11 10:59
  • 签到天数: 17 天

    [LV.4]神出鬼没

    2

    主题

    271

    回帖

    596

    积分

    高级魔扣

    Rank: 4

    魔扣币
    458
    贡献
    305
    威望
    0
    发表于 2022-10-4 19:31:57 | 显示全部楼层
    真是被感动的痛哭流涕……无法表达我对魔扣源码论坛的感谢!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 联系我们
    • 新浪微博 :
    • 在线客服 :魔扣科技 
    • 源码QQ群 :魔扣源码论坛官方总群
    • 联系邮箱 :charlin#morko.net
    • 微信扫一扫
    快速回复 返回顶部 返回列表