問題タブ [threaded-comments]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1206 参照

mysql - スレッド化されたメッセージの SQL クエリ

私のサイトには、あるユーザーが別のユーザーにメッセージを送信できるメッセージ機能があります。メッセージはスレッド化をサポートします。親メッセージは任意の数の子を持つことができますが、深さは 1 レベルのみです。

メッセージ テーブルは次のようになります。

各「親」メッセージの後に子メッセージの折りたたまれたビューが続くページにメッセージを表示したいと思います。

GROUP BY 句または同様の構文を使用して、親メッセージと子メッセージをすべて 1 つのクエリで取得できますか? 現在、親メッセージのみを取得してから、それらをループし、それぞれに対して別のクエリを実行して、関連するすべての子メッセージを取得しています。

次のようなメッセージを受け取りたいです。

0 投票する
1 に答える
825 参照

php - PHP MySQL、ページ付きのネスト/スレッド コメント、LIMIT 10 OFFSET ect

私はしばらくの間答えを探していましたが、答えが見つからないようです..私はここの誰かが助けてくれることを願っています.ネストされた/スレッド化されたコメントの、およびユーザーが1,000を超えるコメントを持っている可能性がある場合、1つのページにすべてのコメントを表示する必要はありません..私が私ができるようにそれをしなければなりません。

これが私のMySQLテーブルです(まだリリースされていない新しいテーブルなので、必要に応じて変更できます)

id = 自動増加したコメントの id
toUid = 対象のプロファイル/ユーザー
fromUid = コメントの送信者
Pid = 親 id の id..
Puid = 親 id のユーザー id 番号
Pseen = 親の場合ユーザーがコメントを見た見た
= toUid がコメントを見た場合コメント = fromUid が残したコメント tim = 残された時間
Pid = 人の ip


とにかく、ユーザープロファイルにコメントを付けようとしています。そこでは、返信したい場合は、前の/親のコメントへの返信でネストされています。
ページ上のコメントの量も 10 または 20 に制限したいと思います。この数には、ネストされたコメントも含まれます。

たとえば、ページ 1 に 10 個のコメントが必要な場合

次に、2 ページ目で、最初のコメントが別のコメントへの返信である場合、そのページに 10 個のコメントしか保持できない場合は、返信された元の親コメントから開始します。追加のコメントを上部に表示するか、1 ページ目の下部に追加のコメントを表示しても問題ありません。どちらが簡単かはわかりません。

MySQL の IN 句でこれができると思っていましたが、エラーが発生しました.." 試してみました -

そして得ている

今まで見たことがない..

ご覧いただきありがとうございます。

0 投票する
1 に答える
1055 参照

php - PHP スレッド化されたコメントのページネーション

http://www.jongales.com/blog/2009/01/27/php-class-for-threaded-comments/のスレッド化されたコメントを使用していますが、ページネーション システムを実装する方法がわかりません。解決策を探したが何も見つからなかったので、誰かが私に方向性や何かを教えてくれたら...

0 投票する
2 に答える
2682 参照

html - ネストされたコメントに返信フォームを追加する最もクリーンな方法

ネストされた (reddit のような) コメントをアプリに追加しています。これまでcommentのところ、CSS でこれを行う divを使用しています。

これは、コメントを表示するのにうまく機能します。私の質問は、各コメントに返信フォームを追加する最もクリーンな方法は何ですか (ユーザーが何らかの返信ボタンをクリックしたときにのみ表示されます)。

これは通常、コメント用のすべての入力ボックスをすぐに追加し、最初は非表示にして、ユーザーが返信ボタンをクリックした場合にのみ表示することによって行われますか? <form>または、ユーザーがそのコメントの返信をクリックしたときにのみ、関連する HTML コードを特定の div に追加する必要がありますか?

これを行う最もクリーンな方法は何ですか?

0 投票する
0 に答える
56 参照

python - アプリ threadedcomments_extras を表示または無視するにはどうすればよいですか?

私は得ています:

media/apps ディレクトリに、Django アプリのように見えるものがあります。

ただし、メディア アプリを ./apps/ にコピーすると、ワーカー スレッドがすぐに強制終了されます。settings.py で「threadedcomments_extras」をコメントアウトすることも同様です。

threadedcomments_extras をインストールして動作させるにはどうすればよいですか、または threadedcomments_extras のすべての期待を削除するにはどうすればよいですか?

ありがとう、

0 投票する
0 に答える
1654 参照

django - Django は、上/下の投票でコメントをスレッド化しました (Hacker News や Reddit など)。

私はDjangoが初めてです。RedditやHacker Newsのように、完全にスレッド化され、各コメントを上下投票でソートするディスカッションアプリをDjangoで構築しようとしています。

私は django-voting アプリを使用してきましたが、可能であれば引き続き使用したいと考えています。

私のmodels.pyの簡略版は次のとおりです。

