web-dev-qa-db-ja.com

フラグ-「突く」機能を再現

現在のユーザーをD7、ビュー3、フラグ3で「ポーク」したユーザーのリストを表示するフラグビューを作成する必要があります。 この質問drupal .org/node/296971 、どちらの命令も機能していないか、少なくとも設定を正しく行うことができません。

機能を定義するには:

  1. ユーザーには他のユーザーのリストビューが表示されます
  2. ユーザーが1人のユーザーの「poke」フラグリンクをクリックする
  3. 次に、ユーザーは/ pokes /を参照し、それらを突いた他のすべてのユーザーを表示します。

これは難しいセットアップであるか、いくつかの設定がありません(後者の可能性が非常に高いです)。ヒントや考えはありますか?

3
emc

Flag and Viewsモジュールを有効にしてテストサイトを作成しました。これまでのところ、meをポークしたユーザーを表示するビューを作成できました。

ユーザーにフラグを立てるための新しいフラグを作成します。これはグローバルフラグである必要はありません。フラグテキストは「ポーク」、フラグ解除テキストは「削除」にすることができます。

ユーザーには他のユーザーのリストビューが表示されます。ユーザーは1人のユーザーの[poke]フラグリンクをクリックします

  1. ユーザーテーブルにビューを作成する
  2. 新しい関係を追加します:フラグ:ユーザー
  3. [フラグ付きコンテンツのみを含める]をオフにします。 pokeフラグを選択します。作成者:現在のユーザー。 enter image description here
  4. 新しいフィールド「Flags:Flag link」が表示されます。追加してください。

これで、ユーザーを表示するビューと、ユーザーにフラグを付けるフラグリンクが表示されます。必要に応じてビューを変更します。 http://paste2.org/CGZshUFN

次に、ユーザーは/ pokes /を参照し、それらを突いた他のすべてのユーザーを表示します。

これは本当にトリッキーな部分です。

  1. ユーザーテーブルに新しいビューを作成します。
  2. 新しい関係を追加します:フラグ:ユーザーフラグ
  3. [フラグ付きコンテンツのみを含める]をオフにします。 pokeフラグを選択します。作成者:すべてのユーザー。 enter image description here
  4. 新しいコンテキストフィルターを追加します:フラグ:コンテンツID
  5. コンテキストフィルター設定で、追加したばかりの関係を選択し、現在ログインしているユーザーIDを使用するように設定します。 enter image description here
  6. これで、現在ログインしているユーザーにフラグを立てたユーザーIDのリストにアクセスできます。
  7. 新しい関係を追加します:フラグ:ユーザー
  8. この関係の設定で、「この関係が必要」にチェックを入れます。
  9. 新しいフィールドUser:nameを追加し、手順7で作成した関係を選択します。
  10. 新しい関係を追加します:フラグ:ユーザーフラグ(はい、ステップ2ですでに追加されていますが、先に進んでください)。
  11. この関係の設定で、手順7で作成したユーザー関係を選択します。 [フラグ付きコンテンツのみを含める]をオフにします。作成者:現在のユーザー。 enter image description here
  12. 新しいフィールドを追加します:フラグ:フラグリンク、ステップ#10で作成した関係を選択します。 http://paste2.org/tkWg99vp

上記のステップ12では、現在のユーザーにフラグを付けたユーザーのリストを表示できる「フラグバック」タイプのリンクと、フラグを戻すリンクを追加します。必要に応じてビューの表現を調整するには、多くのビューテンプレートの微調整が必​​要になります。

幸運を!

5
AyeshK

それも私のために働きます。しかし、複数の人が同じユーザーにフラグを立てたとき、私がそのプロファイルに行って、彼にフラグを立てたユーザーの数を見るとき、私は常に最初のものを見て他の人は見えません。

私のコードでは、このスクリプトで彼にフラグを立てたユーザーの数を数えます。

if ($flag) {
 print "The number of people who voted for this proposal:";
 print $flag->get_count($user->uid);
}

そして、私の出力は3人です。

ユーザーが1人しか表示されないのはなぜですか。

1