알림 배너

음, 방금 한 가지를 테스트해 봤습니다. 테스트 배너를 닫고 시작일과 종료일을 변경한 뒤 저장하고 페이지를 새로고침했는데 배너가 안 나옵니다.

그러면 사용자가 한 번 닫으면 영구적으로 사라지는 건가요?

1개의 좋아요

아! @Roi, 정말 좋은 지적입니다. 그리고 짧은 답부터 하면, 네 그렇습니다.

각 배너에는 인덱스 번호와 플러그인 아웃렛 이름을 기반으로 ID가 할당됩니다. 그런 다음, 닫힌 배너의 ID가 브라우저의 로컬 스토리지에 저장됩니다.

따라서 배너가 한 번 닫히면, 설정이 변경되더라도 계속 숨겨진 상태로 유지됩니다.

이것이 문제가 될 수 있다는 점을 인지하고 있습니다. 더 나은 처리 방식을 고민해 보겠습니다. – 제안 환영합니다 : )

1개의 좋아요

The #versatile-banner는 쿠키 이름 설정을 사용하며, 관리자가 이 설정을 변경하여 배너를 닫은 사용자에게 다시 표시할 수 있습니다.

1개의 좋아요

@Moin님, 좋은 지적 감사합니다. 쿠키 이름을 변경하여 저장된 쿠키를 무효화하는 방법은 매우 실용적인 해결책으로 보입니다.

알림 배너(Notification Banners)에서는 배너를 위아래로 이동하여 정렬 순서를 변경하거나, 배너의 위치를 바꿀 수 있습니다. 이전에 같은 위치에 있던 배너가 표시된 적이 있고 사용자가 이를 닫았었다면, 새로운 배너가 숨겨져 있게 될 수 있습니다.

ID를 정의하는 방식을 변경하고, 쿠키 처리 방식도 그에 맞게 조정해야 할 것 같습니다. :thinking:

정렬 순서를 변경할 때 ID가 바뀌는 경우를 고려하면, ID보다 쿠키를 사용하는 것이 더 나은 방법인 것 같습니다. :eyes:

제 생각에는 배너가 변경될 때마다 새로운 (쿠키) ID를 생성하는 것이 유용할 것입니다.

주기 관련해서: 만약 이미 크리스마스였다면, 요일(하나 이상)과 월 내 날짜(하나 이상)로 설정할 수 있는 주기를 원했을 것입니다. 그리고 양쪽 모두에 대해 "매 x번째"와 같은 옵션이 있으면 좋았을 텐데, 예를 들어 "매 2번째 월요일과 금요일"이나 "매 3개월 중 1일과 16일"처럼 선택할 수 있었으면 합니다.

실제로 이 문제를 하이브리드 솔루션으로 해결할 수 있었습니다.

모든 배너에 적용되는 새로운 배너 설정 버전 설정과 개별적인 배너 ID 값을 추가했습니다.

각 배너의 실제 ID는 이 두 값을 조합하여 구성됩니다. 개인적으로 이 방식이 더 나은 유연성을 제공한다고 생각합니다:

  • 개별 배너의 표시 상태를 다른 배너에 영향을 주지 않고 해당 배너의 Banner ID만 업데이트하여 초기화할 수 있습니다.
  • 여러 배너 또는 모든 배너의 표시 상태를 초기화해야 하는 경우, 배너 설정 버전을 업데이트하면 됩니다.

이 변경 사항을 곧 배포할 예정입니다.


업데이트: v1.4.0이 출시되었습니다.

각 알림 배너에 고유한[1] 필수 배너 ID 필드를 도입하고, 이 변경 사항을 지원하기 위해 관련 설정, 마이그레이션 로직 및 테스트를 업데이트했습니다. 또한 중요한 변경 사항이 발생했을 때 사용자의 배너 표시 상태를 초기화하는 데 도움이 되는 배너 설정 버전 설정을 추가했습니다. 이러한 개선 사항들은 배너 닫기 추적이 더 견고하고 미래지향적이 되도록 보장합니다.


  1. 고유성은 사용자에게 달려 있습니다. 안타깝게도 테마 객체 설정은 고유한 값을 요구할 수 없습니다. 그러나 이제 탭 라벨이 ID 값을 사용하므로 더 잘 보이도록 개선되었습니다. ↩︎

와, 정말 좋네요! 감사합니다! 테스트해 보고 피드백 드릴게요. :slight_smile:

1개의 좋아요

말씀하신 대로 작동합니다! 정말 좋습니다. 다시 한번 감사합니다! :slight_smile:

1개의 좋아요

방금 깨달은 건데, 모든 사용자에게 배너가 표시되어야 하는 경우 top-notices가 로그인 화면과 가입 화면에도 표시됩니다. 데스크톱에서는 큰 문제가 되지 않지만, 모바일 기기에서는 두 화면의 사용에 방해가 됩니다. 이 화면들에서 top-notices 배너를 제외할 수 있을까요? 제 생각에는 데스크톱 버전의 로그인/가입 화면에서도 배너가 없어도 괜찮을 것 같습니다. :wink:

@Roi 배너를 로그인한 사용자만 볼 수 있도록 제한하려면, 대상(Audience)에서 모든 TL 그룹을 선택하면 됩니다.

또는 사용 가능한 CSS 선택자를 활용하여 로그인/회원가입 페이지에서 배너를 숨기는 방법도 있습니다.

아니요, 배너를 로그인하지 않은 사용자에게도 표시하는 것이 좋습니다.

네, 다른 요소들도 숨겼던 것을 기억하고, login-page, signup-page 및 invite-page에 대해 CSS와 display: none;을 사용하여 스스로 해결했습니다. :slight_smile:

1개의 좋아요