第十章 表单API

Drupal有一个用来建立、验证和处理HTML表单的特色应用编程接口(API)系统。它将表单抽象表示为一个由属性和值组成的多维数组。当一个页面被创建的时候,表单翻译引擎就会将这个数组转化为实际的表单。而在这个过程中产生了以下几个值得注意的方面:
 
•    我们选择建立数组然后通过引擎生成表单,而不是直接输出HTML页面。
•    由于我们是像建立数据一样在描述表单,所以我们可以对表单进行添加、删除、排序和改写。这在你想使用其他模块简洁迅速的改写一个已经存在的表单时显得特别方便。
•    任何表单元素都可以映射到任意的主体函数上。
•    可以为任意表单添加额外的验证和处理。
•    当用户填写表单并提交它们的时候可以提供保护以免受表单注入攻击的危害。
•    关于如何使用表单的学习曲线将会变得稍为陡峭一点(将会更难)。
 
在这一章,我们就将面临这迎面而来的学习曲线。你将学习到:表单引擎是如何工作的;如何建立、验证、处理这些表单;当你想使一个规则有例外的时候如何才能使翻译引擎乖乖听话。这一章概述了表单API在Drupal6中的实现。我们将从检查表单处理引擎如何工作开始。如何你刚从Drupal的表单起步,并且想寻求一个实际的例子,你可以跳到“建立基本的表单”这一节。如果你在搜寻某个表单属性的细节,你可以在本文最后一节“表单API属性”中得到答案。