web-dev-qa-db-ja.com

ノード参照値を所有者に制限する

私はたくさんのモジュール(ノード参照Nodeアクセス、ビューフィールド、ビュー参照)で遊んだことがあり、非常に単純な仕事をするモジュールを見つけることができないようです; 1つのコンテンツタイプで別のコンテンツタイプの現在のユーザーが所有するすべてのノードの選択リストを提供するフィールド。

(おおよそ)ブログのコンテンツタイプと考えてください。

  • ブログ1-ユーザー1が所有
  • ブログ2-ユーザー2が所有
  • ブログ3-ユーザー1が所有

別のコンテンツタイプ(更新)では、関係を構築するために使用されるフィールド(つまり、この更新が関連付けられるブログを選択)があり、そのフィールドには、そのユーザーが所有するブログが入力されます。

  • [ブログ]を選択します(ユーザー1の場合、リストには以下が含まれます;
    • ブログ1
    • ブログ3

私はこれまでに多くのことを読んだり、インストールしたりしているので、機能させることができません。私が得た最も近いものは、ビューの名前を含むフィールドであり、あまり役に立ちません。

編集:スクリーンショット: Manage FieldsTop section of Field editBottom section of Field edit

6
Christian

Drupal 7。

  1. ビュー の最新の開発スナップショットをインストールします。
  2. Chaos tools suite の最新の開発スナップショットをインストールします。
  3. インストール 参照 ベータ3。
  4. ビューUIモジュールと、参照に付属するNode参照モジュール)を有効にします。
  5. 新しいビューを作成します。
  6. 「参照」表示をそのビューに追加します-これは、参照モジュールのインストールから取得する特別なビュー表示タイプです。これはページまたはブロック表示ではありません。
  7. Node参照フィールドをコンテンツタイプに追加します。これで、手順6で作成したビューの表示を選択して、参照できるノードのリストをフィルタリングできます。これは、 「ビュー-参照可能なノード」フィールドセット。 enter image description here
4
Tom Kirkpatrick

私が正しく理解している場合は、ビューをnodereferenceウィジェットのソースとして使用し、適切なフィルターを指定して、現在のユーザーが作成した特定のタイプのノードのみを表示することができます。ビューを使用するには(ビューがインストールされていて、適切なパーマがあると想定)、次のことができます。

  • コンテンツ管理->コンテンツタイプ->に移動してノード参照を編集します[すべてのコンテンツタイプ]を編集します->フィールドを管理します->[すべてのフィールド名];
  • フィールドセット内グローバル設定をクリックしてフィールドセットを展開します詳細-参照可能なノード(ビュー);
  • ノードの選択に使用されるViewで適切なビューを選択します;
  • 引数を使用したい場合は、View argumentsで指定できます。
5
Andy

D7の場合は references モジュールを使用する必要があります。これにより、Andyが彼の質問で説明したように、ビューでフィルタリングできます。

注:コードが含まれているはずのベータ2が出てきたばかりで(5月7日)、そのため、もう一度ダウンロードする価値がある前に試してみたとしても

2
Jeremy French