0

ここで行おうとしているのは、フィールドのグループがノード ビューにどのように表示されるかを制御することです。これはノード レベルの権限であり、これらの権限が同じコンテンツ タイプを持つ他のノードに影響を与えたくないため、ユーザー ロールによってそれらを制御したくありません。

たとえば、ROLEA、ROLEB、ROLEC という 3 つの異なる役割があるとします。各ロールには、フィールドにアクセスするための独自の権限セットがあります。ノードが初めて作成されるとき、ROLEA の役割を持つユーザーは、いくつかのフィールドを表示し、それらのフィールドの値を編集できます。ノードが公開されると、ルール モジュールを介してルール/アクションが呼び出され、そのノードのステータス フィールドが STAGE1 に設定されます。このイベント (新しいノードが作成された) の後、ユーザー (ROLEA) が自分で作成したばかりのノードに移動すると、以前は編集可能だったフィールドが読み取り専用になります。つまり、Rules モジュールでステータス フィールドの値を STAGE1 に設定し、そのノードが Drupal によってロードされる場合、ステータス値を確認する必要があります。これに基づいて、たとえば STAGE1 の場合は、他のフィールドを変更します。読み取り専用または編集可能な特定のノード または場合によってはユーザーから隠します。したがって、私の推測では、そのタイプのノードがロードされるたびに、ステータス フィールド (そのノード タイプで作成したフィールド) をチェックし、そのフィールドの値に基づいて、どのノードを決定するかを決定するモジュールを作成することです。表示または非表示にする必要があります。これは、その特定のノード タイプのフィールドに設定されている権限を上書きする必要があります。

私がやろうとしているのは、Roulesモジュールによって設定されたそのコンテンツタイプの特定のフィールドの値に基づいて、どのフィールドが読み取り専用/編集可能/非表示になるかをさまざまな段階に基づいて制御する方法を作成することです別のユーザー グループがそのノードで作業しています。私はオーガニックグループを使用していません。Drupal 7 と Rules モジュール、およびその他のパーミッション関連のモジュールをいくつか使用しています。しかし、ユーザー ロールとは別に、ノード レベルでフィールドの可視性を処理する方法がないことがわかりました。

同じ結果を達成する他の方法があると思いますか? このようなモジュールを作成する方法についてアイデアをいただければ幸いです。

あらゆるご意見に本当に感謝しています。

4

2 に答える 2

3

モジュールを作成し、以下を使用してノードフォームにフックを追加できます: hook_form_alterまたはhook_form_FORM_ID_alter

この種のフックを使用すると、必要に応じてノード フォームを簡単に変更し、特定のフィールドを非表示または読み取り専用にすることができます (ユーザー ロール、フィールド値など)。

于 2011-03-15T14:17:51.290 に答える