Benutzerdefinierter Profil-Link

:discourse2: Zusammenfassung Fügt einen benutzerdefinierten Link zum Benutzerprofil hinzu
:hammer_and_wrench: Repository GitHub - discourse/discourse-profile-custom-link
:question: Installationsanleitung So installieren Sie ein Theme oder eine Theme-Komponente
:open_book: Neu bei Discourse Themes? Anfängerleitfaden zur Verwendung von Discourse Themes

Install this theme component

Eine kleine Komponente, um einen anpassbaren Link im Benutzerprofil hinzuzufügen.

Wird angezeigt bei…

  1. Das erweiterte Benutzerprofil

  2. Die Usercard

Einstellungen

Wenn Sie das Feld profile custom link field leer lassen, wird standardmäßig der Benutzername verwendet. Im Beispiel würde es also zu
http://github.com/charlie
führen.

Wenn Sie ein benutzerdefiniertes Benutzereingabefeld verwenden möchten, müssen Sie den Wert auf den genauen Namen des Benutzerfeldes setzen, Beispiel:

  1. Erstellen Sie das Benutzerfeld

  2. Setzen Sie die Einstellung auf den Namen des Benutzerfeldes

  3. Lassen Sie Benutzer das Feld ausfüllen
    /u/[username]/preferences/profile

Jetzt wird es zu http://github.com/MyRealGithubName


Für eine erweiterte Implementierung schauen Sie sich die Multiple Custom Profile Links Komponente an.

21 „Gefällt mir“

Wird dies “nofollow” erhalten? Wird es an Akismet gesendet?

Dies wird definitiv von Spammern genutzt werden!

1 „Gefällt mir“

Nur eine kleine Anmerkung, das sollte http://github.com/ sein, oder?

Gibt es auch einen bestimmten Grund, warum hier http GitHub statt https vorgeschlagen wird?

4 „Gefällt mir“

Haha ja, das ist ein Tippfehler. Danke. Ich erfinde hier keine URL-Strukturen neu :winking_face_with_tongue:

Überhaupt nicht.

4 „Gefällt mir“

Hey @chapoi! Ich bin so froh, dass ich diese Komponente gefunden habe. Ich habe sie gerade zu unserem Forum hinzugefügt, danke! Ich werde vielleicht sogar zur „Mehrfachlink“-Version wechseln.

Kurzer Hinweis: Es gibt ein zusätzliches „the“ im Beschreibungstext unter dem Feld „Profil-Benutzerdefinierter Link-Symbol“ :slight_smile:

Gibt es einen bestimmten Grund, warum ich eine Komponente dafür hinzufügen muss, anstatt einen weiteren Feldtyp für die Benutzerfelder hinzuzufügen?

Viele Grüße

2 „Gefällt mir“

Gut bemerkt. :+1: Das sollte es aufräumen:

4 „Gefällt mir“

Ich bin mir nicht sicher, ob ich die Frage verstehe. Benutzerfelder werden nicht alle automatisch im Profil oder auf der Benutzerkarte angezeigt.

2 „Gefällt mir“

Hallo Charlie,
Entschuldigung, dass ich nicht klarer war. Es wäre großartig, wenn es einen Feldtyp für Benutzerfelder gäbe, der Links anstelle von nur Text zulässt.

Oder nutzen wir Benutzerfelder völlig falsch? Hier ist, wie wir sie gerade verwenden:

Links müssen kopiert und eingefügt werden, anstatt einfach klickbar zu sein.

1 „Gefällt mir“

Ok, jetzt verstehe ich, danke!

Ja, das ist tatsächlich ein fairer Punkt, den du ansprichst. Ich werde die Möglichkeit deines Vorschlags prüfen; ich vermute, dass es einen Grund gibt, warum das nicht gemacht wurde, aber ich weiß es im Moment nicht.

2 „Gefällt mir“

Super, danke! :bouquet:

1 „Gefällt mir“

Ich habe es mir angesehen, aber die notwendigen Änderungen liegen weit außerhalb meiner Fähigkeiten als Designer (lesen Sie: Backend-Datenbankkram) – daher befürchte ich, dass das Plugin verwendet werden muss.

Eine Option, die Sie in Betracht ziehen könnten, ist, eine Funktionsanfrage zu stellen und zu sehen, ob diese auf mehr Interesse stößt.

Viele Grüße!

2 „Gefällt mir“

Diese Lösung ist großartig und ich hoffe, wir können sie verbessern. Unser Profil-Link ist im Format „https://www.domain.com/user/[USER-ID]/“. Der abschließende Schrägstrich ruiniert die Lösung für uns. Ich kann eine URL-Weiterleitung hinzufügen, aber eine bessere Lösung wäre, den Code anpassungsfähiger zu gestalten. Ich möchte funktionierende echte Links zurück zur Website!

Ich habe versucht, das Plugin in ein Theme zu konvertieren, um das Javascript zu verbessern, aber diese CONVERT Discourse-Funktion scheint nicht zu funktionieren.

Können Sie das Update so gestalten, dass es Funktionalität hinzufügt?


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 Ich habe gerade eine Funktionsanfrage hierfür gepostet, habe deine Beiträge zu diesem Thema nicht gesehen

2 „Gefällt mir“