사용자 지정 프로필 링크

:discourse2: 요약 사용자 프로필에 사용자 지정 링크 추가
:hammer_and_wrench: 저장소 GitHub - chapoi/discourse-profile-custom-link · GitHub
:question: 설치 가이드 테마 또는 테마 컴포넌트 설치 방법
:open_book: Discourse 테마를 처음 사용하시나요? Discourse 테마 사용 입문 가이드

이 테마 컴포넌트 설치

사용자 프로필에 사용자 지정 링크를 추가하는 작은 컴포넌트입니다.

표시 위치…

  1. 확장된 사용자 프로필

  2. 사용자 카드

설정

profile custom link field(프로필 사용자 지정 링크 필드)를 비워 두면 기본적으로 사용자 이름이 사용되므로, 예시와 같이 http://github.com/charlie로 이동합니다.

사용자가 직접 입력하는 필드를 사용하려면 값을 해당 사용자 필드의 정확한 이름으로 설정해야 합니다. 예시:

  1. 사용자 필드 생성

  2. 설정을 사용자 필드 이름으로 지정

  3. 사용자에게 해당 필드를 채우도록 안내
    /u/[username]/preferences/profile

이제 http://github.com/MyRealGithubName으로 이동합니다.


더 고급스러운 구현을 원하시면 Multiple Custom Profile Links 컴포넌트를 확인해 보세요.

24개의 좋아요

이것은 "nofollow"가 붙을까요? Akismet으로 전송될까요?

이건 분명히 스팸러들이 이용할 거예요!

1개의 좋아요

간단한 지적인데, 이건 http://github.com/가 맞지 않나요?

또한, https가 아닌 http GitHub를 권장하는 특별한 이유가 있나요?

4개의 좋아요

하하, 네, 오타였어요. 감사합니다. 여기서 URL 구조를 새로 발명하려는 건 아니거든요 :winking_face_with_tongue:

아니요, 전혀 없습니다.

4개의 좋아요

Hey @chapoi! 이 컴포넌트를 찾게 되어 정말 기뻐요. 방금 우리 포럼에 추가했어요. 감사합니다! “다중 링크” 버전으로 전환할지도 몰라요.

간단히 말씀드리면, “프로필 사용자 정의 링크 아이콘” 필드 아래 설명 텍스트에 "the"가 하나 더 있네요 :slight_smile:

User Fields에 다른 필드 유형을 추가하는 대신, 왜 이걸 위해 컴포넌트를 추가해야 하는지 특별한 이유가 있을까요?

감사합니다

2개의 좋아요

좋은 지적입니다. :+1: 이걸로 정리할 수 있을 것 같아요:

4개의 좋아요

질의를 정확히 이해하지 못하겠습니다. User fields는 모두 자동으로 프로필이나 사용자 카드에 표시되지 않습니다.

2개의 좋아요

찰리, 안녕하세요.
더 명확하게 설명하지 못한 점 죄송합니다. 텍스트가 아닌 링크를 허용하는 사용자 필드를 위한 필드 유형이 있으면 좋겠습니다.

아니면 우리가 사용자 필드를 잘못 활용하고 있는 걸까요? 현재 우리가 사용자 필드를 사용하는 방법은 다음과 같습니다:

링크를 클릭할 수 있게 하는 대신 복사해서 붙여넣어야 합니다.

1개의 좋아요

아, 이제 이해했어요. 감사합니다!

네, 실제로 꽤 타당한 지적이네요. 제안해 주신 가능성에 대해 알아볼게요. 제 생각에는 그렇게 하지 않은 데에 이유가 있을 것 같긴 한데, 지금은 잘 모르겠네요.

2개의 좋아요

완벽해요, 감사합니다! :bouquet:

1개의 좋아요

확인해 보았지만, 필요한 변경 사항은 제 디자이너 실력으로는 감당하기 어려울 정도로 복잡한 내용입니다(즉, 백엔드 데이터베이스 관련 작업). 따라서 플러그인을 사용해야 할 것 같습니다.

기능 요청을 등록해 보시는 것도 좋은 방법입니다. 그러면 더 많은 관심을 받을 수 있을지도 모릅니다.

감사합니다!

2개의 좋아요

이 솔루션은 훌륭하며, 이를 개선하는 데 도움이 될 수 있기를 바랍니다. 저희 프로필 링크 형식은 "https://www.domain.com/user/[USER-ID]/"입니다. 끝의 슬래시(trailing slash)가 저희 솔루션을 망가뜨립니다. URL 재작성을 추가할 수는 있지만, 더 나은 해결책은 코드를 더 적응적으로 만드는 것입니다. 사이트로 돌아가는 작동하는 실제 링크가 필요합니다!

자바스크립트를 개선할 수 있도록 플러그인을 테마로 변환해 보았지만, 그 CONVERT Discourse 함수가 작동하지 않는 것 같습니다.

기능을 추가하도록 업데이트를 해 주실 수 있나요?


import Component from "@glimmer/component";
import { tracked } from "@glimmer/tracking";
import { service } from "@ember/service";

export default class ProfileCustomLink extends Component {
  @service site;
  @tracked customLinkUrl;
  @tracked customLinkFieldId;
  @tracked showCustomLink = false;
  @tracked user = this.args.model.username;
  @tracked userFields = this.args.model.user_fields;

  constructor() {
    super(...arguments);

    if (settings.profile_custom_link_field) {
      const siteUserFields = this.site.user_fields;

      if (!siteUserFields) {
        return;
      }

      const customLinkField = siteUserFields.filterBy(
        "name",
        settings.profile_custom_link_field
      )[0];

      if (!customLinkField) {
        return;
      }

      this.customLinkFieldId = this.userFields[customLinkField.id];
      if (!this.customLinkFieldId) {
        return;
      } else {
        this.showCustomLink = true;
        if (settings.profile_custom_link_prefix.includes("[CUSTOM-LINK-FIELD-ID]")) {
          const url = settings.profile_custom_link_prefix.replace("[CUSTOM-LINK-FIELD-ID]", this.customLinkFieldId);
          this.customLinkUrl = url;
        } else {
          const url = settings.profile_custom_link_prefix + this.customLinkFieldId;
          this.customLinkUrl = url;
        }
      }
    } else {
      const url = settings.profile_custom_link_prefix + this.user;
      this.customLinkUrl = url;
      this.showCustomLink = true;
    }
  }
}

@Julian2 이 주제에 대한 기능 요청을 방금 여기에 게시했어요. 이 주제에 대해 작성하신 글을 보지 못했네요.

2개의 좋아요

이 컴포넌트는 v2025.11에서 동작을 멈춘 것 같습니다

[THEME 2 'Custom Profile Link'] 비추천 알림: array.filterBy는 비추천된 Ember 네이티브 배열 확장입니다. 네이티브 배열 메서드나 TrackedArray를 대신 사용하세요. [Discourse 3.6.0.beta1-dev부터 비추천됨] [비추천 ID: discourse.native-array-extensions.filterBy]

1개의 좋아요

저는 2025.12 버전을 사용 중인데 여전히 정상적으로 작동하는 것 같습니다. 이는 오류가 아니라 비추천(deprecated) 경고일 뿐이므로 문제없을 것입니다.

경험하고 계신 상황에 대해 좀 더 자세히 말씀해 주시겠어요?

1개의 좋아요

사실상 실제 문제는 사용자 오류로 인해 발생한 것으로 밝혀졌습니다.

3개의 좋아요