Hallo.\n\nIch versuche, eine benutzerdefinierte Reihenfolge von Thema-Tags nach ihrem Tag-Gruppen-Namen-Wert durchzuführen.\n\nIch habe mir die Theme-Komponenten angesehen und glaube, dass dies der richtige Weg ist, aber ich hätte gerne eine Meinung dazu und einige Hinweise, da dies meine erste Theme-Komponente wäre.\n\nViele Grüße
3 „Gefällt mir“
Ich habe das Feld „Tag-Beschreibung“ verwendet, um eine Ganzzahl zu speichern und die gewünschte Reihenfolge zu simulieren. Da die Tag-Gruppe weder in der Tag-Struktur noch im DOM verfügbar ist, habe ich diesen Weg gewählt.
Anschließend habe ich mit einem Head-Code-Snippet aus dem Theme-Editor das folgende Skript in das DOM eingefügt.
Dies ermöglichte mir, die Tags dynamisch neu zu ordnen. Obwohl es derzeit ein „Hack“ ist, funktioniert es zumindest.
<script type="text/discourse-plugin" version="0.8">
api.addTagsHtmlCallback(function(topic, params) {
const containers = document.querySelectorAll(".discourse-tags");
for (const container of containers) {
const children = Array.from(container.children);
children.sort((a, b) => {
const orderA = parseInt(a.getAttribute("title"));
const orderB = parseInt(b.getAttribute("title"));
return orderA - orderB;
});
children.forEach(child => container.appendChild(child));
}
}, {priority: 100});
</script>