web-dev-qa-db-ja.com

ユーザープロファイルのコメントを有効にするにはどうすればよいですか?

ユーザーがD7のエンティティであるため、ユーザータイプには「コメント」オプションが組み込まれていると思いました。それはそうではないようです。ユーザーがユーザープロファイルページにコメントを残せるようにしたいだけです。それを行う簡単な方法はありますか?

11
uwe

ノードをユーザープロファイルに接続する Profile2 を使用できるため、コメントを付けることができ、ユーザーへのコメントとして表示されます。

8
Nikit

私は試していませんが、 Reply module はとてもよく見えます。

返信はエンティティのコメントに対するD7回答です。コアコメントモジュールを置き換えることを意図したものではなく、ノード以外のエンティティを操作できないことを補完する可能性が高いです。

返信は基本的に、サブジェクトフィールドと本文フィールドを持つフィールド化可能なエンティティであり、モジュールにハードコードされており、フィールドAPIフィールドではありません。返信・コメントの本質だからです。エンティティはフィールド化可能であるため、バンドルにフィールドをアタッチすることで、「レビュー」または好きなものを作成できます。

7
moshe weitzman

現在Drupal 7コア、コメントモジュールはnode.module。コメントはエンティティですが、ノード以外のエンティティには追加できません。

この問題を確認して、更新を取得できます。 ノードからcomment.moduleを分離

5
Sang Le Thanh

「Twitter-facebook」の壁スタイルには、ステータス http://drupal.org/project/statuses の使用を推奨します。これは「コメント」エンティティではありませんが、かなりうまく機能します。

私もコードを見て、それはよく書かれていて、多くのフックがあります。

ステータスは次のものとも統合されます:ビューアクティビティフラグルールドメインモロム通知メッセージングPathautoサービスTwitterユーザーポイント

2
rafinskipg

各ユーザーが(たとえばレビューのように)1回だけコメントできるユースケースの場合、私が見つけた最良の解決策はフラグモジュールを使用することです。 Flagのバージョン7.3がフィールド可能になりました。したがって、「コメントを追加」フラグを作成し、テキストフィールドと、必要な他のフィールドを追加します。次に、フラグの内容をビューに表示できます。非常に柔軟性があり、拡張可能で、ハックのないソリューション。

2
Adam Harms

最終的にユーザープロファイルにコメントを実装する方法は、ユーザー参照フィールドを持つ「guestbook」コンテンツタイプを追加することでした。

誰かのユーザープロファイルを見ると、「node/add/guestbook?edit [field_guestbook_userreference] [und] [uid] = user123」にリンクしている「sign guestbook」をクリックできます。

Prepopulateモジュールは、ノード追加フォームのユーザー名に「user123」を事前に入力するために使用され、cssを使用してそのフィールドを非表示にします。ゲストブックでは、他のユーザーもコメントできるようにコメントが有効になっています。

私はビューブロックを使用して、ユーザープロファイルに「ゲストブック」のタイトルを表示します。

1
uwe

@MotoTribe( ここで同様の質問 )に触発されて、私は次のように解決しました:

必要なものは、ビュー、パネル、ルール、エンティティ参照、エンティティ参照の事前入力モジュールです。

  1. コンテンツタイプuser_commentsを作成し、本文フィールドを削除します(そうしない場合、ユーザーはタイトルと本文の2つのフィールドを入力する必要があります)。コメントはノードタイトルになります(255最大長)。エンティティ参照フィールドfield_user_reference_commentsを追加します。

  2. USERビュー(名前:user_comments)を作成し、「エンティティー参照」に関係を追加します。コンテキストフィルターを追加します。ユーザーUid>デフォルト値を指定-> UrlからのユーザーID。

  3. 内部ビューは2つのブロックを作成します(コンテンツペインを作成しました)。

    • 最初のブロック:UIDフィールドを追加し、結果を書き換えます:<a class="" href="/node/add/user-comments?field_user_reference_comments=[uid]">Add comment</a>
    • 2番目のブロック:関係を使用してコンテンツタイトルフィールドを追加します。必要に応じて、リレーションとフィールドを追加します。
  4. 新しいルールを追加します(ここからインポートし、上記の構文に従ってください):

    { "rules_redirect_on_add_a_user_comment" : {
        "LABEL" : "redirect on add a user comment",
        "PLUGIN" : "reaction rule",
        "OWNER" : "rules",
        "TAGS" : [ "user account" ],
        "REQUIRES" : [ "rules" ],
        "ON" : {
          "node_insert--user_comments" : { "bundle" : "user_comments" },
          "node_update--user_comments" : { "bundle" : "user_comments" }
        },
        "DO" : [
          { "redirect" : { "url" : "users\/[node:field_user_reference_comments]" } }
        ]
      }
    }
    
  5. パネルから「ユーザービュー」を有効にします。表示されているユーザーを追加し、ビューを追加します最初のブロック、ビューを追加します2番目のブロック。

  6. これで完了です。それはうまくいくはずです。必要に応じて複雑なビューを作成し、追加します。フィールド、フィルター、ソートなどが完璧に機能します。

1
pinueve

すべてのフィールドを持つコメントノードを作成します。その中の1つのフィールドは、profile2タイプを参照する必要があります(参照モジュールを使用)。次に、EVAモジュールを使用してそのノードをprofile2に接続できます。もっと良い答えがあれば、教えてください。

0

ユーザープロファイルは基本的にビューです。ビューにフックしてコメントを含めることができます。

0
karthik

フィールドコレクションアイテムをプロファイルに追加してから、任意のフィールドを追加できます。そのため、フィールドpermisionモジュールを使用し、すべてのユーザーにコメントを挿入する権限を与える場合、ユーザーはそれとともにコメントを挿入できます。ちゃんと動いてる

0
shekoufeh