web-dev-qa-db-ja.com

すべてのイベントと各イベントにサインアップしたユーザーを表示するビューを作成する

私は Signup モジュールを使用しており、サインアップしたユーザーのすべてのイベントとアバター(デフォルトDrupalユーザー画像フィールド)を表示するビューを作成しようとしています各イベント。

これが私が達成しようとしていることのモックアップです。私は今のところアバター以外のすべてを持っています。

モックアップを表示

これまでのビューのエクスポートを参照

2
user842

このようなことをすることは、その限界にビューを押し上げることです。大量のデータを取得し、ノードIDでグループ化したいとします。ビューのインターフェイスを介してこれが可能かどうかはわかりませんが、ビューを実行しているエンジンで可能になると思います。

このかなり複雑なビューを達成しようとするのではなく、変更が難しくなる可能性がありますが、これは、より単純なクエリを使用して非常に簡単に行うことができます。このような単純なソリューションは次のようになります。

  1. サインアップ以外のすべての情報を表示するシンプルなビューを作成できます。 (ノードのタイトルなど)
  2. サインアップには既にビューがあり、イベントにサインアップしたユーザーが表示されます。少し変更して、イベントにサインアップしたユーザーのアバターを表示するようにできます。次に、このビューを前処理関数またはステップ1で作成したビューのテンプレートに埋め込むことができます。
  3. 完了です。

idealは、これらすべてを単一のビューで作成することですが、場合によっては、コストと利益を比較することを考える必要があります。サインアップしたノードを数百個リストアップしない限り、パフォーマンスの違いを測定できるとは思えません。しかし、この方法でそれを行うことで節約する時間はかなり多くなります。

これはビュー自体と同じで、非効率的ですが、ほとんどのサイトにとって重要ではなく、クエリやテーマ関数などをコーディングする必要がないため、多くの時間を節約できます。

更新:

引数(ノードIDなど)を使用してビューを埋め込むのは非常に簡単です。

$html = views_embed_view($name, $display_id, $arguments)

またはあなたの場合

$html = views_embed_view('signup_user_list', 'default', array('nid' => $nid));
1
googletorp

「イベント」という名前の「グループ」を作成します。すべてのOGモジュールをインストールする必要はなく、ほんの一部です。グループコンテンツタイプを作成する必要はありません。単に「イベント」が必要です。
人々はイベントを作成し、イベントに参加します。グループのデフォルトのアクセス許可に移動し、サブスクライブせずにイベントに参加できるようにして、グループをパブリックにします。

「文字列置換」モジュールを使用して、一部の言語を好みに合わせて簡単にカスタマイズしたり、グループテーマ関数をオーバーライドしたりすることができます。 「文字列置換」はシンプルで高速ですが、少し普遍的すぎる場合があります(それはあなた次第です)。どちらでも、参加の言語を思い通りにすることができます。テンプレートのオーバーライドにより、ユーザーインターフェイスに追加の変更を加えることができます。

ビューとカスタムtemplate.tpl.phpを使用してください!できた!その高速、軽量で簡単。ユーザーは、自分が「グループ」に参加していることを知ることは決してなく、得られる結果はあなたが望むものと完全に一致します。やさしい!

0
MGParisi

コンテンツタイプにユーザー参照が含まれていない場合は、ユーザー参照を追加し、関係付きでビューに含めます。

0
sharpbites