Как настроить одинаковые категории боковой панели для всех пользователей

:bookmark: В этом руководстве описывается, как задавать категории боковой панели по умолчанию и применять изменения к существующим пользователям.

:person_raising_hand: Требуемый уровень доступа: Администратор

Вы можете использовать default navigation menu categories, чтобы выбирать, какие категории отображаются в боковой панели по умолчанию. Вы также можете применять изменения к существующим пользователям или заново добавлять категории, которые они убрали со своей боковой панели.

Эта настройка не приводит боковую панель всех пользователей к одинаковому виду. Она добавляет и удаляет категории, а не заменяет весь список категорий каждого пользователя. Категории, добавленные пользователями самостоятельно, могут остаться.

Задание категорий по умолчанию

  1. Перейдите в «Admin» → «All site settings».
  2. Найдите default navigation menu categories.
  3. Откройте селектор и выберите категории, которые хотите отображать по умолчанию. Чтобы удалить категорию, нажмите «×» рядом с её названием.
  4. Нажмите кнопку «✓», чтобы сохранить.

  1. Если вас спросят, следует ли применять изменения к истории, выберите один из вариантов:
    • «Yes» применяет добавления и удаления к существующим пользователям и обновляет параметры по умолчанию для тех, кто присоединится впоследствии.
    • «No, only apply change going forward» обновляет параметры по умолчанию, не изменяя боковые панели существующих пользователей.

Количество затронутых пользователей зависит от вашего сайта. Запрос может не появиться, если изменение не затронет ни одного существующего пользователя.

Повторное добавление категорий, уже входящих в список по умолчанию

Если пользователь уберёт категорию по умолчанию со своей боковой панели, сохранение того же списка по умолчанию не вернёт её обратно. Применяются только добавления и удаления.

Чтобы заново применить настроенные категории:

  1. Запишите, какие категории вы хотите отображать.
  2. Удалите все категории из default navigation menu categories, затем сохраните. Выберите «Yes», чтобы применить удаление к существующим пользователям, когда появится запрос.
  3. Подождите завершения фонового обновления. Это может занять несколько минут или дольше на крупном сайте.
  4. Добавьте категории, которые хотите отображать, затем снова сохраните. Выберите «Yes», чтобы применить добавления к существующим пользователям, когда появится запрос.
  5. Дождитесь завершения второго фонового обновления, затем обновите страницу и проверьте боковую панель.

Это действие удаляет заново добавленные настройки по умолчанию. Оно не удаляет категории, добавленные пользователями вручную, которые никогда не входили в эту настройку.

Понимание изменений для существующих пользователей

Когда вы выбираете «Yes», Discourse применяет разницу между предыдущей и новой настройками:

Изменение настройки Влияние на существующих пользователей
Добавление категории Добавляет её в списки категорий на боковой панели пользователей, если её там ещё нет.
Удаление категории Удаляет её из списков категорий на боковой панели пользователей, включая тех, кто выбрал эту категорию самостоятельно.
Оставление категории без изменений Не возвращает её пользователям, которые ранее её удалили.
Оставление категории, добавленной вручную, вне настройки Не удаляет её.

Например, предположим, что «General» является категорией по умолчанию, а пользователь также добавил «Support» самостоятельно. Очистка и повторное добавление «General» не удалит «Support», если только «Support» также не был удалён из настройки.

Ограничения

  • Разрешения для категорий по-прежнему действуют. Выбор частной категории не предоставляет доступ и не делает её видимой для пользователей, которые не имеют доступа.
  • Пользователи могут настраивать свои боковые панели после этого. Это обновление по умолчанию и массовое обновление, а не принудительный список категорий.
  • Это не полный сброс боковой панели. Шаги очистки и повторного применения не гарантируют одинаковые списки категорий для всех пользователей.

Дополнительные ресурсы

5 лайков

В чём разница между удалением предыдущего значения по умолчанию и добавлением нового за один шаг versus выполнение этого в два шага с паузой между ними?

Я кратко предположил, что этот процесс сбросит все индивидуальные настройки. Однако, судя по моим тестам, это не так. Если категория ранее не входила в настройки боковой панели по умолчанию, но пользователь добавил её самостоятельно, она не будет удалена только потому, что настройка была очищена. Удаляется только то, что было ранее настроено в этой настройке.

Таким образом, чтобы сделать боковую панель одинаковой для всех, необходимо:

  • добавить все категории в настройку (и желательно не переопределять это для всех)
  • затем удалить все категории из настройки и переопределить это для всех
  • (подождать несколько минут?)
  • добавить новые категории и переопределить это для всех

Шаги 2 и 4 должны быть разделены, поскольку шаг 1 не был применён ко всем. Мы могли бы применить шаг 1 ко всем, чтобы у всех были все категории в боковой панели, а через несколько минут удалить все категории, которые не нужны в их боковой панели, но это может привести к ухудшению опыта работы на короткое время.

Неверны ли мои тесты, показывающие, что настройка для очистки вручную добавленных категорий не удаляется? Есть ли другая причина для разделения шагов? Мне бы хотелось это узнать, чтобы решить, какую информацию я могу добавить на Configuring the default sidebar for your users.

3 лайка

@Moin
Здесь механизм донаполнения работает немного иначе, чем можно было бы ожидать. Мы не просто сбрасываем все категории боковой панели у пользователей при обновлении настройки default navigation menu categories. Вот что мы делаем:

  • Если администратор добавляет несколько категорий в настройку, то только эти новые категории добавляются в боковые панели всех пользователей, у которых их ещё не было.
  • Если вы удаляете несколько категорий из настройки, они удаляются из боковых панелей всех пользователей.

Таким образом, донаполнение не принудительно устанавливает состояние настройки для всех пользователей, а вычисляет разницу (дельту) между существующими значениями в настройке и теми, что были недавно добавлены или удалены.

Главная причина такого подхода — сохранение индивидуальных предпочтений пользователей.

Эта логика была внедрена в следующем PR:

Мы рассмотрели два способа достижения одинаковых категорий у всех пользователей:

  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 минут, а затем добавил category1, category2 и category3 в настройку

и применил изменение ко всем пользователям

Ожидаемый результат, основанный на заголовке этого руководства: у всех пользователей в боковой панели одинаковый набор категорий, то есть только те, что указаны в настройке, и ничего больше.
Фактический результат: category4 всё ещё присутствует в боковой панели, хотя её нет у пользователей, которые не добавляли её вручную.

На каком этапе вы ожидаете, что категория, добавленная пользователем (в моём примере category4) в его боковую панель, будет удалена, чтобы добиться результата, при котором у всех пользователей в боковой панели одинаковый набор категорий?

Исходя из того, что вы сказали здесь, я не ожидаю, что она будет удалена, потому что категория не удаляется из настройки, так как её там и не было. Но вы утверждаете, что использовали эти шаги, чтобы принудительно установить одинаковые категории для всех пользователей.
Если бы я добавил все категории (метод 1), category4 была бы добавлена и затем удалена, поэтому я бы ожидал её исчезновения. Именно здесь я понимаю, что происходит. Но ваше руководство говорит, что нужно использовать метод 2, поэтому я задаюсь вопросом, что я упускаю в своём понимании и в моих тестах.

1 лайк

@moin как тебе сейчас кажется насчёт этого руководства, отвечает ли оно на все нужные вопросы? Оно слишком многословное? Или, наоборот, не достаточно подробно?

(Я работаю над ботом, чтобы синхронизировать нашу документацию с реальным кодом и обновлять скриншоты)