web-dev-qa-db-ja.com

CCK(およびその他の#after_buildプロセス)でフォームAPIはどのように機能しますか?

CCKフォームにフックして何かを変更したい場合、通常、$form['#after_build']からカスタム関数を呼び出す必要があります(そうですか?)。

その際、$ form['field_name']['#disabled'] = TRUE;を記述できないことに気付きましたが、代わりに#attributesアプローチを使用する必要があります。

どうして?私は何か間違ったことをしていますか?

3
Capi Etheriel

フォームAPIは通常それを行っていますが、おそらくafter_build関数を呼び出す前にそれを行います。

#after_build関数は form_builder() で呼び出され、#disabled処理は _ form_builder_handle_input_element() で呼び出され、form_builder()で以前に呼び出されます。

2
Berdir