Also today I realized that the User Profile page actually displays the custom field as it should, although compared to the user card, now the custom field (Website) is displayed last instead of first…
I feel like I’ve seen a discussion of this, but I can’t find it now.
I’ve got a custom profile field that holds a user’s website implemented using this tutorial, but allowing for any external site to be entered, rather than just linking to Twitter or something. The problem I have is that about 80% of the users don’t bother to put “http(s)://” in front of the URL they enter. They (rightly) expect that “www.example.com” should just work. So how do I make it just work?
Edited to add: Figured it out. Below is the entire if block of javascript I used to determine whether to attempt to show an external link. The inner if is what determines whether the external URL needs to have “http” added to it, and takes care of doing it.
if (userFields && userFields[churchURLFieldId]) {
const rawChurchURL = userFields[churchURLFieldId];
var url = rawChurchURL;
if (!/^https?:\/\//i.test(rawChurchURL)) {
url = 'http://' + rawChurchURL;
}
const link = "<a href='"+url+"' target='_blank'>"+userFields[churchNameFieldId];+"</a>";
return Ember.Object.create({ link, name: churchURL.get('name') });
} else {
return null;
}
Is there a way to edit existing user profile fields rather than adding new one? So that the existing twitter field value can be edited to contain anchor tag
the main post that allows us to add new clickable profile fields using connectors/handlebar outlets etc, those get “added” and so I had to hide the existing profile fields
e.g. I could add a clickable twitter field and so have to hide the existing twitter field
Now the newly added twitter field will be in a separate div rather than belonging to that same ember div which was pre-existing, resulting in weird css
Would using /connectors/user-profile-public-fields/Twitter instead of using /connectors/user-profile-primary/ help here?
Das ist sehr schön! Ich habe es geforkt und versucht, es als Theme-Komponente ohne die namatispezifischen Inhalte etwas allgemeiner zu gestalten. Hoffe, das ist dir recht!
Ich habe auch einen separaten Beitrag erstellt, um es für andere leichter auffindbar zu machen:
Hallo zusammen, ich wollte nur kurz mitteilen, dass ich eine sehr einfache Plugin-Version davon erstellt habe. Damit könnt ihr einfach angeben, welches Benutzerfeld als Link verwendet werden soll, sowie optional ein Präfix (z. B. https://mysite.com/users/). Ich dachte mir, ich teile das hier, falls jemand lieber eine Theme-Komponente installieren möchte, anstatt Code zu ändern. Sie basiert auf dem Code im Originalbeitrag dieses Threads.
Als Randbemerkung: Für meinen spezifischen Anwendungsfall möchte ich nicht, dass Benutzer es bearbeiten können; stattdessen plane ich, es über die Discourse-API zu aktualisieren. In diesem Fall wäre ein „benutzerdefiniertes Feld
@wilson29thid wären Sie bereit, ein #theme-Thema für diese Komponente einzurichten? Es wäre großartig, dies als installierbare Theme-Komponente zu haben, anstatt dass die Leute den Code jedes Mal kopieren und einfügen müssen.
Sicher – macht die Erstellung eines Themas hier mit diesem Tag es installierbar?
Es ist bereits über die Git-URL installierbar. Das Erstellen eines Themas wird den Leuten nur helfen, es leichter zu finden.
Etwas andere Frage. Ich möchte einen Link hinzufügen, der sich in einem anderen Fenster öffnet, zur Beschreibung eines Benutzerfeldes auf der Registrierungsseite. Diese Seite erkennt keine Links, die in [diesem](Format) eingeschlossen sind.
Ich möchte, dass die Benutzer zustimmen, dass sie unsere Community-Werte gelesen haben, bevor sie beitreten. Ein Link dort hilft, falls sie sie übersehen haben. Im Moment habe ich ihnen nur gesagt, dass sie den vollständigen Link in ihren Browser kopieren/einfügen sollen.
Wie funktioniert das mit Discourse 3.2 und Ember 5?
Ich habe die Version aktualisiert: \u003cscript type=\"1.13.0\"\u003e und api.registerConnectorClass zu api.renderInOutlet geändert, wie hier vorgeschlagen, aber ich erhalte in der Browserkonsole: [THEME 27] Error: klass is not an Ember component
Ich habe property durch computed ersetzt, wie hier vorgeschlagen, aber ich erhalte in der Browserkonsole: [THEME 27] ReferenceError: computed is not defined
Oh, ich habe den Import vergessen, also füge ich den fehlenden import EmberObject, { computed } from '@ember/object'; nach dem öffnenden Skript-Tag hinzu, aber das führt zu einem SyntaxError: „/discourse/theme-27/discourse/initializers/theme-field-140-common-html-script-3: ‘import’ und ‘export’ dürfen nur auf oberster Ebene erscheinen.“
Hmm ja, die im OP vorgeschlagenen Techniken sind ziemlich veraltet (was Sinn macht, da er 2016 geschrieben wurde
).
Heutzutage sollte so etwas in einem Git-Repository verpackt und als Theme component veröffentlicht werden, damit Leute es installieren und über die Einstellungen konfigurieren können.
Ich habe @wilson29thid’ TC zwar hier überarbeitet, aber es gibt immer noch eine Deprecation-Warnung, die ich irgendwann beheben muss.
Diese Funktionalität des OP kann nun in einer neuen Mini-Komponente gefunden werden: