Ăśbersicht
Eine Theme-Komponente, mit der Sie Komponenten[1] auf oberen und seitlichen Leisten anordnen können.
- Geben Sie eine Reihe von „Widgets“ eindeutig für Route und Position an.
- UnterstĂĽtzt Setups fĂĽr jede der folgenden Optionen: Entdeckung[2], Thema, Tag[3], Kategorie[3:1], Kategorien[3:2] ODER Tag-Schnittmenge[4]
- „Leisten“ können entweder sein: oben, links, rechts ODER alternative rechte Position.
- Jede Leiste kann eingeklappt oder geschlossen werden (Browser aktualisieren, um das Schließen zurückzusetzen). Sie können standardmäßig minimiert werden.
- Behandelt die offizielle Seitenleiste. Wenn Sie jedoch eine Seitenleiste mit linker Leiste verwenden möchten, wird der Dropdown-Modus der offiziellen Seitenleiste empfohlen.
- Es enthält vorhandene Beispiel-Einstellungen, die einige große Buchstaben zeigen, teilweise als Demo und teilweise, damit Sie Beispiel-Einstellungen sehen können. Löschen Sie diese und ersetzen Sie sie durch Ihre eigenen Komponentennamen.
- Wird mit einer Komponente geliefert:
bars-custom-html(siehe voreingestellte Beispiel-Einstellungen) – aber Komponenten aus vielen vorhandenen Theme-Komponenten & Plugins sind kompatibel. - Mobile Unterstützung ist noch nicht implementiert.
Schnelle Links
https://github.com/merefield/discourse-tc-bars |
|
| GitHub - merefield/discourse-tc-bars: A Theme Component that allows you to lay out Components ("widgets") on top and side bars | |
| Installing a theme or theme component |
Gefällt Ihnen diese Theme-Komponente? Bitte
sie auf GitHub ! ![]()
Kostenloses Beispiel:
Beim ersten Laden:
Einige wichtige Dinge, die Sie ĂĽber diese TC beachten sollten!
-
Diese Theme-Komponente richtet sich hauptsächlich an Entwickler und Administratoren mit technischem Verständnis der Theme-Entwicklung. Wenn Sie nicht ausreichend technisch versiert sind und Hilfe bei der Implementierung von Seitenleisten mit Leisten benötigen, können Sie mich oder einen Entwickler unter Marketplace engagieren.
-
Diese Theme-Komponente soll ein Framework zur Unterstützung von Seitenleisten bieten. Sie bietet nicht und soll keine endgültige visuelle Ausarbeitung bieten, die Sie in Ihrem Theme mit zusätzlichem CSS hinzufügen müssen. Sie leistet jedoch viel Arbeit für Sie und gibt Ihnen weniger Dinge, über die Sie nachdenken müssen, und vielleicht sogar die Möglichkeit, Dinge zu tun, zu denen Sie vorher keine Möglichkeit hatten …

