こんにちは、
Discourse フォーラムをほぼ稼働状態にしましたが、メンバーから解決策がわからない質問を受けました。コミュニティは別のフォーラムから移行しており、そのソフトウェアではトピックの URL を取得して、最後に読んだ位置に移動できる機能があり、それをブラウザのブックマークとして保存する人が多かったです。Discourse ではその方法が見つからなかったのですが、何かご存知の方はいませんか?
ありがとうございます、
Jody
こんにちは、
Discourse フォーラムをほぼ稼働状態にしましたが、メンバーから解決策がわからない質問を受けました。コミュニティは別のフォーラムから移行しており、そのソフトウェアではトピックの URL を取得して、最後に読んだ位置に移動できる機能があり、それをブラウザのブックマークとして保存する人が多かったです。Discourse ではその方法が見つからなかったのですが、何かご存知の方はいませんか?
ありがとうございます、
Jody
Discourse が自動的にその処理をしてくれます。トピックをクリックすると、最後に読んでいた場所に移動します。おっしゃっているのはそのことでしょうか?![]()
申し訳ありませんが、それはできません。トピック一覧でトピックをクリックした際に移動するURLは、最後に読んでいた場所固有のURLであり、「最後にいた場所へ移動する」という汎用的なURLではありません。そのため、そのURLをブックマークし、トピックをさらに読み進めた後にそのブックマークに戻っても、最初にアクセスした場所へ移動するだけで、直前に読み進めた場所には移動しません。トピックをどれだけ読み進めても機能し続ける、「このトピックで最後にいた場所」を示す汎用的なURLをブラウザに保存できるような仕組みを求めています。
でも、そのブックマークはトピック内の特定の位置を記録するんじゃないの?だとしたら、毎回離れる前に明示的に新しいブックマークを追加する必要があるってこと?
いいえ、そうではなく、はい、可能です。
私の知る限り、Discourse は最後に閲覧したトピックを保存していませんが、各トピックの最終訪問時刻(topic_users.last_visited_at)は保存しています。そのため、最後に閲覧したトピックを検索して表示することは可能はずです。ただし、これにはプラグインまたは Discourse API を呼び出す外部ウィジェットが必要です。
以下は、このトピックに関する補足情報です。
前述の通り、ご希望に近い機能はブックマークを使用することです。
トピックをブックマークすると、トピック全体をすでに読み終えていない限り最初の投稿に戻ります。ただし、トピック全体を読み終えている場合は最後の投稿に戻ります。また、タイムラインには「戻る」ボタンがあり、そのトピック内で最後に読んだ投稿に戻ることも可能です。以下のスクリーンショットの右端をご覧ください。
ポストをブックマークすると、定義上、特定の投稿に戻ることを可能にします。トピックとポストのブックマークの組み合わせについては、こちらで議論されています:Combinations of topic and post bookmarks are discussed here。
ご指摘の通り、ブックマークにはお使いの目的に対して以下の 2 つの欠点があります。
ブックマークは通常、ユーザーが手動で設定する必要があります(プラグインや他のソフトウェアを使用して作成しない限り)。
ブックマークは常に、ユーザーが選択した特定のトピック(つまり最初の投稿)または特定の投稿に戻ります。ブックマークにアクセスした時点でソフトウェアによって決定されたトピックや投稿に戻るというオプションはありません。
おっしゃっている URL は、フォーラムソフトウェアが自動的にそのデータを保存しているため、常に最後に読んだ投稿を表示できます。これは、フォーラムでの読み取りをいつ停止するか常にわかっているわけではないため役立ちます。システム再起動、システムユーザーまたはアプリケーションユーザーのログアウト、予期しないクラッシュなどで中断される可能性があるからです。
Discourse には最後に閲覧した投稿に戻るオプションはありませんが、これは有用な機能だと思います。
追伸
ただし、Discourse には、ブックマーク内でも前回の訪問時に閲覧したトピックを表示する機能があります。これにより、最後に確認したトピックがどれだったか把握するのに役立ちます。
他の人々も最終訪問データの抽出を検討しています。例:
詳しく回答いただき、ありがとうございます。本当に助かりました。ただ、最終的に今のところ私たちがやりたいことはできないというのが結論なのですね。
その通りです。残念なことに、私は Ruby を書いたことがないので、自分で実装しようとも思いませんでした。多分、手間がかかりすぎるのでしょうね。トピック一覧は、トピック内で最後に読んだ投稿を特定し、関連する URL を生成しています。そのため、t/topic-title/133114/latest のような新しい URL を作成して、適切な場所にリダイレクトさせることも可能かもしれません。
PS についてですが、はい、確認してみます。問題は、数百件の投稿に及ぶトピックが多数あり、数週間以上特定のトピックを見ていなかったとしても、再度確認したい場合に、ブラウザのブックマークから直接そのトピックにアクセスできるようにしたいという点です。
しかし、その場合 URL は 1 つのトピックに対してしか役立ちません。
一方、最新表示ビューはそのようなシナリオに最適です。最後の訪問以降に編集または新しい投稿が追加された多数のトピックが、最後の訪問ラインの上に表示されるからです。
まあ、そうですね。でも、最後にアクセスしてから40〜50件以上、あるいはそれ以上のトピックが変更されているかもしれませんよ ![]()
申し訳ありません、前の返信を誤解していました。
あなたは、ユーザーが前回訪れた際に読んでいた、あるいは行っていた会話の最後のトピックに戻りたいと考えていると述べておられました。そのトピックに変更がなくてもです。
これは私が望んでいる自動再開機能ですが、Discourse チームがこれを受け入れるとは考えにくいです。
正確にはそうではないと思います。人々はさまざまなトピックをフォローすることになるでしょう。フォーラムの特定のカテゴリ内には、長期的に数十、数百もの投稿トピックがあり、多くの人がそれらの多くをフォローしています。彼らはもちろん、ふと立ち寄って多くの投稿を読むが、最後まで読まないで、後でまた戻ってきてさらに読むことを好みます。また、一部の人々はこれらをブラウザのブックマークに登録することを好みます。
ただし、ブックマークタブが妥当な代替手段かもしれません。あなたが指摘された通り、そのビューは確かに中断した場所に戻ってくれるだけでなく、カテゴリで絞り込むこともできます。
ありがとうございました。
その間、ユーザーには /unread を案内するのが良いでしょう。私は通常、ホームページを未読ページに設定しています。![]()
あなたの詳しい回答の末尾にある補足(PS)が解決策のようでしたので、その投稿を解決策として選択します。正直なところ、その補足がなくても素晴らしい投稿で、非常に有益でした。
選択肢を網羅することで、より役立つ投稿を意識して作成しているのですが、そのような励ましをいただきありがとうございます。