Wir haben ein Problem, bei dem das Marken-Header-Menü oben links auf Mobilgeräten nur teilweise erweitert wird, wenn darauf getippt wird. Wir haben es so eingestellt, dass die Leiste auf Mobilgeräten nicht angezeigt wird. Wenn ich nur auf das Hamburger-Menü tippe, sieht es so aus:
Ich habe festgestellt, dass in unserem Forum, wenn ich nur auf das Hamburger-Menü klicke, die Klasse „slide-in“ nicht zum „menu-panel“-Div hinzugefügt wird.
Soweit ich das beurteilen kann, stammen menu-panel und slide-in nicht von unserem Theme. Aber es scheint, dass slide-in wichtig ist, damit es funktioniert. Warum wird slide-in nicht hinzugefügt, wenn das Menü geöffnet wird? Warum wird es durch Ändern der Größe des Browserfensters plötzlich hinzugefügt?
Ich musste nicht zoomen, um dies zu erhalten, und wenn ich zoome, erhalte ich die Klasse slide-in überhaupt nicht…
Es sieht so aus, als ob Sie Discourse 3.2 und nicht die aktuelle Version 3.3 verwenden. Es gibt Updates für diese Komponente, die Version 3.3 erfordern, sodass Sie diese derzeit nicht erhalten.
Es ist möglich, dass die Aktualisierung von Discourse und der Komponente alle Ihre Probleme behebt, aber wenn nicht, gibt es möglicherweise einen Konflikt mit anderen Anpassungen.
Sie haben Recht, wir verwenden Discourse 3.2.3. Ich dachte, ich hätte aus diesem Beitrag verstanden, dass das Problem auch in Version 3.3 besteht, aber Ihre sieht gut aus. Ich werde prüfen, ob wir auf 3.3 upgraden können oder vielleicht eine ältere Version der Brand-Header-Komponente installieren.
Ist irgendwo veröffentlicht, dass die Komponente Version 3.3 erfordert? Ich sehe das nirgendwo.
Wissen Sie zufällig, wann die Updates gemacht wurden, die von 3.3 abhängen? Oder was die letzte Version ist, die mit 3.2 funktioniert?
Sie erfordert es nicht ausdrücklich, aber manchmal, wenn wir Updates vornehmen, die auf einer neueren Discourse-Funktion basieren, heften wir die Theme-Komponente an eine ältere Discourse-Version, die verhindert, dass sie inkompatible Updates erhält.
Wenn dies geschieht, sind die Details in einer .discourse-compatibility-Datei enthalten:
Seit dieser Änderung wurde der Code der Komponente aufgrund von Änderungen an der Funktionsweise des Headers in Discourse komplett überarbeitet.
Ich denke, dies unterstreicht ein gutes Problem, das wir berücksichtigen sollten. Diese Informationen sind ziemlich vergraben und technisch. Vielleicht können wir im Admin-Panel eine Nachricht hinzufügen, die besagt, dass einige Komponenten keine Updates mehr erhalten, da sie Funktionen aus der neuesten Version von Discourse benötigen.
Ich habe die Komponente geforkt, sie auf Commit 12e6f76 zurückgerollt und diese auf unserem Forum installiert, aber das Problem besteht weiterhin. Hätte das nicht behoben werden sollen?
Ich muss etwas missverstehen. Früher hatten wir dieses Problem nicht. Irgendwann trat das Problem auf, weil die Komponente Änderungen vornahm, die Discourse 3.3 erfordern, und wir haben die Komponente aktualisiert, verwenden aber immer noch Discourse 3.2. Ist das richtig? Wenn ja, wäre die einfachste Lösung nicht, auf die letzte Version der Komponente zurückzusetzen, die mit Discourse 3.2 funktioniert?
Die Komponente hätte diese Änderungen für 3.3 nicht erhalten. Wenn eine Komponente an eine bestimmte Discourse-Version angeheftet wird, ist sie im Wesentlichen in ihrem aktuellen Zustand eingefroren, bis Discourse aktualisiert wird.
Sie sollten dies also nicht tun müssen… das Anheften sollte automatisch dazu führen, dass sie auf der neuesten kompatiblen Version verbleibt, aber es ist möglich, dass dieser Fehler bereits in der von Ihnen verwendeten Version der Komponente vorhanden war.
Ich verstehe jetzt… clever. Kann man davon ausgehen, dass der Maintainer keine Anstrengungen unternehmen wird, damit die Komponente ordnungsgemäß mit 3.2 funktioniert?
Ich habe eine Kopie des Forums erstellt und auf 3.3 aktualisiert, und ja, das behebt das Problem. Ich kläre mit unserem Administrator ab, ob es möglich ist, das Live-Forum auf 3.3 zu aktualisieren.
Ja, leider haben wir nur die Bandbreite, um Theme-Komponenten auf der neuesten Version von Discourse zu warten, sodass dies von Zeit zu Zeit bei älteren Versionen vorkommen kann.