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

다들 감사합니다. 업데이트 후 강제 새로고침을 했더니 이제 정상적으로 작동합니다!

2개의 좋아요

방금 이 컴포넌트를 테스트하기 시작했어요. 감사합니다! 개인 메시지에 플레이스홀더 텍스트를 추가하는 것에 대해 궁금한데요. 혹시 시도해 보신 분 계신가요?

개인 메시지는 주제 게시물과 동일한 기본 플레이스홀더 텍스트를 사용합니다. 이는 사이트 관리자가 관리자 설정의 사용자 정의 > 텍스트에서 변경할 수 있습니다. 이 스레드 상단에 표시된 대로 js.composer.reply_placeholder를 검색하세요.

이 구성 요소를 사용하여 각 주제 카테고리별 플레이스홀더 텍스트를 사용자 정의하는 경우, 기본 플레이스홀더 텍스트는 개인 메시지에만 적용되어야 합니다.

1개의 좋아요

이 테마 컴포넌트는 정말 멋집니다. 사용자가 주제를 생성할 때 조금 더 안내를 줄 방법을 찾고 있었는데, 양식을 작성하는 것과 유사한 경험을 만들어 보고 싶습니다.

현재 이 테마 컴포넌트는 주제에 미리 로드된 모든 텍스트가 단일 플레이스홀더로 작동하도록 합니다. 즉, 사용자가 주제 작성기에 아무 내용이라도 입력하면 모든 플레이스홀더 텍스트가 사라집니다.

페이지에 서로 다른 플레이스홀더를 둘 수 있을까요? 예를 들어, 주제 템플릿이 다음 항목에 대해 각각 다른 플레이스홀더를 로드하도록 하는 것입니다:

“이름”


“위치”


“문제”

이렇게 하면 사용자가 이름을 입력할 때, 사용자가 해당 위치에 직접 입력할 때까지 '위치’와 '문제’의 플레이스홀더는 그대로 남아 있게 됩니다.

사용자가 입력하는 동안 기본 Discourse 주제 템플릿 텍스트는 그대로 유지됩니다. 이것이 바로 당신이 필요로 하는 것이 아닌가 싶네요?

플레이스홀더 방식:

저(그리고 다른 분들도?)가 기대하는 것은 폼의 플레이스홀더처럼 작동하는 것입니다(즉, 개별 폼 요소가 있는 경우를 의미합니다).

현재 기본 동작 방식은 제가 작성한 것처럼(“name”, “location”, “issue” 등) 폼의 다른 섹션을 나열할 수 있게 해줍니다. 하지만 기본 템플릿 동작 방식은 이전에 언급했던 것과 동일한 문제점을 가지고 있습니다. 마크다운이 혼란을 유발하고 사용자가 쉽게 형식을 깨뜨릴 수 있기 때문입니다.

이상적인 형태는 일반적인 폼처럼 각 섹션(이름, 위치, 문제)에 플레이스홀더가 있는 형태라고 생각합니다. 다만 (여기가 차이점입니다) 각 섹션은 독립적으로 작동해야 합니다. 즉, 사용자가 이름 섹션을 클릭하면 "name"이라는 플레이스홀더는 사라지지만, 사용자가 다른 섹션도 클릭할 때까지 나머지 섹션은 그대로 유지되어야 합니다.

이것이 jquery를 통해 가능할 것 같습니다(?). 각 섹션에는 고유한 id가 포함된 div가 있어야 하며, 사용자가 해당 div를 클릭할 때 jquery를 이용해 해당 id의 텍스트를 표시하거나 제거할 수 있어야 합니다. 하지만 이를 위해서는 textarea 안에 div를 추가해야 하는데, 어떻게 해야 할지 잘 모르겠습니다.

저는 여기에서 그 방법을 조사하고 있습니다.

템플릿 방식

