ノードの作成時にフィールドを非表示にし、モードの編集時に表示するにはどうすればよいですか?
ご質問を理解できれば、カスタムモジュールを使用できると思います(この例では、モジュールの名前はtest_remove_field
)および次のコードを含めます。
function test_remove_field_form_alter(&$form, &$form_state) {
if (arg(0) == 'node' && arg(1) == 'add') {
$form['field_test']['#access'] = 0;
}
}
注:field_test
は、それぞれのフィールド名でなければなりません。
フィールド権限モジュールでは、フィールドレベルの権限を設定できます。
これらのオプションを使用して、フィールドの役割ベースの権限を有効にすることができます。
権限が有効になっている場合、このフィールドへのアクセスはデフォルトで拒否され、権限管理ページから適切なユーザーロールに明示的な権限を付与する必要があります。一方、これらのオプションを無効にすると、フィールドの権限はコンテンツビューや編集権限から継承されます。たとえば、特定のノードの表示を許可されているユーザーは、このフィールドも表示できます。
フィールド権限
hook_form_alter() を使用して ['#access']
プロパティをFALSE
に追加すると、@ moon.watcherの回答と同じになります。
Drupal 6の場合は、これを行うためのモジュールが必要です。Drupal 7の場合は、 hook_form_alter())を呼び出すことができます テンプレートから。
これは、ルールフォームサポートモジュール- https://www.drupal.org/project/rules_forms の使用例です。
次の機能が含まれます:
- フォームの作成、検証、送信のイベントをフォームごとにアクティブ化します。
- 条件とアクションで個々のフォーム要素またはフォーム全体をターゲットにします。タイトル、説明、重みなどのフォーム要素の属性を操作します。
- フォーム検証中にフォーム要素の値を検証します。
- ルールベースの検証が失敗したときにフォームエラーを設定します。
- フォームの表示または送信時にユーザーを別のページにリダイレクトします。
- 要素検査ツールを使用して、アクティブフォームの要素の属性を調べます。
ノードの追加/編集フォームをPanelページで引き継ぐことができます。これにより、フォーム上で必要なものを選択できます。