토픽 템플릿 플레이스홀더 텍스트 테마 컴포넌트

토픽 템플릿 플레이스홀더 텍스트 테마 컴포넌트

이 테마 컴포넌트를 사용하면 토픽 템플릿을 편집 가능한 템플릿 텍스트가 아닌 플레이스홀더(워터마크)로 표시할 수 있습니다.

이를 통해 각 토픽에 대해 사용자 지시사항을 플레이스홀더로 제공할 수 있습니다.

예를 들어:

이것은 일반적인 플레이스홀더(워터마크) 텍스트입니다.

참고: 커스텀 텍스트를 변경하여 사이트 전체에서 이미 이 값을 변경할 수 있습니다.

관리 >> 사용자 지정 >> 텍스트 로 이동하세요.

그런 다음 화면에서 보는 텍스트를 검색하세요.
“BBCode”를 검색하면 원하는 항목을 찾을 수 있습니다:

그런 다음 js.composer.reply_placeholder 값을 표시할 플레이스홀더 텍스트로 변경하세요

또한 각 카테고리에서 토픽 템플릿을 설정할 수도 있습니다.

카테고리 편집 대화상자에서 토픽 템플릿을 선택하세요. 카테고리에 대한 사용자 지정 템플릿을 추가할 수 있습니다.

이것은 잘 작동하지만, 사용자는 게시물을 작성하기 시작하기 전에 템플릿 텍스트를 삭제해야 합니다.

이 테마 컴포넌트는 편집 가능한 텍스트 대신 토픽 템플릿 텍스트를 플레이스홀더(워터마크) 텍스트로 표시할 수 있게 해줍니다. 단순히 상자를 클릭하고 타이핑을 시작하면 됩니다.

모든 토픽 템플릿을 플레이스홀더로 표시하도록 설정하거나, 토픽 템플릿에 [placeholder] 표시기를 추가하여 개별적으로 처리할 수도 있습니다.

테마 컴포넌트 설치

:hammer_and_wrench: Git 저장소: https://github.com/naidihr/discourse-topic-template-placeholders

:thinking: 테마 또는 테마 컴포넌트를 설치하는 방법?

크레딧

JQuery 요소를 Ember 프레임워크와 Discourse 코어를 사용하도록 리팩토링해 주신 @merefield님께 감사드립니다.

업데이트된 버전은 Discourse 2.4.1 버전 이상에서만 작동하도록 테스트되었습니다. 이전 버전의 Discourse를 사용하고 계신다면, 2.3.10 버전에서 테스트된 원래 버전을 시도해 보시기 바랍니다.

원래 버전 저장소: https://github.com/naidihr/discourse-topic-template-placeholders_original

35개의 좋아요

PS 개발 참고사항. 이 기능을 테마 컴포넌트로 작동시키기 위해 jQuery 해킹을 해야 했습니다. 모델로 플레이스홀더를 업데이트할 수 있다면 알려주시면 감사하겠습니다.

8개의 좋아요

다음과 같은 방법을 시도해 볼 수 있습니다.

<script type="text/discourse-plugin" version="0.8">
  api.modifyClass("model:composer", {
    applyTopicTemplate() {
      this._super(...arguments);

      Ember.run.schedule("afterRender", () => {
        // 여기에서 작업을 수행하세요
      });
    }
  });
</script>

이 방법을 사용하면 Discourse가 카테고리 주제 템플릿을 적용할 때 커스텀 로직을 추가할 수 있습니다.

다만, 이러한 코딩 방식은 다소 구식입니다. Discourse 테마 개발에 많은 시간을 투자할 계획이라면 아래 글을 읽어보시는 것을 추천합니다. 개발 과정을 훨씬 수월하게 만들어 줍니다.

9개의 좋아요

테마 컴포넌트 아이디어가 정말 좋습니다!

다음 사항을 처리하기 위해 PR을 먼저 제출했습니다:

  • jQuery가 필요 없도록 변경
  • 타이밍에 대한 고민을 제거 (Ember 프레임워크와 Discourse 코어를 활용하고, 그들과 맞서지 않음)
  • 결과를 달성하기 위해 Composer Model을 수정 (제안하신 대로)

병합하지 않으셔도 서운해하지는 않겠지만, 다른 방식으로 일을 처리하는 방법을 보여주는 데 도움이 되기를 바랍니다 :slight_smile:

(버그가 없다는 보장은 못 드리지만, 발견되면 기꺼이 후속 작업을 진행하겠습니다! :cowboy_hat_face:)

9개의 좋아요

로버트, 감사합니다. 해당 PR을 병합했습니다. 정말 감사합니다 :+1:

2개의 좋아요

이건 정말 제가 찾던 거였어요! 당신은 신이시네요! :bowing_man: :shallow_pan_of_food: :bowing_woman:
이 소박한 이모지 공물을 받아주세요. :canned_food:

1개의 좋아요

참고로, 이는 먼저 카테고리에 들어가서 새 주제를 생성한 경우에만 작동합니다. 최신 페이지에서 새 주제를 생성하려고 시도한 후 드롭다운에서 카테고리를 선택하면 텍스트가 표시되지 않습니다.

2개의 좋아요

그렇게 되는 건가요? 토픽 템플릿 기능이 보통 그렇게 동작합니다. 후자의 경우에서는 토픽 템플릿이 고려되지 않습니다.

