Link Personalizado de Perfil

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

Instale 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 card do usuário

Configurações

Se você deixar o campo de link personalizado do perfil vazio, ele usará o nome de usuário por padrão, então no caso do exemplo, ele iria para

http://github.com/charlie

Se você quiser usar um campo de entrada de usuário personalizado, você tem que 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, dê uma olhada no componente Múltiplos Links de Perfil Personalizados

21 curtidas

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

Isso definitivamente será usado por spammers!

1 curtida

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 curtidas

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 curtidas

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 curtidas

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

4 curtidas

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 curtidas

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 curtida

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 curtidas

Incrível, obrigado! :bouquet:

1 curtida

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 curtidas

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 curtidas