カスタム ノード タイプに対して独自の cck ブール フィールド 'Show author' を作成しました。ノード タイプには、node.module によって設定されたデフォルトの作成者フィールドがあり、作成者と日付を設定できます。このフィールドセットに自分のフィールドを表示したい。
ここまでで、フィールドを移動して古いフィールドの設定を解除しただけです。
$form['author']['field_show_author'] = $form['field_show_author'];
unset($form['field_show_author']);
すべて正常に動作します。フィールドは希望する場所に表示され、値は適切に保存されます。
しかし、その後 locales.modules がやってきて、すべてを台無しにしてしまいます! field_info_instances() を使用してすべてのフィールドをループしますが、フィールドが設定されていないため、配列インデックスが見つからず、失敗します。
では、ロケールを壊さずにカスタム cck フィールドを既存の作成者フィールドセットに移動するにはどうすればよいでしょうか? フォームの「ルート」ではなく、そこに追加されるように指定できますか?