알림 배너

Hey @gormus, 설치하려고 하면 이 오류가 발생합니다:

An error occurred: Error creating upload asset: splide_css. Original filename Sorry, the file you are trying to upload is not authorized (authorized extensions: wasm, jpg, jpeg, png, woff, woff2, svg, eot, ttf, otf, gif, webp, avif, js).

업데이트: 해결되었습니다. 실제로 확장자에 CSS를 추가하는 걸 잊었었네요.

3개의 좋아요

같은 아웃렛에 배너 두 개를 추가하고 둘 다 캐러셀을 선택했습니다. 하지만 배너가 겹쳐서만 표시됩니다. 캐러셀이 작동하려면 놓치고 있는 설정이 있을까요?

1개의 좋아요

안녕하세요, @manuel. 캐러셀이 작동하려면 같은 아웃렛에 최소 2개의 배너가 있어야 합니다. 그리고 물론 모든 배너에서 Display in a Carousel 옵션이 활성화되어 있어야 합니다. 배너 중 하나만 활성화되어 있으면 캐러셀이 렌더링되지 않습니다.

또한;

  1. 브라우저 콘솔에서 자바스크립트 오류가 발생하나요? 그 중 알림 배너와 관련된 것이 있나요?
  2. 충돌이 있을 수 있으므로 다른 테마, 컴포넌트 및 플러그인을 비활성화하거나 안전 모드를 사용하여 문제를 알림 배너로 한정할 수 있었나요?

대신, 설정을 공유해 주시겠습니까? 그러면 제가 가져와서 제 환경에서 시도해 볼 수 있습니다…

  1. Discourse Notification Banners 관리자 페이지에서 페이지 하단의 Settings Editor 버튼을 클릭하세요.
  2. JSON 데이터를 복사하세요.
  3. 민감한 정보를 제거하세요.
  4. 이 글에 답글로 JSON 데이터를 공유하시거나, 저에게 DM을 보내주세요.
2개의 좋아요

@gormus 감사합니다! 왜 작동하지 않았는지 좀 헷갈리네요.. 두 개의 독립적인 인스턴스에 설정을 해봤는데 둘 다 작동하지 않았습니다. 이제 처음부터 다시 시작했는데 둘 다 잘 작동합니다! :+1: :upside_down_face:

2개의 좋아요

안녕하세요, 대상 청중에 대해 질문이 있습니다. TL0 사용자만 대상으로 설정하는 것이 불가능한 것 같은데, 맞나요? 모든 사용자가 TL0이니까요?

1개의 좋아요

@patrickemin 님이 맞으신 것 같습니다. 신뢰 수준(Trust Level)은 누적되며, 결과적으로 수동으로 TL4까지 올린 경우를 제외하고, 기본적으로 모든 로그인된 사용자를 TL0에 포함시킵니다.

즉, 현재 청중으로 TL0을 선택하면 사실상 모든 로그인된 사용자가 대상이 됩니다. 개인적으로 이는 그 자체로 가치가 있다고 보지만, 오해를 불러일으킬 수 있습니다.

따라서 청중 필드의 로직을 업데이트하고, 모든 신뢰 수준에 대한 새로운 규칙을 정의할 예정입니다. 아이디어를 주셔서 감사합니다 : )

2개의 좋아요

안녕하세요 @gormus. nolo에 대한 답변으로 작성하신 노트를 참고하고 있는데, 어떤 이유에서인지 알림을 캐러셀 형태로 실행할 수 없습니다. 그냥 쌓인 메시지 형태로만 표시됩니다. 테스트 메시지 두 개를 가지고 있고, 둘 다 캐러셀이 활성화되어 있으며 같은 아웃렛에 배치되어 있습니다. 콘솔에 js와 관련된 오류도 없고, 다른 모든 구성 요소를 비활성화해도 아무런 효과가 없습니다. 혹시 아이디어가 있으신가요?

Hi @marksalter, 이미 일반적인 문제들을 확인해 보셨나 봐요. 다른 가능성으로 떠올리는 건 설정 내보내기 파일을 사용해 문제를 재현해 보는 거예요. 내보내기 파일을 DM으로 보내주세요. 필요하다면 데이터를 정리해 주세요. 다만, 저는 10일 뒤에야 돌아올 예정입니다 : )

안녕하세요. 배너 메시지를 업데이트할 때 다음과 같은 오류가 발생합니다:

JSON 포인터 속성 "/0/enabled_groups"은 유효한 그룹 ID의 배열이어야 합니다.

Audience 필드에 삭제된(또는 이름이 변경된) 사용자 그룹에 대한 참조가 있는 건 아닌가요?

1개의 좋아요

고맙습니다. 그게 전부였습니다. 그룹은 ID로만 식별되고 이름은 중요하지 않다고 생각했습니다.

1개의 좋아요

신뢰 수준(Trust Levels)을 활용하여 대상 사용자를 더 정확하게 설정하기 위해 이 아이디어를 검토해 왔습니다:

여러분께 확인해 보실 만한 것이 하나 있습니다.

다만, 이 변경사항은 기존 동작을 깨뜨리는 변경(breaking change)을 포함하므로, 먼저 프로덕션이 아닌 환경에서 테스트해 보시는 것을 권장합니다.

이 버전을 설치하려면 Notification Banners의 staging 분기를 사용하세요:

기존 동작 변경(Breaking change)

배너 표시 여부가 대상(Audience) 필드 값으로 평가될 때, 방문자의 trust_level_* 역할 중 가장 높은 수준을 제외한 모든 역할은 무시됩니다.

예를 들어, 한 사용자가 support_team, blog, trust_level_0, trust_level_1, trust_level_2 역할을 가지고 있다고 가정해 보겠습니다.

이 경우 대상 필드는 해당 사용자가 support_team, blog, trust_level_2 역할만 가진 것으로 간주합니다.

따라서 배너가 TL2 사용자만 대상으로 해야 한다면, 대상(Audience) 필드는 trust_level_2로 설정되어야 합니다. 다른 신뢰 수준의 사용자는 배너를 볼 수 없습니다.

이 변경 사항을 명확히 하기 위해 대상 필드의 설명도 업데이트했습니다.

이 변경 사항에 대해 추가 테스트를 진행할 계획이며, 9월 말까지 새로운 릴리스를 생성할 예정입니다. 여러분이 제공해 주실 피드백에 감사드립니다.

감사합니다!

2개의 좋아요

v1.3.0가 출시되었습니다.

프로덕션 환경에 배포하기 전에 반드시 테스트해 주세요.

주요 변경 사항:

  • 배너가 설정 페이지에 표시되는 순서대로 정렬됩니다. ‘Display order’ 필드 대신, 네이티브 재정렬 버튼을 사용하여 배너를 정렬할 수 있습니다.

  • Audience 필드의 동작이 변경되었습니다:

    이 배너를 볼 수 있는 사용자 그룹을 선택하세요. 최소 1개 이상의 그룹을 선택해야 합니다.

    모든 사용자와 방문자에게 표시하려면: everyone 그룹을 선택하세요.

    신뢰 수준(Trust Level)에 대한 중요 참고 사항: 신뢰 수준(예: trust_level_3)을 선택하면 해당 수준의 사용자 만 배너를 볼 수 있습니다. 더 높거나 낮은 수준의 사용자는 포함되지 않습니다.

  • Splide 캐러셀의 기본 옵션이 변경되었습니다:
    변경 전:

    { "arrows": false, "autoHeight": true, "autoplay": true, "direction": "ttb", "focus": "center", "height": "15vh", "gap": 0, "type": "loop" }
    

    변경 후:

    { "autoHeight": true, "height": "8rem", "arrows": false, "autoplay": true, "direction": "ttb", "focus": "center", "gap": 0, "type": "loop" }
    
2개의 좋아요

안녕하세요, 최신 업데이트로 인해 제 사이트가 깨졌습니다(사이트 헤더만 로드됨). TC를 비활성화해야 했는데, 그렇게 하니 다시 정상으로 돌아왔습니다. 제 문제만 그런 건지 지켜보겠습니다. 급하지 않으니 천천히 확인해 주세요 :grinning_face_with_smiling_eyes:

1개의 좋아요

@patrickemin 님, 보고해 주셔서 감사합니다. 제공해 주신 상세한 정보도 감사드립니다.

조금 전에 배포한 핫픽스(v1.3.1)로 v1.3.0에서 제가 도입한 문제를 수정했어야 합니다. 해당 문제를 경험하신 모든 분들께 사과드립니다.

이 컴포넌트를 작동시키려고 하고 있습니다. 하지만 제가 만든 테스트 배너가 표시되지 않습니다. 아주 최신 버전의 Discourse(약 3일 전)와 컴포넌트 1.3.1 버전을 사용하고 있습니다.

옵션이 올바르게 설정되어 있다고 확신합니다. 또한 테스트 배너가 표시되도록 세 가지 위치를 모두 시도해 보았지만, 아무것도 나타나지 않았습니다.

다른 버그가 있는 건지, 아니면 사용자 측 문제인 건지 어떻게 될까요? 어디를 확인해 볼 수 있을까요?

콘솔에 기록된 오류가 있는지 확인해 주실 수 있을까요?

콘솔에 오류가 없다면, Settings Editor를 사용하여 설정 파일을 DM으로 보내주실 수 있을까요?
메시지 문자열에서 민감한 세부 정보가 포함되지 않도록 처리해 주세요.

비추천(deprecation) 공지사항만 있습니다. 그리고 (Opera에서만 발생하며 Firefox에서는 발생하지 않습니다. 또한 Content security policy script src를 'unsafe-eval'로 설정한 지 이미 오래되었습니다):

사이트의 Content Security Policy가 JavaScript에서 'eval’의 사용을 차단합니다`

Content Security Policy(CSP)는 공격자가 사이트에 무단 코드를 주입하는 것을 더 어렵게 만들기 위해 임의의 문자열을 JavaScript로 평가하는 것을 방지합니다.

이 문제를 해결하려면 문자열을 평가하기 위해 eval(), new Function(), setTimeout([string], ...), setInterval([string], ...)을 사용하지 않는 것이 좋습니다.

반드시 사용해야 한다면: script-src 지시문에 unsafe-eval을 허용된 소스로 추가하여 문자열 평가를 활성화할 수 있습니다.

감사합니다. 현재 활성화된 테스트 배너가 하나뿐이므로 여기에 게시할 수도 있습니다:

[
	{
		"setting": "banners",
		"value": [
			{
				"title": "Testbanner Titel",
				"message": "Testbanner Text Testbanner Text",
				"date_after": "2025-11-01 12:00:00Z",
				"date_before": "2025-12-01 12:00:00Z",
				"dismissable": true,
				"plugin_outlet": "top-notices",
				"enabled_groups": [
					1
				]
			}
		]
	},
	{
		"setting": "splide_options__above_site_header",
		"value": "{ \"autoHeight\": true, \"height\": \"8rem\", \"arrows\": false, \"autoplay\": true, \"direction\": \"ttb\", \"focus\": \"center\", \"gap\": 0, \"type\": \"loop\" }"
	},
	{
		"setting": "splide_options__below_site_header",
		"value": "{ \"autoHeight\": true, \"height\": \"8rem\", \"arrows\": false, \"autoplay\": true, \"direction\": \"ttb\", \"focus\": \"center\", \"gap\": 0, \"type\": \"loop\" }"
	},
	{
		"setting": "splide_options__top_notices",
		"value": "{ \"autoHeight\": true, \"height\": \"8rem\", \"arrows\": false, \"autoplay\": true, \"direction\": \"ttb\", \"focus\": \"center\", \"gap\": 0, \"type\": \"loop\" }"
	}
]

시작일과 종료일을 제거하고 다른 두 개의 플러그인 아웃렛을 제거한 경우에도 시도해 보았습니다. 또한 사이트 로그인 없이 Firefox에서 효과를 확인하기 위해 Administrators 대신 everyone을 사용해보았습니다(여기서 설정은 그룹 1이어야 합니다). 그리고 splide 옵션을 건드리지 않았습니다.

1개의 좋아요

@Roi 님, 보고해 주셔서 감사합니다.

설정에서 카테고리가 선택되어 있지 않았고, NB가 배너 접근을 잘못 거부하고 있었습니다.

방금 수정 사항을 적용하여 v1.3.2 버전을 배포했습니다. 알림 배너를 업데이트해 주세요.

1개의 좋아요

네, 이제 잘 작동합니다!

그리고 네, 카테고리를 표시하는 모든 곳에 표시될 것이라고 생각해서 카테고리 선택을 비워두었습니다. 즉, 해당 옵션이 필요했기 때문에 컴포넌트에 버그가 있었던 건가요? 어쨌든, 이제 수정되었습니다. 감사합니다! :slight_smile:

이 컴포넌트는 처음 사용해보는 것이므로 몇 가지 질문을 해도 될까요?

커뮤니티에 참여하도록 사용자에게 알림/리마인드를 보내고 싶습니다. 4~8주마다 배너를 표시하여 사용자에게 지속적으로 다시 상기시키는 것이 아이디어였습니다. 사용자가 배너를 닫으면 더 이상 표시되지 않습니다. 여기까지는 좋습니다.

시작일과 종료일만 변경하고 저장하면, 배너를 닫았던 사용자에게 다시 표시되나요? (아무튼 이 메커니즘은 어떻게 작동하나요? 쿠키일 것 같습니다.) 아니면 완전히 새로운 배너를 만들어야 하나요?

누군가 이전에 이 토픽에서 주기를 언급했습니다. 즉, 8주마다 배너를 표시하는 것입니다. 다른 것을 변경하고 싶지 않다면 완전히 유지보수가 필요 없는 훌륭한 옵션이 될 것입니다. 하지만 새로운 주기가 시작될 때, 배너를 닫았던 사용자에게 다시 배너가 표시되는지 질문은 여전히 남아 있습니다.