수신 이메일 모달 비활성화 방법

이 이메일 아이콘을 클릭할 수 없게 하려면 어떻게 해야 하나요?

image

이 수신 이메일 모델을 비활성화하려면 어떻게 해야 하나요?

그리고 이 기능을 비활성화하려면 어떻게 해야 하나요?

오늘 알게 된 사실은, 그 아이콘이 클릭 가능하다는 것입니다.

하하, 진짜 짜증나네 :joy:

그리고 생일 축하해! :grinning_face_with_smiling_eyes: :star:

스태프 전용인 것 같아. 스태프 권한이 없는 다른 포럼에서 확인해 봤는데, 그 아이콘을 클릭할 수 없었거든. (적어도 내 폰에서는)

고마워! (다만 시차 때문에 아직 여기서는 생일이 아닌데 :upside_down_face:)

꼭 봐야겠네요. 알려주셔서 감사합니다. :grinning:

여기서는 님 이름 옆에 케이크 아이콘이 떠 있네요 하하. 아무튼 미리 생일 축하드립니다. 이 말을 처음 한 사람인 것 같네요 :joy:

아, 이건 관리자만 볼 수 있는 것이니 문제가 없어요.

어쨌든, 저처럼 이것을 비활성화하고 싶지만 방법을 찾지 못하는 사람이 있다면, GPT를 이용해 이렇게 해봤는데 아주 잘 작동했습니다 :slight_smile:

<script type="text/discourse-plugin" version="0.8">
  api.onPageChange((url, title) => {
    // 페이지가 완전히 로드될 때까지 대기
    Ember.run.scheduleOnce('afterRender', function() {
      // 클래스가 "elided"인 모든 details 요소 찾기 및 제거
      var elidedDetailsList = document.querySelectorAll('details.elided');
      elidedDetailsList.forEach(function(elidedDetails) {
        elidedDetails.remove();
      });
    });
  });
</script>

kynic님, 안녕하세요.

onPageChange는 사용 범위가 너무 넓을 수 있으며(게시물을 로드하거나 업데이트할 경우 신뢰할 수 없을 수 있음), 대신 decorateCookedElement를 사용할 수 있습니다. 이 함수는 모든 게시물의 cooked 요소에 대해 호출됩니다.

추가적으로, 이메일 표시기를 비활성화하는 방법도 소개합니다. 이는 단순히 HTML을 포함하지 않도록 하는 해킹(hack) 방식입니다. 궁금하시다면 원본 코드를 여기에서 확인하실 수 있습니다.

<script type="text/discourse-plugin" version="0.8">
    api.reopenWidget("post-meta-data", {
        html(attrs) {
            if (!attrs.via_email) {
                return this._super(attrs);
            }
          
            // "post-email-indicator" 위젯을 생성하지 않습니다.
            attrs.via_email = false;
            const html = this._super(attrs);
            attrs.via_email = true;
          
            return html;
        }
    })

    api.decorateCookedElement((element, helper) => {
        if (helper?.getModel().via_email) {
            element.querySelector('details.elided').remove();
        }
        
    }, { onlyStream: true });
</script>

CSS만 사용하여 이를 숨기는 방법도 있습니다.

.post-info.via-email,
.cooked details.elided {
    display: none;
}

감사합니다 :grinning:

이메일 아이콘이 표시되기를 원하므로 게시물 메타데이터 부분을 제거했습니다. :slight_smile:

현재 콘텐츠 제거와 혹시 모를 상황에 대비하여 CSS로 숨기기 위해 다음 코드를 사용하고 있습니다.

<script type="text/discourse-plugin" version="0.8">
    api.decorateCookedElement((element, helper) => {
        if (helper?.getModel().via_email) {
            element.querySelector('details.elided').remove();
        }
        
    }, { onlyStream: true });
</script>

.cooked details.elided {
    display: none;
}

이 코드 감사합니다 :rocket: :blush:

천만에요 :slight_smile:

그리고 맞아요. 스태프만 아이콘을 클릭할 수 있네요! 제 실수였어요. :smile:

잘했어요 :slight_smile: