다이제스트 설정 및 최신글에서 카테고리 숨기는 올바른 방법

안녕하세요,

포럼 관리자로서, 모든 사용자가 특정 카테고리에 구독되도록 하고 메일 리스트 옵션을 활성화하고 싶습니다.

데이터베이스에서 해당 설정을 찾기 위해 내 프로필에서 카테고리를 설정(관심, 추적, 음소거)해 보았습니다. 다른 사용자에게도 동일한 설정을 적용하고 싶은데, category_users 테이블인 것 같습니다.

이렇게 삽입(insert)을 수행하여 목표를 달성할 수 있다는 제 추측이 맞습니까?

이전에 다이제스트에 해당 카테고리만 포함되도록 확인하기 위해 일부 카테고리를 '메일 리스트’로 설정해 보았지만, 제 추측은 틀렸습니다. 이 설정은 다이제스트 내용을 조정하지 않습니다.

아마도 로직이 다른 것일까요? 목표는 다음과 같습니다:

  • 새 사용자가 특정 카테고리에서 다이제스트를 받도록 강제하기 (나중에 사용자가 직접 수정할 수 있도록 허용)
  • ‘최신(latest)’ 페이지에서 일부 카테고리를 표시하지 않기

제 사례와 유사한 주제인 Viewing a list of users who are watching a category 을 찾았습니다. 하지만 5년 후인 지금 이 주제를 다시 활성화(bump)하는 것이 적절한지 확신이 서지 않습니다.

왜 이 설정을 사용하지 않나요?

이것이 도움이 될지 확신할 수 없습니다. 다른 100명의 사용자에게 일괄적으로 설정하는 방법을 찾고 있습니다.

선택하면 모든 사용자에게 적용할지, 아니면 앞으로만 적용할지 묻는 상자가 나타납니다. :+1:

제 해결 방법을 공유하겠습니다.

Gavin이 언급했듯이 UI에서 필요한 설정(일부 카테고리의 음소거 및 추적)을 클릭했습니다:

그 다음, 카테고리 및 사용자의 ID를 확인하기 위해 DB에 연결했습니다. 테이블: 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개의 행을 추가할 수 있습니다.

그 후 추적(Tracked) 및 첫 게시물 감시(Watched 1st post) 카테고리의 행을 업데이트했습니다:

--watch 1st post
UPDATE "public"."category_users" SET "notification_level"='4' WHERE  "category_id" in (1,2,24);
--track
UPDATE "public"."category_users" SET "notification_level"='2' WHERE  "category_id"=19;

이 후 사용자 설정이 업데이트됩니다. 음소거된 카테고리는 메인 페이지와 최신 주제 목록에서 숨겨집니다.

изображение

음소거 또는 감시 카테고리에 관한 사용자 설정을 일괄 편집하는 다른 간단한 방법이 있다면 알려주세요.