Link de Perfil Personalizado

:discourse2: Resumo Adiciona um link personalizado ao perfil do usuário
:hammer_and_wrench: Repositório GitHub - chapoi/discourse-profile-custom-link
:question: Guia de Instalação Como instalar um tema ou componente de tema
:open_book: Novo nos Temas do Discourse? Guia para iniciantes sobre como usar Temas do Discourse

Instalar este componente de tema

Um pequeno componente para adicionar um link personalizável no perfil do usuário.

Mostra em…

  1. O perfil de usuário expandido

  2. O cartão do usuário

Configurações

Se você deixar o profile custom link field (campo de link personalizado do perfil) vazio, ele usará o nome de usuário como padrão, então no caso do exemplo ele irá para
http://github.com/charlie

Se você quiser usar um campo de entrada de usuário personalizado, você deve definir o valor para o nome exato do campo de usuário, exemplo:

  1. Crie o campo de usuário

  2. Defina a configuração para o nome do campo de usuário

  3. Peça aos usuários para preencherem o campo
    /u/[username]/preferences/profile

Agora ele irá para http://github.com/MyRealGithubName


Para uma implementação mais avançada, confira o Componente de Múltiplos Links de Perfil Personalizados

24 Curtiram

Isso recebe "nofollow"? Será enviado para o Akismet?

Isso definitivamente será usado por spammers!

1 Curtiu

Só uma pequena observação, deveria ser http://github.com/, certo?

Além disso, há alguma razão específica para isso sugerir GitHub http em vez de https?

4 Curtiram

Haha sim, foi um erro de digitação. Obrigado. Não estou reinventando estruturas de URL aqui :winking_face_with_tongue:

De forma alguma

4 Curtiram

Olá @chapoi! Fico muito feliz por ter encontrado este componente. Acabei de adicioná-lo ao nosso fórum, obrigado! Posso até mudar para a versão “link múltiplo”.

Observação rápida: há um "the" extra no texto da descrição abaixo do campo "ícone de link personalizado do perfil" :slight_smile:

Existe um motivo específico para eu ter que adicionar um componente para isso, em vez de adicionar outro tipo de campo para os Campos de Usuário?

Abraços

2 Curtiram

Boa observação. :+1: Isso deve resolver:

4 Curtiram

Não tenho certeza se entendi a pergunta. Os campos de usuário não são todos exibidos automaticamente no perfil ou no cartão do usuário.

2 Curtiram

Olá Charlie,
Desculpe por não ter sido mais claro. Seria ótimo se houvesse um tipo de campo para campos de usuário, que permitisse links em vez de apenas texto.

Ou estamos utilizando Campos de Usuário completamente errado? É assim que os estamos usando no momento:

Os links precisam ser copiados e colados em vez de serem clicáveis.

1 Curtiu

Ok, agora eu entendi, obrigado!

Sim, esse é um ponto justo que você levanta. Vou investigar a possibilidade da sua sugestão; minha suposição é que um motivo para isso não ter sido feito, mas não sei no momento.

2 Curtiram

Incrível, obrigado! :bouquet:

1 Curtiu

Então, eu dei uma olhada, mas as mudanças necessárias estão muito além das minhas habilidades de designer (leia-se: coisas de banco de dados de backend) – então, receio que será necessário usar o plugin.

Uma opção que você poderia considerar é fazer um pedido de funcionalidade e ver se isso gera mais interesse.

Abraços!

2 Curtiram

Esta solução é ótima e espero que possamos ajudar a melhorá-la. O link do nosso perfil é do tipo “https://www.domain.com/user/[USER-ID]/”. A barra final prejudica a solução para nós. Posso adicionar uma reescrita de URL, mas uma solução melhor seria tornar o código mais adaptável. Quero links reais que funcionem de volta para o site!

Tentei converter o plugin em um tema para poder melhorar o javascript, mas essa função CONVERT Discourse não parece estar funcionando.

Você pode fazer a atualização para que ela adicione funcionalidade?


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 Acabei de postar uma solicitação de recurso para isso aqui, não vi suas postagens sobre este tópico

2 Curtiram

Este componente parece ter parado de funcionar na v2025.11

[TEMA 2 'Link de Perfil Personalizado'] Aviso de descontinuação: array.filterBy é uma extensão nativa de array do Ember que foi descontinuada. Use métodos de array nativos ou um TrackedArray em vez disso. [descontinuado desde Discourse 3.6.0.beta1-dev] [id de descontinuação: discourse.native-array-extensions.filterBy]

1 Curtiu

Eu estou no 2025.12 e ainda parece funcionar para mim. Isso é apenas um aviso de descontinuação, não um erro, então ainda deve estar tudo bem.

Você pode me dizer mais sobre o que está acontecendo?

1 Curtiu

Na verdade, o problema real foi causado por um erro do usuário.

3 Curtiram