Hey,
entschuldige, falls die Antwort schon irgendwo für mich bereitsteht, aber nach stundenlanger Suche habe ich sie nicht finden und selbst herausfinden können.
Ich denke, ich habe die Bedeutung von Widgets und Komponenten verstanden, aber jedes Beispiel, das ich gefunden habe, war ähnlich aufgebaut.
Ein Widget oder eine Komponente wird in ein bereits vorhandenes Element, einen vorhandenen Connector oder eine vorhandene Outlet eingebunden.
Was ich versuchen möchte:
Ich verwende das Dark/Light Toggler-Komponente, aber es ist für Benutzer nicht intuitiv zu finden.
Andere Theme-Switcher-Komponenten (auch meine eigene) sind immer an ein bestehendes Discourse-Element (Header, Links, Navigation usw.) angehängt.
Aber ich möchte es in meinem eigenen HTML haben. In meiner eigenen Seitenleiste:
Meine Seitenleiste, die du auf dem Bildschirm siehst, sieht so aus:
<div class="row">
<div class="sidebar-counterTitleWrapper">
<div class="sidebar-counterRefreshIcon" type="success" size="medium" circle>
<svg class="far fa-sync fa d-icon d-icon-sync svg-icon svg-node">
<use xlink:href="#sync"></use>
</svg>
</div>
<h3 class="sidebar-counterTitle">
Spieler online auf HWS
</h3>
</div>
<div class="sidebar-counterServers">
<span class="sidebar-counterPlayer">HWS EU:</span>
<strong class="sidebar-counterPlayer--eu">
</strong>
</div>
<div class="sidebar-counterServers">
<span class="sidebar-counterPlayer">HWS NA:</span>
<strong class="sidebar-counterPlayer--na">
</strong>
</div>
<div class="sidebar-counterServers">
<span class="sidebar-counterPlayer">HWS RE:</span>
<strong class="sidebar-counterPlayer--re">
</strong>
</div>
<br>
<h4 class="sidebar-server-title">Serverzeit</h4>
<div class="sidebar-server-time"></div>
</div>
<hr class="content-textLine">
<div class="need-help-wrapper">
<a href="https://help.hws.global" title="HWS Hilfe erhalten">
Hilfe benötigt?
</a>
<hr class="content-textLine">
Wie kann ich das umsetzen?
Idealerweise wäre es etwas wie:
<script type="text/discourse-plugin" version="0.8">
const h = require("virtual-dom").h;
api.createWidget("my-dark-light-widget", {
tagName: "div.my-widget",
// dark-light stuff
});
</script>
und dann das Einfügen in mein eigenes HTML wie:
<script type="text/x-handlebars" inject-to-my-class-selector(.sidebar-counterTitleWrapper)>
{{mount-widget widget="my-dark-light-widget"}}
</script>
Ich denke, es ist etwas Einfaches, das ich nur übersehen habe…
Jede Hilfe wird geschätzt!


