Drupal Form-API:#field_prefix在textfield上不起作用

时间:2009-07-29 20:11:50

标签: php drupal drupal-fapi

我正在尝试在文本字段上实现#field_prefix,这样我就可以在表单中添加一些额外的UI。

我有一个模块,我正在做其他类似的覆盖,其功能基本上如下所示:

function modulename_form_alter(&$form, $form_state, $form_id){
    if ($form_id == "contenttype_node_form"){
        $form['field_contenttype_fieldname'][0]['#prefix'] = 'prefix';  //this line works           
        $form['field_contenttype_fieldname'][0]['#field_prefix'] = 'field_prefix';  //this line doesn't work
    }

这是文档,看起来非常简单: http://api.drupal.org/api/file/developer/topics/forms_api_reference.html/6#field_prefix

我已经重命名了我的主题以有效地禁用它 - 应该证明我没有任何其他重写可能会发生冲突。

我错过了什么?

更新 当#field_name满足正确条件时,结束覆盖theme_form_element以手动插入我的前缀。感觉很讨厌,但text_textfield根本不支持#field_prefix。

1 个答案:

答案 0 :(得分:1)

我的猜测是,因为CCK字段field_contenttype_fieldname实际上不是文本字段,但是自定义FormAPI字段CCK提供了文本字段,因此它不消耗field_prefix属性。

print_r()中尝试$form该字段并查看其#type是什么。