Drupal有许多旨在帮助网站建设者和用户向网站添加表单的模块.下面是对其中的4种的粗略比较.
Webform
Webform模块旨在允许您在网站前端添加自定义表单.每个表单存储为一个节点,所以你可以像添加内容一样添加新的表单.它对于一些调查类网站或是想要有不同于标准的联系表单的想法是很有用的.
优势
l Webform已经存在了很长时间,非常成熟而且有大量的模块集成.
l Webform可以做出各种各样的含有多种不同元素的表单.
l 因为Webform是节点,所以它集成了节点的所有功能(计划发布,克隆,访问控制等).
l 与entity-based forms(基于实体的表单)相比webforms是轻量级的且更具有伸缩性,可以处理含有数以百计字段的多页表单.
劣势
l Webform是以自己定制的方式,而非标准的实体系统进行存储.
l 使用Webform-specific集成不同的字段类型,而非使用字段模块集成.
l 由于不使用实体提交所以没有大量的集成模块.
l Webform的维护者Quicksketch说他不愿开发Drupal8,因此Drupal8的
Webform移植将留给他人完成.
l 无法用web表单编辑实体
Entityforms(实体表单)
Entityforms模块和Webform看上去同样使用Entity API.它使用正常的entity/field api作为一种表单建设.你可以有尽可能多地表单,也可以添加任何你想要的字段.
优势
l Entityforms可以制作多种多样的有许多不同字段的表单.
l Entityform已经被移植到Drupal8了.
l Entityforms使用entity API可以保证它可以与一下模块联合适用:
l Views
l Rules
l Entity Reference
l Organic Groups
l Drupal中包含的各种字段模块,包括:Date,File,Geofield,Name,Address,Media等
l 其他的实体模块将与这个模块一起起作用,如:Entity Operations.
l 集成了字段组
l 集成了条件字段
l Entityform相当完善
劣势
l Entityforms不能用来编辑节点或评论。
l 每个包只能有一个表单。
l 任何表单一次只能编辑一个实体。
Flexiform
Flexiform的主要目的是为创建表单时添加/编辑其他实体提供一个用户界面。Flexiform允许你作为一个建站者去配置尽可能多的表单来编辑你想要的实体。若有可插拔的建设者和元素系统,它可能可以在你的网站上的任何实体配置多步骤地表单。Flexiform也使用类似于CTools的关联系统来允许你在一个表单编辑多个实体。Flexiform可以提供内容存储与内容编辑的完全分离。flexiform_webform sub-module提供与Entity Form基本类似的功能,所以Entityform和flexiform的组合将会是很好的一种形式。
优势
l Flexiform可以制作多种多样的有许多不同字段的表单.
l Flexiform使用entity API可以保证它可以与一下模块联合适用:
l Views
l Rules
l Entity Reference
l Organic Groups
l Drupal中包含的各种字段模块,包括:Date,File,Geofield,Name,Address,Media等
l 集成了字段组
l Flexiform可以用来编辑或添加实体。
l Flexiform可以通过联系将多种实体放入一个表单。如:用Flexiform创建一个用户编辑有来自各种profile2字段的表单是很容易的。
l [在进行]Flexiform允许你配置多步骤地表单。
l Flexiform可以为一个实体类型提供无数的表单。如果你想用3种不同的方式提交反馈表单,但希望这些表单被视为同一种来响应,这个用flexiform来做时很容易的。
l Flexiform可以覆盖现有的节点表单以允许建站者不通过代码和hook_form_alter()来编辑已存在的系统表单。
l Flexiform由一个可插入的元素系统,可以很容易的通过少量代码添加你想要的元素。
l Flexiform允许您在您的表单上添加自定义的html块。
l Flexiform已经被移植到了Drupal8。
l Flexiform的维护者已经在几家大型 ,高流量网站上使用它,其中包括事件预订系统和高校管理软件。
劣势
l Flexiform是一个年轻的模块,尚未引起社会上太大的关注。
l 一些功能还是有些粗糙的边缘。
l 可用的元素列表还不全面。
l 条件字段尚未集成。
Form Builder(表单生成器)
Form Builder为构造 Drupal Form API表单提供了一个用户界面。因此它具有 Drupal Form API所有的灵活性,但是它不提供保存提交的任何形式。与其他3个有点不同的是,它只输出你添加到网站的表单的代码,但是将网站建设的程序验证和提交机制遗留了下来。
Quick Forms(快速表单)
可替代Webform的轻量级选择。是为了具有可扩展行的开发者使用而创建的。
原文地址:https://drupal.org/node/2083353