You are here

主题化drupal表单

老葛的Drupal培训班 Think in Drupal

Drupal拥有内置的函数,用来获取你定义的表单数据结构,并将其转换或者说是呈现为HTML。然后,许多时候你可能需要修改Drupal生成的输出,或者你可能想更好的控制该流程。幸运的是,在Drupal中,很容易实现这一点。
 
使用#prefix、#suffix和#markup
如果你的主题化需求非常简单,那么你就可以使用属性#prefix和#suffix在表单元素前面和/或后面添加HTML,从而满足需求:
 
$form['color'] = array(
    '#prefix' => '<hr />',
    '#title' => t('Color'),
    '#type' => 'fieldset',
    '#suffix' => '<div class="privacy-warning">' .
        t('This information will be displayed publicly!') . '</div>',
);
 
这一代码在颜色字段集上方添加了一条水平线,在其下方添加了一条私有消息,如图10-5所示。
 
10-5.#prefix和#suffix属性在一个元素前面和后面添加内容
 
你甚至可以在你的表单中把HTML标识文本声明为类型#markup(不过很少这样用)。任何不带#type属性的表单元素默认为markup类型。
 
$form['blinky'] = array(
    '#type' = 'markup',
    '#value' = '<blink>Hello!</blink>'
);
 
注意 这个向你的表单中引入了HTML标识文本的方法,一般认为与使用<blink>标签效果差不多。但是与编写一个主题函数相比,它不够干净利落,同时也增加了你网站设计人员的工作量。
 

Drupal版本:

评论

$form['blinky'] = array(
    '#type' => 'markup',
    '#value' => '<blink>Hello!</blink>'
);