Neuling-Hilfe beim Zugriff auf Code

Hallo,

ich bin neu bei Discourse und im Allgemeinen bei Open Source. Ich kann nicht programmieren (außer HTML/CSS), aber ich kann normalerweise intuitiv herausfinden, wie man Code von einem Ort kopiert und an einen anderen einfügt, um ein Element an einer anderen Stelle anzuzeigen. Das ist sozusagen das Maximum an Anpassung, das ich mir außerhalb dessen vorstelle, was ich bereits tun kann.

Es gibt ein von mir erstelltes Benutzerfeld, das ich direkt unter dem vollständigen Namen des Benutzers auf der Benutzerkarte anzeigen möchte, anstatt an der üblichen Stelle unter den Standardbenutzerfeldern. Ich möchte also eine sehr kleine Anpassung vornehmen, aber sie wirft eine größere Frage auf: Wie greife ich auf das Theme/den Code zu?

Bei der Suche nach einer Antwort auf diese (äußerst einfache) Frage habe ich die Datei gefunden, die mit dem Code verbunden ist, den ich auf meiner lokalen Installation manipulieren müsste: discourse/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs. Da ich mein neues Forum bei discourcehosting.com hoste, bin ich mir nicht sicher, wie ich diese Datei bearbeiten kann, wenn ich keinen Zugriff auf die Dateien habe.

Ich entschuldige mich dafür, wie grundlegend diese Frage ist und wie dumm ich dabei wahrscheinlich wirke. Aber ich versichere, dass sie wohlwollend gemeint ist.

Vielen Dank.

Beginnen Sie unter Beginner's guide to using Discourse Themes und folgen Sie den Links zu spezifischen Theming-Anleitungen, um zu tun, was Sie möchten. :slight_smile:

Danke für den Link, maiki. Ich verspreche, ich habe diesen Leitfaden in den letzten Tagen ein Dutzend Mal durchgearbeitet, um sicherzustellen, dass ich nichts Offensichtliches übersehen habe. Ich verstehe, wie und wo man Anpassungen an Styling und Code im Head, Body usw. vornehmen kann, aber ich suche eigentlich nach Klarheit darüber, ob die Änderungen, die ich vornehmen möchte, im Wesentlichen die Erstellung eines „neuen Themes

Ich würde sagen, es war eine Theme-Komponente.

Denk nicht zu viel darüber nach, leg einfach ein Theme an. Das macht Spaß! Du wirst schon draufkommen. :slight_smile:

Ich konnte die Änderung an der lokalen Datei discourse/app/assets/javascripts/discourse/templates/components/user-card-contents.hbs vornehmen, um den gewünschten Effekt zu erzielen. Ich bin mir nur nicht sicher, wie man diese Datei bearbeitet, wenn man nicht selbst hostet…

Es ist möglich, HBS-Templates mithilfe von Theme-Komponenten zu überschreiben. Dies lässt sich über die Admin-Web-Oberfläche durchführen.

So geht’s: Developing Discourse Themes & Theme Components

In Ihrem Fall würden Sie eine neue Theme-Komponente erstellen und folgenden Code darin eingeben:

<script type="text/x-handlebars" data-template-name="components/user-card-contents">

</script>

Anschließend kopieren Sie den Inhalt Ihrer modifizierten Datei zwischen diese Script-Tags.

Das direkte Bearbeiten der Discourse-Dateien ist a) bei unserem Hosting nicht möglich und b) generell nicht empfehlenswert, da es Ihre Website beim Upgrade komplett zerstören würde. Die oben beschriebene Methode ist der richtige Weg – unabhängig davon, ob Sie unser Hosting nutzen oder nicht!

Wenn Sie lediglich ein Benutzerfeld zum Benutzerkarten-Layout hinzufügen möchten, könnten Sie auch einen Plugin-Outlet verwenden. Dies wird etwas weiter oben im selben Artikel sowie hier beschrieben. Die Plugin-Outlet-Methode erfordert weniger Änderungen am Code, was beim Upgrade eine bessere Kompatibilität gewährleistet. Sie ist jedoch etwas weniger flexibel, da ein verfügbarer Plugin-Outlet für Ihre Anforderungen erforderlich ist.