Link profilo personalizzato

:discourse2: Riepilogo Aggiungi un link personalizzato al profilo utente
:hammer_and_wrench: Repository GitHub - chapoi/discourse-profile-custom-link
:question: Guida all’installazione Come installare un tema o un componente tema
:open_book: Nuovo ai temi di Discourse? Guida per principianti all’uso dei temi di Discourse

Installa questo componente tema

Un piccolo componente per aggiungere un link personalizzabile sul profilo utente.

Mostrato su…

  1. Il profilo utente espanso

  2. La card utente

Impostazioni

Se lasci vuoto il campo link personalizzato profilo, verrà utilizzato per impostazione predefinita il nome utente, quindi nell’esempio andrebbe a:

http://github.com/charlie

Se si desidera utilizzare un campo di inserimento utente personalizzato, è necessario impostare il valore sul nome esatto del campo utente, esempio:

  1. Crea il campo utente

  2. Imposta l’impostazione sul nome del campo utente

  3. Fai compilare il campo agli utenti
    /u/[username]/preferences/profile

Ora andrà a http://github.com/MyRealGithubName


Per un’implementazione più avanzata, dai un’occhiata al componente Multiple Custom Profile Links

23 Mi Piace

Questo riceve "nofollow"? Verrà inviato ad Akismet?

Questo sarà sicuramente utilizzato dagli spammer!

1 Mi Piace

Solo una piccola precisazione, dovrebbe essere http://github.com/, giusto?

Inoltre, c’è un motivo particolare per cui questo suggerisce GitHub http invece di https?

4 Mi Piace

Ahah sì, è un errore di battitura. Grazie. Non sto reinventando le strutture degli URL qui :winking_face_with_tongue:

Nessuno affatto

4 Mi Piace

Ciao @chapoi! Sono molto contento di aver trovato questo componente. L’ho appena aggiunto al nostro forum, grazie! Potrei persino passare alla versione “link multipli”.

Nota rapida: c’è un “the” in più nel testo della descrizione sotto il campo “icona del link personalizzato del profilo” :slight_smile:

C’è un motivo specifico per cui devo aggiungere un componente per questo, invece di aggiungere un altro tipo di campo per i Campi Utente?

Saluti

2 Mi Piace

Bella presa. :+1: Questo dovrebbe sistemare le cose:

4 Mi Piace

Non sono sicuro di aver capito la domanda. I campi utente non vengono tutti mostrati automaticamente sul profilo o sulla usercard.

2 Mi Piace

Ciao Charlie,
scusa se non sono stato più chiaro. Sarebbe fantastico se ci fosse un tipo di campo per i campi utente, che consenta link invece di semplice testo.

O stiamo utilizzando i campi utente in modo del tutto errato? Ecco come li stiamo utilizzando in questo momento:

I link devono essere copiati e incollati invece di essere semplicemente cliccabili.

1 Mi Piace

Ok, ora seguo, grazie!

Sì, questo è in realtà un punto giusto che sollevi. Esaminerò la possibilità del tuo suggerimento; immagino che ci sia un motivo per cui non è stato fatto, ma al momento non lo so.

2 Mi Piace

Fantastico, grazie! :bouquet:

1 Mi Piace

Quindi, ho dato un’occhiata ma le modifiche necessarie sono ben al di sopra delle mie capacità di designer (leggi: roba da backend database) – quindi temo che sarà necessario utilizzare il plugin.

Un’opzione che potresti considerare è fare una richiesta di funzionalità, e vedere se suscita maggiore interesse.

Saluti!

2 Mi Piace

Questa soluzione è ottima e spero che possiamo contribuire a migliorarla. Il nostro link al profilo è del tipo “https://www.domain.com/user/[USER-ID]/”. La barra finale rovina la soluzione per noi. Posso aggiungere una riscrittura dell’URL, ma una soluzione migliore sarebbe rendere il codice più adattivo. Voglio link reali funzionanti al sito!

Ho provato a convertire il plugin in un tema in modo da poter migliorare il javascript, ma quella funzione CONVERT Discourse non sembra funzionare.

Puoi apportare l’aggiornamento in modo che aggiunga funzionalità?


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 Ho appena pubblicato una richiesta di funzionalità qui, non ho visto i tuoi post su questo argomento

2 Mi Piace

Questo componente sembra aver smesso di funzionare su v2025.11

[THEME 2 'Custom Profile Link'] Avviso di deprecazione: array.filterBy è un'estensione nativa di array Ember deprecata. Usa metodi di array nativi o un TrackedArray invece. [deprecato dalla versione Discourse 3.6.0.beta1-dev] [id deprecazione: discourse.native-array-extensions.filterBy]

1 Mi Piace

Sono su 2025.12 e sembra funzionare ancora per me. È solo un avviso deprecato, non un errore, quindi dovrebbe comunque andare bene.

Puoi dirmi di più su cosa stai riscontrando?

1 Mi Piace

In effetti, il problema effettivo è risultato essere causato da un errore dell’utente.

3 Mi Piace