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?
This is very nice, i forked it and tried to make it a bit more general as a theme component without the Namati specific stuff. Hope you don’t mind!
Added a separate post as well to make it easier to find for others:
Hi all, just wanted to share that I made a very basic plugin version of this. It just lets you specify which user field to make into a link, and—optionally—a prefix (e.g. https://mysite.com/users/). Just thought I’d share in case anyone would rather install a theme component instead of modify code. It’s based on the code in the original post in this thread.
On a side note, for my particular use case, I don’t want any user to be able to edit it; rather, I plan to update it via the discourse API. In that case, would a “custom field” be better than a “user field”? I see both in the API, but custom_fields are blank.
@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: