디제스트 및 알림 이메일 커스터마이징을 위한 훅

클라이언트 중 한 분이 요약 메일과 알림 메일에 광고를 포함하고 싶어 합니다. 저는 다이제스트 메일에 텍스트를 추가할 수 있도록 하는 플러그인을 ‘만들어’ 보았는데요(해당 템플릿에 적용된 변경 사항에 맞춰 업데이트가 필요하다고 생각합니다).

해당 이메일을 커스터마이징하기 위해 전체 템플릿을 오버라이드해야 한다는 점이 마음에 들지 않습니다.

템플릿을 오버라이드하지 않고 해당 이메일에 내용을 추가할 수 있는 방법이 있을까요?

이 플러그인은 커스텀 필드에 토픽 ID를 입력받아 해당 토픽의 마지막 게시글의 raw 내용을 이메일에 추가하는 텍스트로 포함하는 방식으로 동작합니다(헤더 바로 앞이나 뒤에 위치). 꽤 기발한 해킹 기법이라고 생각하지만, 코어에 추가할 정도로 복잡한 솔루션이라고 느껴집니다. 아마도 광고(Ad) 플러그인이 다이제스트 및 요약 메일에 자체 광고(house ads)를 적용할 수 있는 방법이 있을지도 모르겠습니다.

취약한 플러그인 관리

플러그인이 꺼진 상태의 다이제스트 메일과, 플러그인이 켜져 있지만 이메일에 추가할 내용을 설정하지 않은 상태의 다이제스트 메일을 비교하는 스펙을 작성해야 할까요? 그러면 코어 템플릿의 변경 사항을 감지할 수 있을 것 같습니다.

6개의 좋아요

제이, 안녕

이 플러그인은 Discourse 3.1에서 "동작"하나요? 아니면 최소한 테스트해볼 가치는 있나요?

한번 시도해 보세요. 이 메시지 이후로 그쪽에서 연락이 온 적이 없는 것 같으니, 그 이후로 업그레이드를 하지 않았을 거라고 추측됩니다.

깨져 있으면 알려 주세요. 무료로는 고칠 시간이 없을 가능성이 높지만, 할 수도 있습니다.

2개의 좋아요

제가 이해한 바로는, digest_custom_html과 digest_custom_text가 이미 digest.html.erb와 digest.text.erb를 위한 훅을 구현하고 있습니다. 따라서 이 요청의 기본적인 구현은 이러한 훅을 더 추가하는 것을 포함할까요?

더 고급스러운 구현 방식으로는 서브 템플릿을 제공할 수 있으며, 이를 통해 플러그인 개발자에게 Discourse가 유지 관리하는 스타일링 및 포맷팅 코드를 공급할 수 있습니다.

제가 이해한 바와 같이, digest.html.erb에 digest_custom_html("before_preheader") 하나만 추가하면 구현이 가능하다는 것이 맞습니까?

그렇다고 생각해요. 몇 년 동안 작동 방식을 자세히 살펴본 적이 없거든요.

hey @thoka, 그 훅을 통해 뭔가 구현해 보셨나요? 저희도 현재 해당 훅을 통해 간단한 스폰서 세그먼트를 삽입하는 방법을 찾고 있습니다.

그렇게 했습니다. 주입(injection)을 html_safe로 생성하는 한, 문제는 없습니다.

Fixing digest_custom_html to be treated as HTML (was: Overriding digest.html.erb)에서 이에 대한 논의가 이루어지고 있습니다.

2개의 좋아요