私は、Drupal 7用に開発を開始したモジュールのフォーム内で、checkboxes要素を使用しています。これは、モジュール開発とForm APIを使用する最初の試みです。特定のサイトのすべてのコンテンツタイプをリストするチェックボックスのリストを作成しています。すべてのコンテンツタイプの配列は、以下を使用して取得できます$nodeTypesRaw=node_type_get_names();
。キーとしてコンテンツタイプのマシン名を含み、値として人間が読める名前を含む配列が取得されます。
デフォルトでは、すべてのチェックボックスをオンにして、フォームが送信されるようにします。どうすればそれを達成できますか?drupalサイトのForm APIページは、チェックボックスのデフォルト値の設定に関してはあまり役に立ちません。
$nodeTypesRaw=node_type_get_names();
$nodeMachineNames=array_keys($nodeTypesRaw);
$form['process_comments']['custommod_published_comments_select_node_types']['custommod_published_comments_node_types_checkboxes']=array(
'#deafult_value'=>$nodeMachineNames,
'#options'=>$nodeTypesRaw,
'#type'=>'checkboxes',
);
最初は上のコードから始めましたが、機能しません。チェックボックスのリストは表示されますが、デフォルトではチェックされていません。ただし、変数はフォームの送信時に取得されます(drushとvar_dumpで確認)。
#default_value
、ではありません#deafult_value
。FAはAFではありません。