私は django-voting アプリを使用しているため、次のように特定のコメントの「スコア」(賛成票から反対票を差し引いたもの) を取得できます。

私が理解できないのは、(a) テンプレート内のスレッド化されたディスカッションに変換できる形式でビュー内のデータを準備する方法、および (b) でソートされる方法でそれを行う方法です。賛成票。

これら 2 つの問題に関するヘルプをいただければ幸いです。

mptt などの別の方法を使用してコメント ツリーを作成することにオープンです。

ありがとう!

編集: 私は、以下の非常にハックっぽい独自のソリューションを考え出しました。この質問を回答済みとしてマークするつもりはありません。これは、本番環境で使用するようなソリューションではないと思うからです (そして、これを本番環境で使用しないことを望んでいます)。しかし、誰かが解決策を探していた場合に備えてこれが役立つことを願っています:

私の views.py では、オブジェクトのクエリセットを指定して、投票によって並べ替えられたリストを出力する関数を作成しました。

この関数を使用して、すべてのトップレベルのコメントをスコアで並べ替えます。したがって、私のコンテキスト変数には、スコアでソートされたコメントのみが含まれ、親はありません-つまり:

models.py で、特定のコメントの子の list_sorted_by_score を取得するメソッドを定義しました。

最後に、単一のコメント「comment.html」のテンプレートを作成しました。単純化されたバージョンは次のようになります。

明らかなように、これはかなりハックっぽいです。私は今でも、人々が現実の世界で試した実際の解決策を聞くことに非常に興味があります.

0 投票する
1 に答える
1099 参照

php - PHP MYSQL - マルチスレッド コメントの表示が機能しない

これは私のデータベースがどのように見えるかです

コメント

返信


問題は、コメントを次のようにネストして表示することです。

コメント - 助けが必要です

--- 返信 - 何の助けが必要ですか?
- - お手伝いしましょう!
- - - 理解できない!

コメント - もう寝ます

--- 返信 - はい、おやすみなさい。

コメント - ニュースを見ています。

- - 応答なし

これは私が今得ているものではありません。

コメント - 助けが必要です

--- 返信 - 何の助けが必要ですか?

コメント - 助けが必要です

- - お手伝いしましょう!

コメント - 助けが必要です

- - 理解できない!

コメント - もう寝ます

--- 返信 - はい、おやすみなさい。

コメント - ニュースを見ています。

- - 応答なし

これは私のクエリです

問題は明らかにクエリ構造にありますが、目的の結果を得るために構造化する方法がわかりません。

私は自分自身を十分に明確に説明したいと思います.事前に助けてくれてありがとう.

0 投票する
1 に答える
81 参照

rss - スレッド化された RSS / ATOM フィードの生成

RSS クライアントでスレッド化して表示できる RSS フィードを生成したいと考えています。

そのため、フィードがコメントのようなものを記述したり、同じエンティティへの変更を記述したりする場合、これらを視覚的にグループ化したいと考えています。

これはJavaで可能ですか?

0 投票する
1 に答える
111 参照

php - PHP のスレッドでメッセージをグループ化する

親メッセージへの参照を含むメッセージの配列があります。次のようになります。

この配列のキーはメッセージ ID で、値は0 個以上の親 ID への参照です (順不同)。ID の順序はランダムである可能性があり、参照された親 ID が特定のメッセージ セットに含まれているとは限りません。

私がする必要があるのは、これらのメッセージを「スレッド ビュー」にグループ化することです。基本的に、この配列を次のようなものに変換する必要があります。

すべてのメッセージは、最上位メッセージでグループ化されたスレッドに割り当てられる必要があります。親への参照がない場合、または参照された親がセットに存在しない場合、メッセージはトップレベルであると見なされます。メッセージ 'm1' と 'm6' は、指定されたセットに 'm9' と 'm7' がないため、トップレベルです。メッセージ 'm3' は、存在しない 'm8' への参照にもかかわらず 'm1' スレッドにあります - それを 'm1' にリンクする他の既存の親があります。

私の質問は、それを行う方法と、効率的に行う方法です。どんな助けでも大歓迎です。

アップデート:

私が思いついたのは、最初にこれらの関係を逆にすることです。したがって、次のようになります。

次に、入力キーには存在するが変換された配列には存在しないため、キー 'm6' と 'm5' を子なしで追加します。

これで、入力データで見つけることができるすべての関係の親 => 子ができました。この配列のキーを入力配列と比較した後、キー「m9」、「m8」、および「m7」を存在しないとして拒否できます。

最終的に、配列は次のようになります。

私が今しなければならないことは、この構造をどうにかして平らにすることです。別の親p2の子でもあるすべての親p1を検索し、 p1の子をp2の子に追加する必要があります。これらの配列を何度も繰り返す以外の方法でそれを行う方法はわかりませんが、ここではオプションではありません。