KomponentenĂĽberlegungen
-
Sie müssen einen Komponentennamen angeben. Der Komponentename ist tatsächlich derselbe wie der Dateiname im Verzeichnis
componentdes Themes, TC oder Plugins ohne die Endung.- Der Komponentename ist nicht der Name der Theme-Komponente (die viele Ember Glimmer-Komponenten enthalten könnte), sondern der Name der tatsächlichen Ember-Komponentendatei
, also z. B.:
also
layouts-tag-list - Der Komponentename ist nicht der Name der Theme-Komponente (die viele Ember Glimmer-Komponenten enthalten könnte), sondern der Name der tatsächlichen Ember-Komponentendatei
-
Sie können aus einer vorhandenen Theme-Komponente oder einem Plugin stammen. Vorhandene Komponenten funktionieren möglicherweise. Beispiele sind:
- 🏷️ Bars Tag List Component
- Render a component within a Widget. (Using select-kit components within plugin code) - #31 by merefield
- Discourse AI Topic Summary 🤖 … und möglicherweise sogar:
- Das Leaderboard-Widget: https://github.com/discourse/discourse-gamification/blob/main/assets/javascripts/discourse/components/minimal-gamification-leaderboard.js (lassen Sie es mich unten wissen, wenn Sie es ausprobieren!)
-
Es erfordert einige Fachkenntnisse, um Komponenten zu erstellen
- Aber versuchen Sie, Ihre eigene Komponente in einer anderen Theme-Komponente zu erstellen, und stellen Sie sicher, dass beide in demselben Theme aktiv sind.
-
Komponenten müssen ihre eigenen Daten beziehen (sie können keine Plugin-Outlet-Pass-Through-Modelle verwenden, leider aufgrund der spezifischen Plugin-Outlets, die verwendet werden müssen, um Dinge auf diese Weise anzuordnen)
- Out-of-the-Box können Sie nur vorhandene JSON-API-Daten von z. B. Discourse Core oder von einem vorhandenen Plugin verwenden. Wenn Sie spezielle Daten benötigen, die Sie nicht aus aktuellen APIs beziehen können, können Sie mich oder jemanden unter Marketplace engagieren, um Ihnen zu helfen.
-
Möglicherweise müssen Sie die Seitenleiste und die Komponentengrenzen nach Geschmack gestalten. (Auch hier gilt: Wenn Sie Hilfe benötigen, erwägen Sie die Beauftragung eines Entwicklers).
- Strategischer Einsatz von Schatten und Rahmen kann Dinge wirklich gut aussehen lassen – seien Sie künstlerisch!
Warum
-
Mit der Aktualisierung von Discourse Core auf Ember 5 funktionierte der Trick Pavilion’s Plugin Layouts, um das Discourse-Layout hervorragend zu manipulieren, nicht mehr. Es gab nun keine einfache Möglichkeit mehr, eine Seitenleiste auf einer Themenroute über eine relativ einfache Benutzeroberfläche für Endbenutzer anzuzeigen.
-
DarĂĽber hinaus fĂĽhrte Ember Glimmer-Komponenten ein, mit denen sich viel besser arbeiten lieĂź. (Layouts verwendeten die Widgets API, die zugunsten von Glimmer-Komponenten veraltet ist).
-
Schließlich stellte das Discourse Core-Team einen neuen JSON-Editor für Theme-Komponenten-Einstellungen bereit, der die Bereitstellung komplexerer Einstellungen ermöglichte

-
Anstatt das Layout-Plugin zu reparieren (TCs gab es damals, als Layouts entwickelt wurden, noch nicht), war es sinnvoll, es als Theme-Komponente neu zu erstellen, da wir die meisten Dinge, die wir brauchen, nur im Frontend erreichen können.
-
Treten Sie ein in „Bars“
Prost!!
Bekannte Probleme
- Die obere Leiste klebt nicht (ich werde die entsprechende Einstellung möglicherweise entfernen, wenn ich sie nicht lösen kann).
Credits
- Geistiger Nachfolger des jetzt defekten Layouts Plugin, erstellt von @angus (Prost!), das uns viele Jahre gute Dienste geleistet hat.
- Verwendet das Parametersystem von Right Side Blocks (danke @pmusaraj!)
Der Begriff „Entdeckung“ (Route) bezieht sich auf die Hauptseiten der Themenliste (z. B. „Neueste“, „Neu“), auf denen Sie verfügbare Themen durchsuchen können, bevor Sie auf ein bestimmtes Thema klicken und sich damit befassen. ↩︎
Technisch gesehen auch eine „Entdeckungs“-Route, aber wir trennen diese in unterschiedliche Namen, damit Sie sie unterschiedlich behandeln können, wenn Sie möchten. ↩︎
Siehe hier für weitere Details. Damit dies optional bleibt (nicht alle Installateure von Bars möchten eine benutzerdefinierte Homepage), fügt Bars den erforderlichen Modifikator nicht in
about.jsonhinzu. Sie müssen diesen daher im übergeordneten Theme oder einer anderen TC hinzufügen, um ihn zu aktivieren. ↩︎ ↩︎ ↩︎Siehe das Tag Intersection Plugin ↩︎








