Einstellungen erscheinen nicht

Hallo zusammen, ich fange gerade an, Dinge für Discourse zu entwickeln, und arbeite an einer Theme-Komponente.
Link: GitHub - NateDhaliwal/discourse-persistent-banner: A theme component for Discourse that cannot be closed by the user.

Wenn ich es in den Theme Creator einfüge, erscheinen die Einstellungen nicht, obwohl ich eine settings.yml habe. Irgendwelche Ideen?

Siehst du irgendwelche Fehlermeldungen im Theme Creator?

Ich denke, du musst die gleichen Anführungszeichen am Anfang und Ende verwenden.

Das könnte auch ein Problem sein. Ich würde default: "" versuchen.

Vielleicht möchtest du “block” zu den Optionen hinzufügen. Ansonsten musst du den Zurück-Button verwenden, um das wieder auszuwählen.

Hoppla, mir ist gerade aufgefallen, dass ich auf „Neu erstellen“ geklickt habe, anstatt es zu importieren…
Aber jetzt, wenn ich die URL verwende, sagt es, dass about.json ungültig ist oder nicht existiert, und fragt mich, ob es ein Theme ist.
About.json:

Stimmt etwas nicht?

Fehlendes Komma nach der Lizenz-URL.

:roll_eyes:
@merefield Wäre die Version in \"\"?

Wahrscheinlich auch das. Schauen Sie sich einfach Beispiele an.

Danke! Noch eine letzte Frage, ich kann die Variable nicht anzeigen lassen.
https://github.com/NateDhaliwal/discourse-persistent-banner/blob/main/common/header.html

Lag es daran, dass ich sie nicht richtig initialisiert habe? Ich habe versucht, der Anleitung zu folgen…

  1. Verwenden Sie keine „header.html“, sondern eine ordnungsgemäße Komponente (vorzugsweise eine .gjs-Datei, aber .hbs könnte ausreichen).
  2. Verwenden Sie den html-safe-Helper, wann immer Sie HTML aus Einstellungen oder Variablen ausgeben.

Müsste ich dann \njs\nimport Component from "@glimmer/component";\n\nexport default class PracticeComponent extends Component {\n get bannerLinks() {\n return JSON.parse(settings.banner_links);\n }\n}\n\nverwenden?

Schau dir die Milliarden von Beispielen an :stuck_out_tongue_winking_eye:

Sie müssen nur eine gjs-Datei verwenden, wenn Sie Dinge mit JavaScript verarbeiten müssen, andernfalls kann eine hbs-Vorlagendatei ausreichen. Experimentieren Sie.

Ich bin mir nicht sicher, ob ich in die richtige Richtung gehe.
Ich habe javascripts/persistent-banner.hbs mit diesem erstellt:
https://github.com/NateDhaliwal/discourse-persistent-banner/blob/main/javascripts/persistent-banner.hbs

Aber es wird nichts angezeigt. Habe versucht, es an verschiedenen Stellen zu platzieren, es funktioniert immer noch nicht.

Habe versucht, mir Beispiele anzusehen, aber viele scheinen nicht zu helfen.
Irgendwelche Ratschläge?

In welchem Plugin-Outlet möchten Sie Ihr Banner platzieren?
Schauen Sie sich Using Plugin Outlet Connectors from a Theme or Plugin an

Sie könnten https://meta.discourse.org/t/add-a-featured-topic-list-to-your-discourse-homepage/132949?u=moin als Beispiel verwenden

Sie können die (deprecated) Plugin outlet locations theme component verwenden, um die Namen und Speicherorte der Plugin-Outlets zu finden. „above-main-container“ ist zum Beispiel das oberste über der Themenliste, aber nicht über der Seitenleiste.

Ein Blick in den Code einer Theme component, die etwas Ähnliches hinzufügt, ist ebenfalls eine großartige Möglichkeit zu lernen.

Sie müssen und sollten keine Skript-Tags in hbs-Dateien einfügen. Sie sollten auf den Inhalt der Vorlage beschränkt sein.

Raten Sie nicht ins Blaue, lesen Sie die Anleitungen:

Ich habe es also geschafft, es ohne eine hbs-Datei zum Laufen zu bringen, sondern stattdessen das \u003cscript\u003e-Tag mit Handlebars zu verwenden, und es funktioniert jetzt.
Ich benutze es im Moment so, aber ich werde weiterhin versuchen, stattdessen eine hbs-Datei zu verwenden.

Ich habe einen schnellen Pull Request für dich erstellt, damit du siehst, wie die Dateien richtig aufgeteilt werden. Du kannst ihn gerne zusammenführen oder dir einfach den Branch ansehen.

Vielen Dank! Es funktioniert jetzt!

Keine Sorge, Nate. Mach weiter mit dem Experimentieren, Lesen und dem Ansehen anderer Beispiele. Im Handumdrehen wirst du viel besser in diesen Entwicklerdingen sein als ich :smiley: :raised_hands:

Danke für die Ermutigung!