Ich versuche, site-header.hbs in meinem benutzerdefinierten Theme zu überschreiben. Der Pfad zu dieser Datei in Discourse lautet plugins/styleguide/assets/javascripts/discourse/components/sections/organisms/site-header.hbs.
Ich habe versucht, in der head_tag.html meines Themes Folgendes hinzuzufügen:
<script type="text/x-handlebars" data-template-name="javascripts/components/sections/organisms/site-header">
<StyleguideExample @title="site header - in topic - scrolled">
<div class="d-header-wrap">
test
</div>
</StyleguideExample>
</script>
Sie versuchen, etwas anderes zu tun, wofür Sie denken, dass das Überschreiben der Vorlage die Lösung ist. Das Überschreiben von Vorlagen ist fehleranfällig und wird wahrscheinlich zu Problemen führen. Was versuchen Sie, mit dem Header zu tun, das Sie nicht mit einem Plugin-Outlet tun können?
@pfaffman danke für deine Antwort.
Das Hauptproblem ist, dass ich alle Anpassungen im Theme und nicht in Plugins beibehalten muss. Gibt es eine andere sicherere Möglichkeit, dies mit dem benutzerdefinierten Theme zu erreichen?
@pfaffman Ich möchte die Anzeige des Logos entfernen und einen benutzerdefinierten Button hinzufügen. Und oberhalb des Headers möchte ich dynamische Links anzeigen, die aus einer benutzerdefinierten Komponente stammen.
@pfaffman danke. Ich verstehe deine Vorschläge vollkommen. Ich möchte jedoch wissen, ob es eine Möglichkeit gibt, Dateien wie site-header.hbs über ein benutzerdefiniertes Theme anzupassen. Macht das Sinn?
Diese Customization > Theme component könnte ebenfalls eine Überlegung wert sein, wenn du nach einem Header-Menü mit Dropdown-Untermenü suchst.
Der Vorteil der Verwendung einer bestehenden Komponente (insbesondere wenn sie offiziell ist oder von einem der Partner stammt) besteht darin, dass sie mit höherer Wahrscheinlichkeit weitergewartet wird und die Gefahr von Fehlfunktionen geringer ist.