我正在尝试在文本字段上实现#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。
答案 0 :(得分:1)
我的猜测是,因为CCK字段field_contenttype_fieldname
实际上不是文本字段,但是自定义FormAPI字段CCK提供了类文本字段,因此它不消耗field_prefix
属性。
从print_r()
中尝试$form
该字段并查看其#type
是什么。