Lien personnalisé du profil

:discourse2: Résumé Ajouter un lien personnalisé au profil utilisateur
:hammer_and_wrench: Dépôt GitHub - discourse/discourse-profile-custom-link
:question: Guide d’installation Comment installer un thème ou un composant de thème
:open_book: Nouveau sur les thèmes Discourse ? Guide du débutant pour utiliser les thèmes Discourse

Installer ce composant de thème

Un petit composant pour ajouter un lien personnalisable sur le profil utilisateur.

S’affiche sur…

  1. Le profil utilisateur développé

  2. La carte utilisateur

Paramètres

Si vous laissez le champ profile custom link field vide, il utilisera par défaut le nom d’utilisateur, donc dans l’exemple, il irait à

http://github.com/charlie

Si vous souhaitez utiliser un champ de saisie utilisateur personnalisé, vous devez définir la valeur sur le nom exact du champ utilisateur, par exemple :

  1. Créer le champ utilisateur

  2. Définir le paramètre sur le nom du champ utilisateur

  3. Demander aux utilisateurs de remplir le champ
    /u/[username]/preferences/profile

Maintenant, il ira à http://github.com/MyRealGithubName


Pour une implémentation plus avancée, consultez le composant Multiple Custom Profile Links

21 « J'aime »

Est-ce que cela obtient « nofollow » ? Sera-t-il envoyé à Akismet ?

Ceci sera certainement utilisé par les spammeurs !

1 « J'aime »

Juste une petite remarque, ce devrait être http://github.com/, n’est-ce pas ?

Aussi, y a-t-il une raison particulière pour laquelle cela suggère GitHub en http au lieu de https ?

4 « J'aime »

Haha oui, c’est une faute de frappe. Merci. Je ne réinvente pas les structures d’URL ici :winking_face_with_tongue:

Pas du tout

4 « J'aime »

Salut @chapoi ! Je suis ravi d’avoir trouvé ce composant. Je viens de l’ajouter à notre forum, merci ! Je vais peut-être même passer à la version « lien multiple ».

Petite note : il y a un « the » en trop dans le texte de description sous le champ « icône de lien personnalisé du profil » :slight_smile:

Y a-t-il une raison spécifique pour laquelle je dois ajouter un composant pour cela, au lieu d’ajouter un autre type de champ pour les champs utilisateur ?

Cordialement

2 « J'aime »

Bien vu. :+1: Cela devrait arranger les choses :

4 « J'aime »

Je ne suis pas sûr de suivre la question. Les champs utilisateur ne sont pas tous automatiquement affichés sur le profil ou la carte utilisateur.

2 « J'aime »

Salut Charlie,
désolé de ne pas avoir été plus clair. Ce serait formidable s’il existait un type de champ pour les champs utilisateur, qui autorise les liens au lieu de simple texte.

Ou alors, nous utilisons les champs utilisateur de manière incorrecte ? Voici comment nous les utilisons actuellement :

Les liens doivent être copiés-collés au lieu d’être simplement cliquables.

1 « J'aime »

Ok, je comprends maintenant, merci !

Oui, c’est un point tout à fait valable que vous soulevez. Je vais étudier la possibilité de votre suggestion ; je suppose qu’il y a une raison pour laquelle cela n’a pas été fait, mais je ne la connais pas pour le moment.

2 « J'aime »

Génial, merci ! :bouquet:

1 « J'aime »

J’ai jeté un œil, mais les changements nécessaires dépassent de loin mes compétences de designer (lisez : trucs de base de données backend) – je crains donc qu’il ne soit nécessaire d’utiliser le plugin.

Une option que vous pourriez envisager est de faire une demande de fonctionnalité et de voir si cela suscite plus d’intérêt.

Cordialement !

2 « J'aime »

Cette solution est excellente et j’espère que nous pourrons contribuer à l’améliorer. Le lien de notre profil est de la forme « https://www.domain.com/user/[USER-ID]/ ». La barre oblique finale casse la solution pour nous. Je peux ajouter une réécriture d’URL, mais une meilleure solution serait de rendre le code plus adaptatif. Je veux des liens réels et fonctionnels vers le site !

J’ai essayé de convertir le plugin en thème afin de pouvoir améliorer le javascript, mais cette fonction CONVERT Discourse ne semble pas fonctionner.

Pouvez-vous apporter la mise à jour afin qu’elle ajoute des fonctionnalités ?


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 Je viens de publier une demande de fonctionnalité ici, je n’avais pas vu vos messages sur ce sujet

2 « J'aime »