0

我正在尝试在文本字段上实现#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 以手动插入我的前缀。感觉 hacky,但 text_textfield 根本不支持#field_prefix。

4

1 回答 1

1

我的猜测是,作为 CCK 字段field_contenttype_fieldname实际上不是文本字段,而是 CCK 提供的自定义 FormAPI 字段就像一个文本字段,因此它不使用该field_prefix属性。

尝试print_r()将该字段排除在外,$form看看它#type是什么。

于 2009-07-29T20:17:21.290 回答