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

Здравствуйте,

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

Я попытался настроить категории в своём профиле (наблюдаемые, отслеживаемые и отключённые), чтобы найти эти настройки в базе данных. Мне хотелось бы применить аналогичные настройки к другим пользователям; похоже, это таблица category_users.

Прав ли я, что могу выполнить некоторые вставки для достижения этой цели?

Ранее я пытался пометить некоторые категории как «в списке рассылки», чтобы убедиться, что дайджест будет содержать только эти категории, но ошибся — эта настройка не влияет на содержимое дайджеста.

Возможно, логика работает иначе? Цель следующая:

  • принудительно настроить получение дайджеста от определённых категорий для новых пользователей (хорошо, если они смогут изменить это позже самостоятельно)
  • не показывать некоторые категории на их странице «Последнее»

Я нашёл тему Viewing a list of users who are watching a category, близкую к моему случаю. Но я не был уверен, стоит ли поднимать её после пяти лет.

Почему вы не используете эти настройки

Я не уверен, что это поможет. Мне нужно настроить это пакетным способом для 100 других пользователей.

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

Хочу поделиться своим решением.

Я настроил необходимые параметры в интерфейсе (отключение уведомлений и отслеживание некоторых категорий), как упомянул Гэвин:

Затем я подключился к базе данных, чтобы узнать ID категорий и пользователей. Таблицы: category_users и users.

Я отфильтровал настройки для себя (для user_id=5), как показано на изображении ниже:

Далее я хочу применить те же настройки для двух других пользователей с id=33 и 34. Очевидно, что нужно добавить соответствующие строки в таблицу category_users.

Пример:

  • Есть 6 категорий: id=1, 2, 15, 17, 19 и 24.
  • Отключены уведомления для категорий 15 и 17.
  • Просмотр первого поста в категориях 1, 2 и 24.
  • Отслеживание одной категории 19.

Сначала я создал скрипт, который вставляет все выбранные категории в раздел «Отключено» (notification_level=0):

INSERT INTO 
	"category_users" 
	("category_id", "user_id", "notification_level", "last_seen_at") 
VALUES
(24, 34, 0, NULL),
(2,  34, 0, NULL),
(1,  34, 0, NULL),
(19, 34, 0, NULL),
(15, 34, 0, NULL),
(17, 34, 0, NULL),

(24, 33, 0, NULL),
(2,  33, 0, NULL),
(1,  33, 0, NULL),
(19, 33, 0, NULL),
(15, 33, 0, NULL),
(17, 33, 0, NULL);

Вы можете добавлять до 1000 строк за один раз.

После этого я обновил строки для отслеживаемых категорий и категорий с просмотром первого поста:

-- просмотр первого поста
UPDATE "public"."category_users" SET "notification_level"='4' WHERE  "category_id" in (1,2,24);
-- отслеживание
UPDATE "public"."category_users" SET "notification_level"='2' WHERE  "category_id"=19;

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

изображение

Дайте знать, если есть ещё какой-то простой способ массового редактирования настроек пользователей, касающихся отключённых или отслеживаемых категорий.