하지만 제 생각에는 이 TC 없이도 후자의 경우를 지원하기 위해 바닐라 Discourse 자체에서 개선할 수 있을 것 같습니다. 개인적으로 사용자가 두 번째 경로를 선택할 때 템플릿이 표시되지 않는 점이 번거롭게 느껴졌습니다.

이 TC는 코어에 의존하는 방식이므로 …

아마도 우리가 다른 것에 대해 이야기하고 있는 것일 수도 있지만, 내 경우에는 이렇게 작동합니다…

1개의 좋아요

이는 Meta에서 제가 확인했을 때 정상적으로 작동하기 때문에 다른 원인이 있을 수 있습니다. /latest로 이동한 후 Composer를 열고 마켓플레이스 카테고리를 선택하면 해당 카테고리에 대해 설정된 템플릿이 표시됩니다.

4개의 좋아요

응, 이상하네. 미안, 아마 해결된 것 같아. 이 문제가 오래도록 신경 쓰였는데, 지금은 잘 되는 것 같아.

음, 그러면 새로운 과제가 생겼네. 하하.

4개의 좋아요

로버트님 - 병합 후 테스트했을 때는 정상적으로 작동했는데, 지금은 제 환경에서는 작동하지 않나요? 이 문제는 오버라이드 설정을 사용할 때 발생하는 것이며, [placeholder]를 사용하지 않는 상태입니다. 빌드 환경에서도 확인해 주실 수 있을까요?

또한 제 원래 버전에서는 최신 게시물 페이지에서 새 게시물을 시작한 후 카테고리를 선택해도 동일하게 작동했습니다.

롤백이 필요할까요…?

지금 보고 있어요. 잠시만 기다려 주세요.

수정 사항에 대한 PR을 올렸습니다: FIX: change the placeholder & template when switching selected Category - Pull Request #2 - naidihr/discourse-topic-template-placeholders - GitHub

이제 Composer의 선택에서 카테고리를 가져오도록 했습니다. 이 작업이 완료된 후 모든 상황에서 정상적으로 동작하는 것으로 보이지만, 확인 부탁드립니다.

2개의 좋아요

로버트, 안녕하세요. 마지막 PR을 병합하고 최신 테마 컴포넌트 버전으로 업데이트했지만, “모든 주제 템플릿을 플레이스홀더로 표시” 옵션을 설정해 두었음에도 여전히 기본 템플릿 텍스트가 표시됩니다. 현재 사용 중인 Discourse 버전은 2.4.1입니다. 다른 의견이 있으신가요?

2개의 좋아요

그렇게 하면 작동은 하지만, display all topic templates as placeholders가 켜져 있으면 카테고리 안에 있더라도 전혀 작동하지 않아요. 이 일을 자원한 걸 후회하고 싶네요 :stuck_out_tongue_winking_eye:

2개의 좋아요

문제가 없어요. 그냥 반복해서 개선해 나가면 되니까요. :). 한번 확인해 볼게요.

업데이트: PR FIX: resolve issue with displaying all Topic Templates as Placeholders - Pull Request #3 - naidihr/discourse-topic-template-placeholders - GitHub

체크아웃할 때 설정을 변경했다면 페이지를 새로고침하는 것을 잊지 마세요.

2개의 좋아요

훌륭하네요, Robert. 마지막 PR 덕분에 문제가 해결되었습니다. 최신 글 페이지나 카테고리 페이지에서 새 주제를 시작할 때도 마찬가지입니다. 지금은 모두 정상적으로 작동하는 것 같습니다. 이 문제를 살펴봐 주셔서 감사합니다. 정말 깔끔한 해결책이네요. _훌륭한 작업 :wink::+1:

3개의 좋아요

문제가 아닙니다. 기뻐요. 처음 테스트를 더 철저히 했어야 했는데 죄송합니다. 인내해 주셔서 감사합니다.

지금은 좋은 방향으로 나아가고 있는 것 같아요, 희망적으로!

더 많은 좋은 아이디어를 내서 실천에 옮겨 보세요!

3개의 좋아요

여러분, 안녕하세요! 이 테마 컴포넌트 아이디어를 정말 좋아합니다!

방금 디스코urs 인스턴스에 설치해 보려 했으나 몇 가지 문제가 발생하고 있습니다.
테마에서 활성화하면 이미 테마에 적용된 스타일링 일부가 깨지는 것 같습니다.
예를 들어, 사용자 드롭다운의 버튼들이:

활성화 시 다음과 같이 변합니다:


이 외에도, 'Display all your Topic Templates as placeholders (watermark text)' 옵션을 활성화하거나 비활성화한 경우 모두 플레이스홀더가 작동하지 않는 것 같습니다.

저희 디스코urs 인스턴스가 v2.3.10 버전이기 때문일 수도 있습니다?

여기 있는 코드를 살펴봤지만, 왜 저희 스타일링이 엉망이 되는지 파악하지 못하겠습니다.

저희 디스코urs 인스턴스의 관리와 업데이트는 다른 팀에 의존하고 있어, 해당 작업을 진행하는 것이 다소 큰 부담입니다.

이 문제를 잠재적으로 해결할 수 있는 빠른 팁을 기대하고 있지만, 만약 디스코urs 버전 문제라면 그것도 괜찮습니다!

미리 감사합니다 :smiley: