Hallo Leute
Ich habe mir die Zeit genommen, Ihre Komponente zu aktualisieren.
[Admin-Hinweis] Eines Ihrer Themes oder Plugins muss für die Kompatibilität mit bevorstehenden Änderungen im Discourse-Kern aktualisiert werden. (ID: discourse.header-widget-overrides) Identifiziertes Theme: ‘Header Icons’.
Als Neuling, der die ursprüngliche Komponente anhand der Hilfedokumente, Beispiele und durch Ausprobieren geschrieben hat, bin ich etwas verloren.
Der Beitrag über die Änderungen, Upcoming Header Changes - Preparing Themes and Plugins, setzt Wissen und Kontext voraus, die mir fehlen. Und die Hilfedokumente Developing Discourse Themes & Theme Components beziehen sich nicht auf die neuen APIs (und scheinen inzwischen etwas veraltet zu sein
)
Meine Komponente fügt zwei Icons zum Header hinzu – eines ist ein Link zur Seite des Documents-Plugins und das andere ist ein Icon, das sich basierend auf einem Wert in einem benutzerdefinierten Feld in den Einstellungen ändert.
Derzeit wird dies über das Folgende in head_tag.html realisiert.
Jede Anleitung wäre willkommen, da ich völlig verloren bin, wohin ich gehen soll.
Danke
<script type="text/discourse-plugin" version="0.8">
const { iconNode } = require("discourse-common/lib/icon-library");
api.decorateWidget('header-icons:before', helper => {
return helper.h('div.d-header-icons.doc-header-set', [
helper.h('a.icon.btn-flat.doc', {
href:'/docs',
title: 'Documents'
}, [iconNode("book"), "Documents"]),
]);
});
api.decorateWidget('header-icons:before', (helper) => {
//https://fontawesome.com/v5.15/icons?d=gallery&p=2&q=times&s=regular,solid&m=free
let icon = 'calendar';
let title = 'Open status: unknown';
try {
const cache = JSON.parse(settings.tool_status);
const shutter = cache.tools[4];
if (shutter.status)
{
icon = 'calendar-check';
title = 'Open since '+shutter.date;
}
else
{
icon = 'calendar-alt';
title = 'Closed since '+shutter.date;
}
} catch (e) {}
return helper.h('div.d-header-icons.shutter-status', [
helper.h('a.icon', {
href:'/calendar',
title: title
}, iconNode(icon)),
]);
});
</script>
Sie können den gesamten GitHub-Code meiner Komponente hier sehen: GitHub - bluefroguk1/DiscourseHeaderIcons: This theme component places the Calendar icon + shutter status tick in our Discourse instance, bestaunen Sie meinen schrecklichen Programmierversuch lol
