You are here

添加特定于模块的设置(2)

   在Drupal中,表单被表示为一个嵌套的树状结构;也就是说,一个数组的数组。这个结构向Drupal的表单呈现引擎(rendering engine)描述了表单是如何表示的。为了可读性,我们将数组中的每个元素单独成行。每一个表单属性都以”#”开头,并作为数组的键。我们首先声明了表单元素的类型为checkboxes,这意味着通过使用一个带键的数组来构建多个复选框。我们在变量$options中已经得到了带键的数组。

 
    我们将选项(options)赋值为node_get_types('names'),该函数方便的返回了一个键值数组,里面包含了当前Drupal中可用的节点类型。它的输出看起来像这个样子:
'page' => 'Page', 'story' => 'Story'
 
数组的键就是节点类型在Drupal中的内部名字,而把可读性的名字(显示给用户的)放到了右边。如果你的Drupal中有一个名为“Savory Recipe”的节点类型,那么数组看起来应该这样:
'page' => 'Page', 'savory_recipe' => 'Savory Recipe', 'story' => 'Story'
 
 因此,在我们的web表单中,为节点类型page和story生成了相应的复选框。
 
    我们通过定义属性#title的值,为表单元素设置了一个标题。
 
注意 显示给用户的任何文本(比如我们表单字段的#title和#description属性),都放在了t()函数中,这个函数在Drupal中是用来翻译字符串的。通过把所有文本经过一个字符串翻译函数的处理,那么将你的模块本地化为一个不同的语言将会非常简单。我们没有在菜单项中使用该函数,这是因为菜单项会被自动翻译。
 
    下一个指示,#default_value,将是这个表单元素的默认值。由于checkboxes是一个多值的表单元素(也就是说,存在多于一个的复选框),所以#default_value的值将会是一个数组。
 
老葛的Drupal培训班 Think in Drupal

Drupal版本: