Wie man die Datei site-header.hbs im benutzerdefinierten Theme überschreibt

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>

Ich habe auch mehrere Variationen ausprobiert:

<script type="text/x-handlebars" data-template-name="components/sections/organisms/site-header">
<div xmlns="http://www.w3.org/1999/xhtml">test</div>
</script>

<script type="text/x-handlebars" data-template-name="javascripts/components/sections/organisms/site-header">
<div xmlns="http://www.w3.org/1999/xhtml">test</div>
</script>

<script type="text/x-handlebars" data-template-name="javascripts/components/site-header">
<div xmlns="http://www.w3.org/1999/xhtml">test</div>
</script>

<script type="text/x-handlebars" data-template-name="javascripts/components/sections/organisms/site-header">
<div xmlns="http://www.w3.org/1999/xhtml">test</div>
</script>

Aber nichts davon hilft. Könnten Sie mir bitte helfen?

1 „Gefällt mir“

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?

2 „Gefällt mir“

@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?

Plugin-Outlets werden in Themes aktualisiert. Siehe Using Plugin Outlet Connectors from a Theme or Plugin

Ja. Was versuchst du zu tun?

4 „Gefällt mir“

@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.

Sie sollten die hbs nicht überschreiben müssen, um all das zu tun.

Schauen Sie sich vielleicht Custom Header Links an.

Sie können das Logo mit CSS ausblenden.

New Topic Header Button fügt eine Schaltfläche hinzu.

Siehe auch (deprecated) Plugin outlet locations theme component.

3 „Gefällt mir“

@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?

Das wird nicht unterstützt. Haben Sie meinen Link gelesen, den ich Ihnen nach Ihrem vorherigen (duplizierten?) Beitrag geschickt habe?

4 „Gefällt mir“

@merefield Ja, ich habe Ihren Artikel gelesen. Ich wollte nur sichergehen.
Okay, vielen Dank.

2 „Gefällt mir“

Das könnte helfen (und sicherstellen, dass Ihre Anpassungen von Dauer sind)

4 „Gefällt mir“

Diese Theme component könnte auch eine Überlegung sein, wenn Sie nach einem Header-Menü mit Dropdown-Untermenü suchen

Der Vorteil der Verwendung einer vorhandenen Komponente (insbesondere wenn sie offiziell oder von einem der Partner stammt) ist, dass sie wahrscheinlich gepflegt wird und weniger wahrscheinlich kaputt geht.

3 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.