web-dev-qa-db-ja.com

ノードの作成時にフィールドを非表示にする

ノードの作成時にフィールドを非表示にし、モードの編集時に表示するにはどうすればよいですか?

11
user780

ご質問を理解できれば、カスタムモジュールを使用できると思います(この例では、モジュールの名前は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は、それぞれのフィールド名でなければなりません。

16
cigotete

フィールド権限モジュールでは、フィールドレベルの権限を設定できます。

  • フィールドの作成(コンテンツ作成の編集)
  • コンテンツ作成者に関係なくフィールドを編集する
  • ユーザーが作成したコンテンツの自分のフィールドを編集する
  • コンテンツ作成者に関係なくフィールドを表示
  • ユーザーが作成したコンテンツの自分のフィールドを表示する

これらのオプションを使用して、フィールドの役割ベースの権限を有効にすることができます。

権限が有効になっている場合、このフィールドへのアクセスはデフォルトで拒否され、権限管理ページから適切なユーザーロールに明示的な権限を付与する必要があります。一方、これらのオプションを無効にすると、フィールドの権限はコンテンツビューや編集権限から継承されます。たとえば、特定のノードの表示を許可されているユーザーは、このフィールドも表示できます。

フィールド権限

4
Refineo

hook_form_alter() を使用して ['#access'] プロパティをFALSEに追加すると、@ moon.watcherの回答と同じになります。

Drupal 6の場合は、これを行うためのモジュールが必要です。Drupal 7の場合は、 hook_form_alter())を呼び出すことができます テンプレートから。

3
pcambra

これは、ルールフォームサポートモジュール- https://www.drupal.org/project/rules_forms の使用例です。

次の機能が含まれます:

  • フォームの作成、検証、送信のイベントをフォームごとにアクティブ化します。
  • 条件とアクションで個々のフォーム要素またはフォーム全体をターゲットにします。タイトル、説明、重みなどのフォーム要素の属性を操作します。
  • フォーム検証中にフォーム要素の値を検証します。
  • ルールベースの検証が失敗したときにフォームエラーを設定します。
  • フォームの表示または送信時にユーザーを別のページにリダイレクトします。
  • 要素検査ツールを使用して、アクティブフォームの要素の属性を調べます。
2
ske313

ノードの追加/編集フォームをPanelページで引き継ぐことができます。これにより、フォーム上で必要なものを選択できます。

0
Dee