모든 사용자에게 동일한 사이드바 카테고리를 설정하는 방법

때로는 사이트 관리자가 모든 사용자의 사이드바에서 동일한 카테고리 집합이 표시되도록 확인해야 할 필요가 있습니다. 방법은 다음과 같습니다:

  • 기본 내비게이션 메뉴 카테고리에서 모든 카테고리를 제거한 후 저장합니다. 프롬프트가 표시되면 변경 사항을 과거에 적용하도록 확인하세요.
  • 몇 분 정도 기다립니다.
  • 모든 사용자에게 표시할 카테고리를 모두 기본 내비게이션 메뉴 카테고리에 추가합니다. 마찬가지로 프롬프트가 표시되면 변경 사항을 과거에 적용하도록 확인하세요.

과거에 적용한다는 것은 이 변경 사항을 기존 사용자에게도 적용하고, 앞으로 가입할 사용자를 위한 기본값으로 설정하는 것을 의미합니다. 다음 모달이 표시되면 를 클릭해야 합니다:

참고: 이 설정은 해당 카테고리에 접근 권한이 없는 사용자에게 비공개 카테고리가 표시되도록 만들지 않습니다.

5개의 좋아요

이전 기본값을 제거하고 한 단계로 추가하는 것과, 중간에 잠시 멈추고 두 단계로 나누어 수행하는 것의 차이점은 무엇인가요?

처음에는 이 과정이 모든 개인 맞춤 설정을 초기화하는 줄 잠깐 생각했습니다. 하지만 제 테스트 결과에 따르면 그런 일은 일어나지 않습니다. 이전에 사이드바 기본 설정에 없었던 카테고리를 사용자가 직접 추가한 경우, 설정이 비워졌다고 해서 그 카테고리가 제거되지 않습니다. 설정에 이전에 구성되었던 항목만 제거됩니다.

따라서 모든 사용자의 사이드바를 동일하게 만들려면 다음 작업을 수행해야 합니다.

  • 설정에 모든 카테고리를 추가합니다(가능하다면 모든 사용자에게 이 설정을 오버라이드하지 않는 것이 좋습니다)
  • 그런 다음 설정에서 모든 카테고리를 제거하고 모든 사용자에게 이 설정을 오버라이드합니다
  • (몇 분 정도 기다립니다?)
  • 새 카테고리를 추가하고 모든 사용자에게 이 설정을 오버라이드합니다

여기서 2단계와 4단계를 분리해야 하는 이유는 1단계가 모든 사용자에게 적용되지 않았기 때문입니다. 1단계를 모든 사용자에게 적용하여 모든 사용자의 사이드바에 모든 카테고리가 표시되도록 한 후, 몇 분 후 원하지 않는 카테고리를 제거하는 방법도 있지만, 그러면 몇 분 동안 사용자 경험이 나빠질 수 있습니다.

제 테스트에서 수동으로 추가된 카테고리를 지우는 설정이 제거되지 않는다는 결과가 나온 것이 잘못된 것일까요? 단계를 분리해야 하는 다른 이유가 있을까요? Configuring the default sidebar for your users 추가할 정보를 결정할 수 있도록 알고 싶습니다.

3개의 좋아요

@Moin
여기서 백필(backfilling)이 작동하는 방식은 일반적으로 기대하는 것과는 약간 다릅니다. default navigation menu categories 설정이 업데이트될 때 단순히 모든 사용자의 사이드바 카테고리를 초기화하지 않습니다. 대신 다음과 같이 처리합니다.

  • 관리자가 설정에 몇 가지 카테고리를 추가하면, 해당 카테고리가 이미 설정되어 있지 않은 모든 사용자의 사이드바에 새로 추가된 항목만 추가됩니다.
  • 설정에서 몇 가지 카테고리를 제거하면, 해당 카테고리는 모든 사용자의 사이드바에서 제거됩니다.

따라서 백필은 설정의 상태를 모든 사용자에게 강제하지 않고, 설정에 있는 기존 값과 새로 추가되거나 제거된 값 사이의 차이(delta)만 반영합니다.

이렇게 하는 주요 이유는 개별 사용자의 설정을 보존하기 위해서입니다.

이 동작이 도입된 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개의 좋아요