Link al profilo personalizzato

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

Installa questo componente tema

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

Mostra su…

  1. Il profilo utente espanso

  2. La usercard

Impostazioni

Se lasci vuoto il campo link personalizzato del profilo, utilizzerà di default il nome utente, quindi nel caso dell’esempio andrà a
http://github.com/charlie

Se vuoi usare un campo di input utente personalizzato, devi impostare il valore al nome esatto del campo utente, esempio:

  1. Crea il campo utente

  2. Imposta l’impostazione al 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

21 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