Posted by bzj00220 on September 18, 2015 at 2:54am
特定のコンテンツタイプのコメントの表示順を投稿順ではなく承認順にしたい
コメントの表示順は投稿された順番になっています。
私の運営しているサイトではコメント投稿→私が承認→掲載という流れになっています。
ただ、事情があってあるコンテンツタイプでは
コメントが投稿された順番に承認するわけではないので、
承認された順番と表示される順番が違うことがあります。
コメントの表示順を投稿された順番ではなくて、承認された順番にすることはできるのでしょうか?
Comments
コアやコントリビュートモジュールでお望みの要件をそのまま満
コアやコントリビュートモジュールでお望みの要件をそのまま満たすようなものはないようですので、他の何らかの形で実現することになるかと思います。
アプローチとしては大きく 2 通りの方向性があるでしょうか。
1 の場合は次の 3 つが必要かと思います。
実装が必要なフックは
hook_comment_presave()hook_query_comment_filter_alter()あたりかと思います。2 の場合は次の 2 つが必要かと思います。
こちらは Rules と Comment goodness でできそうです。ただし、作成日時が承認日時で上書きされてしまうと困る場合には 2 の方法は使えないかな・・・と思います。
ご参考になさってください。
以下参考リンクです。こちらもよろしければ。
ありがとうございました
Rulesで
が可能なら、私の目的はそれだけで果たせそうです。
できれば作成日時と承認日時はそれぞれに保管しておきたい気がしますが、
私の能力ではカスタムモジュールは無理ですので2の方向で試してみます。
ヒントを与えていただいてありがとうございました。
Rulesで承認した際にコメントの作成日時を現在の時刻を上
Rulesで承認した際にコメントの作成日時を現在の時刻を上書きすることは可能でした。
ところがコメントの表示されている順番はコメントの作成日時とは関係ないみたいで表示の順番は変わりませんでした。
Comment goodnessも試してみました。
こちらはコメントを新しい順や古い順に並べ替えできるのですが、
このモジュールもコメントの作成日時とは関係がないみたいです。
自分では無理そうなので外注さんにお願いすることを検討しております。
Comment
Comment goodnessはどうやらコメントIDで並べ替えするためのモジュールのようです。
試しにComment sort by createdというモジュールを入れてみたら、作成日時で並べ替えることができるようになりました。
解決しました。
ありがとうございました。
bzj00220
bzj00220 さん、ご丁寧に状況ご共有くださりありがとうございます。
そうでしたか。 Comment goodness について認識が間違っており大変失礼いたしました。。。コメント ID で並べる部分は Drupal のコアの挙動のようですので、 Comment goodness はそれを降順に並べ替えられるだけだったのですね。
ともあれ、外注さんも検討されたとのことですが無事に解決まで行かれたようで何よりです!!