대안으로, 사용자가 클릭해도 섹션 헤더가 “사라지지” 않는 방식이 있을 수 있습니다. 즉, 섹션 헤더(예: Name, Location, Issue)는 페이지에 계속 남아 있는 텍스트가 됩니다. 현재 템플릿 기본 방식과 비교했을 때, 더 폼처럼 보이게 하려면 다음과 같은 조치가 필요합니다:

  1. 섹션 헤더 텍스트는 사용자가 수정할 수 없어야 합니다(즉, contenteditable="false" 적용)
  2. 섹션 구분점은 사용자가 제거할 수 없어야 합니다
  3. 섹션 헤더 아래에 사용자가 입력할 수 있음을 명확히 알 수 있는 공간이 있어야 합니다. 현재 기본 템플릿에서는 사용자가 텍스트가 있는 위치로 이동한 후 return 키를 눌러 입력 공간을 만들어야 합니다.

아마 이것이 더 쉬운 방법일까요?

이 설정 only apply on first post이 작동하지 않는다는 것을 발견했습니다.
모든 게시글에 동일한 플레이스홀더를 적용하려면 이 설정을 비활성화해야 하는데, 그렇게 하면 표준 플레이스홀더가 표시됩니다.

답글에만 적용되는 플레이스홀더를 사용할 수 있는 가능성이 있을까요? 사용자가 답글에 어떤 내용을 포함할 수 있는지에 대해 더 많은 안내를 주고 싶으며, 답글 입력 시 나타나는 플레이스홀더가 도움이 될 것 같습니다.

4개의 좋아요

플레이스홀더 텍스트가 한 줄 이상일 때만 답변에 한정적으로 작동한다는 것을 발견했습니다. 코드가 제게 다소 복잡해서 왜 그런지는 정확히 알지 못합니다.

P.S.

그곳에 머물면서 브라우저 콘솔 경고를 방지하기 위한 작은 PR을 올렸습니다:

2개의 좋아요

병합했습니다. Nathan, 감사합니다.

2개의 좋아요

플레이스홀더 텍스트가 표시되지 않는 문제가 있습니다. 뭘 놓치고 있을까요?

템플릿:

컴포넌트 설정

플레이스홀더/템플릿 텍스트가 표시되지 않습니다

“모든 토픽 템플릿을 플레이스홀더로 표시” 옵션을 해제했을 때

템플릿이 플레이스홀더 텍스트가 아닌 편집 가능한 텍스트로 표시됩니다

템플릿 텍스트를 편집하면 [placeholder]가 포함됩니다

템플릿 텍스트가 사라집니다/플레이스홀더 텍스트가 없습니다

신규 Discourse 설치 환경이며, 플러그인/컴포넌트는 설치되어 있지 않습니다 - Discourse 3.4.0

음, 이 테마 컴포넌트가 작동하지 않는 것 같네요. :thinking:

3개의 좋아요

이 컴포넌트가 더 이상 작동하지 않습니다.

음, 제대로 작동하지 않는다는 걸 확인했습니다. 아마도 최근 Discourse에서 주요 변경 사항이 있었기 때문일 것입니다.

1개의 좋아요

안녕하세요, 업데이트될 가능성이라도 있나요? :face_with_tongue:

안녕하세요 :waving_hand:

이 테마 컴포넌트를 다시 활성화하고 최신 Discourse와 호환되도록 만드는 PR을 생성했습니다. :slightly_smiling_face:

8개의 좋아요

@Don 감사합니다. 풀 리퀘스트를 병합했습니다. 잘 동작하는지 테스트해 주세요. :folded_hands:

3개의 좋아요

방금 다시 설치해서 사용해 보았는데, 지금은 잘 작동하는 것 같습니다.

따라서 broken 태그를 제거했습니다.

2개의 좋아요

[관리자 공지] 테마 ‘Topic Template Placeholder Text’에는 업데이트가 필요한 코드가 포함되어 있습니다. (id:discourse.resolver-resolutions)

[THEME 50 ‘Topic Template Placeholder Text’] 비권장 사용 공지: “site:main”은 더 이상 권장되지 않으며, 대신 “service:site”를 사용하십시오 [Discourse 2.9.0.beta7부터 비권장 사용] [비권장 사용 id: discourse.resolver-resolutions]

해당 사항을 수정하고 업데이트를 배포했습니다. 이제 모두 정상적으로 작동할 것입니다.

2개의 좋아요