Wie kann man das Header-Contents-Widget wieder öffnen?

Hallo! Ich bin Anfänger, daher hoffe ich auf Ihre Hilfe. Ich möchte den Inhalt in … ändern. Wenn ich die Quelldateien öffne, sehe ich, dass das “header-content”-Widget Folgendes sagt:

createWidget("header-contents", {
   tagName: "div.contents.clearfix",
   template:hbs`
     {{home-logo attrs=attrs}}
     {{#if attrs.topic}}
       {{header-topic-info attrs=attrs}}
     {{/if}}
     <div class="panel clearfix" role="navigation">{{yield}}</div>
   `,
});

Ich schreibe in common/head_tag.html


<script type="text/discourse-plugin" version="0.8.13">
     api.reopenWidget("header-contents", {
tagName: "div.contents.clearfix",
template:hbs`
<H1>Hallo! Helfen Sie mir bitte!!!</H1>
<div class="panel clearfix" role="navigation">{{yield}}</div>
`,
});
</script>

Das funktioniert nicht. Bitte helfen Sie mir.

1 „Gefällt mir“

Hallo @Deomid_Fedorov, willkommen bei Meta :wave:

Wenn du die Browserkonsole überprüfst, siehst du etwas wie das hier

ReferenceError: hbs ist nicht definiert

Aber selbst wenn du das behebst, hättest du immer noch Probleme, dies zum Laufen zu bringen, da Vorlagen auf dem Server vorkompiliert werden sollen und nicht auf der Clientseite.

Wir haben viele Möglichkeiten, den Header anzupassen. Wenn du mir mitteilst, was du zu tun versuchst, kann ich dir wahrscheinlich einen Weg zeigen, wie du das gewünschte Ergebnis erzielen kannst.

3 „Gefällt mir“

Hallo Joe! Vielen Dank für deine schnelle Antwort. Ich muss sagen, ich mag Discourse immer mehr, aber es gibt einige Schwierigkeiten, mit denen ich noch nicht fertig geworden bin. Im Allgemeinen habe ich einen großen Wunsch: Ich möchte meinen HTML-Code überall einbetten können, in jedem Tag, und ich möchte einige Elemente entfernen können, die ich für überflüssig halte.

Ich habe den Beitrag Developing Discourse Themes & Theme Components gelesen. Diese Anweisungen reichten jedoch nicht aus, um meine Probleme zu lösen.

Kommen wir zu konkreten Beispielen:

  1. Wie bette ich meinen Code in den <header>-Tag zwischen die <div class="title"> und <div class="navigation"> Blöcke ein?
  2. Wie verhindere ich die Generierung des <ul id="navigation-bar">-Elements?

Ich möchte dich warnen, dass meine Englischkenntnisse nicht perfekt sind, daher können im Text Fehler auftreten. Ich hoffe auf Verständnis.

1 „Gefällt mir“

Keine Sorge, wir können das herausfinden.

Ich weiß, worauf Sie sich hier beziehen.

aber ich bin mir nicht sicher, welches Element Sie hier meinen

Können Sie einen Screenshot hinzufügen, wo Sie neue Elemente hinzufügen möchten?

Wenn Ihre Website dieses Element nicht benötigt, können Sie es mit CSS ausblenden. Also, so etwas wie das hier.

#navigation-bar {
  display: none;
}

Allerdings gibt dieses Element den Benutzern eine einfache Möglichkeit, zwischen den verschiedenen Filtern für Themenlisten zu navigieren, und ich empfehle nicht, es zu entfernen - besonders auf Mobilgeräten.

Sie kennen Ihre Community jedoch besser als jeder andere. Wenn es also für Sie funktioniert, dann… großartig :+1:

2 „Gefällt mir“


Das meine ich. Ich muss meinen benutzerdefinierten Block dort platzieren, wo ich im Screenshot mit dem Pfeil hinzeige.
Ich lade einen weiteren Screenshot hoch, damit Sie besser verstehen, welches Ergebnis ich erzielen möchte:

Vielen Dank nochmals für Ihre Reaktionsfähigkeit. Ich verfüge über recht gute CSS-Kenntnisse. Ich weiß, dass ich durch das Schreiben von display: none das Element ausblenden kann. Aber ich hätte gerne eine stärkere Erfahrung. Ich möchte Vorlagen und Widgets wie ein echter Profi verwalten können. Ich vermute, es gibt einen besseren Weg, dies zu tun. Zum Beispiel, die Vorlage neu zu schreiben oder etwas anderes.