全ユーザーのサイドバーカテゴリを同じにする方法

場合によっては、サイト管理者がすべてのユーザーがサイドバーに同じカテゴリセットを表示できるようにする必要があることがあります。その方法は以下の通りです:

  • default navigation menu categoriesからすべてのカテゴリを削除し、保存します。変更を履歴に適用するよう求められた場合は、必ず適用してください。
  • 数分待ちます。
  • すべてのユーザーに表示させたいカテゴリを default navigation menu categories に追加します。これも、変更を履歴に適用するよう求められた場合は、必ず適用してください。

「履歴に適用する」とは、既存のユーザーにもこの変更を適用し、今後参加するユーザーのデフォルト設定として設定することを意味します。以下のモーダルが表示されたら、はい をクリックする必要があります:

注:この設定により、アクセス権を持たないユーザーにプライベートカテゴリが表示されることはありません。

「いいね!」 5

以前のデフォルト設定を削除してすぐに追加する方法と、間に少し間を置いて2段階で行う方法の違いは何でしょうか?

一時的に、このプロセスですべての個人のカスタマイズがリセットされるかと思いました。しかし、私のテストではそうではないことがわかりました。カテゴリが以前のサイドバーのデフォルト設定に含まれていなくても、ユーザー自身が追加した場合、設定がクリアされただけでは削除されません。設定に以前構成されていたものだけが削除されます。

したがって、サイドバーを全員に対して同じ状態にするには、以下の手順が必要です:

  • すべてのカテゴリを設定に追加する(できれば全員に対して上書きしないようにする)
  • 次に、設定からすべてのカテゴリを削除し、全員に対してこれを上書きする
  • (数分待つ?)
  • 新しいカテゴリを追加し、全員に対してこれを上書きする

ステップ2と4は分離する必要があります。なぜなら、ステップ1は全員に適用されていなかったからです。ステップ1を全員に適用して、全員がサイドバーにすべてのカテゴリを持つようにし、数分後に不要なカテゴリを削除することもできますが、その場合、数分間ユーザー体験が悪化する可能性があります。

私のテスト、つまり手動で追加されたカテゴリをクリアする設定が削除されないという結果は誤りでしょうか?それとも、手順を分ける別の理由があるのでしょうか?この情報を把握したいので、Configuring the default sidebar for your users に追加する情報を検討したいと考えています。

「いいね!」 3

@Moin
ここでのバックフィルの動作は、一般的に予想されるものと少し異なります。default navigation menu categories設定が更新された際に、すべてのユーザーのサイドバーカテゴリを単純にリセットするわけではありません。私たちが行うことは以下の通りです:

  • 管理者が設定にいくつかのカテゴリを追加した場合、まだ設定されていないすべてのユーザーのサイドバーに、新しく追加されたカテゴリのみが追加されます。
  • 設定からいくつかのカテゴリを削除した場合、それらのカテゴリはすべてのユーザーのサイドバーから削除されます。

つまり、バックフィルは設定の状態をすべてのユーザーに強制するのではなく、設定に新しく追加または削除された値の差分のみを適用します。

この方法を採用した主な理由は、個々のユーザーの好みを維持するためです。

この動作が導入された PR は以下の通りです:

すべてのユーザーに同じカテゴリを適用する方法として、以下の2つのアプローチを認識しています:

  1. すべてを追加し、履歴を適用し、いくつかを削除し、履歴を適用する。
  2. すべてを削除し、履歴を適用し、いくつかを追加し、履歴を適用する。

最近、大規模なサイトに対してこの作業を試みた際、1 は正しく動作しませんでした。一方、2 は問題なく動作しました。そのため、2 をドキュメント化しました。

もしお時間があれば、複数のユーザーで両方の方法を試して、正常に動作するか確認してみてください。必要であれば、更新が期待通りに行われたかを確認するための SQL クエリを作成することもできます。ご意見をお聞かせください。

「いいね!」 1

最初の投稿で説明された手順を再度試してみました。しかし、同じ問題が依然として発生しています:ユーザーがサイドバーに追加したカテゴリが削除されないため、結果としてすべてのユーザーがサイドバーに同じカテゴリを持っているわけではありません。

詳細な再現手順
  1. 新しいフォーラムを作成しました
  2. 5 つのカテゴリ(category1、category2、category3、category4、category5)を作成しました
  3. 「サイドバーカテゴリの編集」オプションを使用して、category4 を自分のサイドバーに追加しました

  4. カテゴリが自分のサイドバーに追加されました
  5. default_navigation_menu_categories サイト設定を確認しました
  6. ガイドで言及されている通り、すべてのカテゴリを削除しました


そして、変更をすべてのユーザーに適用しました

7. これで設定が空になりました

8. サイドバーを確認したところ、手動で追加された category4 だけが含まれていました(下部にあるサイト設定へのリンクも、サイト設定が空であることを示しています)

9. 約 45 分待ってから、category1category2category3 を設定に追加しました

そして、変更をすべてのユーザーに適用しました

このガイドのタイトルに基づく期待される結果: すべてのユーザーがサイドバーに同じカテゴリを持っていること。つまり、設定に含まれるカテゴリのみが存在すること。
実際の結果: category4 がサイドバーに残っています。一方、手動で追加していないユーザーのサイドバーには存在しません。

どの手順で、ユーザーがサイドバーに追加したカテゴリ(私の例では category4)が削除されると期待していますか?これにより、すべてのユーザーがサイドバーに同じカテゴリを持つ結果になります。

ここであなたが述べた内容に基づくと、カテゴリが設定から削除されていないため(そもそも設定に含まれていなかったため)、削除されるとは期待していません。しかし、あなたはすべてのユーザーに同じカテゴリを強制するためにこれらの手順を使用したと言っています。
すべてのカテゴリを追加する方法(方法 1)を採用すれば、category4 は追加され、その後削除されるため、消えることを期待していました。そこで私は何が起こっているかを理解しています。しかし、あなたのガイドでは方法 2 を使用すべきだと書かれています。そのため、私の理解やテストで何が欠けているのか疑問に思っています。

「いいね!」 1