0

フォームに追加の UI を追加できるように、テキスト フィールドに #field_prefix を実装しようとしています。

基本的に次のような関数を使用して、このような他のオーバーライドを行うモジュールがあります。

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
    }

ドキュメントは次のとおりです

テーマの名前を変更して効果的に無効にしました-競合する他のオーバーライドがぶら下がっていないことを証明する必要があります。

私は何が欠けていますか?

更新: #field_name が適切な条件を満たしたときに、 theme_form_element をオーバーライドしてプレフィックスを手動で挿入することになりました。ハックに感じますが、text_textfield は単に #field_prefix をサポートしていません。

4

1 に答える 1

1

私の推測では、CCK フィールドfield_contenttype_fieldnameは実際にはテキスト フィールドではありませんが、CCK が提供するカスタム FormAPI フィールドはテキスト フィールドのようなものfield_prefixであり、属性を消費しません。

print_r()そのフィールドを ing してみ$formて、それが何であるかを確認してください#type

于 2009-07-29T20:17:21.290 に答える