Ich möchte einige grundlegende HTML-Elemente in einem Plugin ändern, das ich gerade teste (es wäre praktisch, alle Änderungen in einem einzigen Plugin unterzubringen). Dies wäre HTML, das ich im Bereich header des Theme-Customizers im Admin-Dashboard platzieren würde, wenn ich dieses Dashboard anstelle eines Plugins verwenden würde.
In einem Theme hättest du einfach einen direkten Ordner namens common, der die verschiedenen Dateien enthält, wie zum Beispiel header.html.
Ich weiß, dass gemeinsame Stylesheets für ein Plugin im Ordner plugin/assets/stylesheets/common abgelegt werden können. Wo sollte ich diese header.html-Datei in einem Plugin ablegen?
Wir fügen ständig neues HTML in Themes und dem Customizer ein. Ich möchte dies in mein Plugin (anstatt in ein Theme) aufnehmen, damit ich eine einzige Codebasis habe.
Wo fügt man in einem Plugin HTML ein, das man bei einem Theme im Ordner „common
Für CSS entspricht das in einem Plugin [plugin]/assets/stylesheets/common/[file.scss]
Entsprechend diesem Format habe ich versucht, eine Datei unter [plugin]/assets/views/layouts/common/header.html hinzuzufügen, aber das hat nicht funktioniert (auch nicht mit views/header.html).
Ich kann die Vorlagen ändern, aber für einfache HTML-Änderungen, wie wir sie bei Themes vornehmen, wäre eine einfache HTML-Änderung in header.html (oder dem Äquivalent) schön. Zum Beispiel: Wo würden Sie Folgendes in einem Plugin platzieren (das bereits komplexe serverseitige Aufgaben übernimmt, daher die Notwendigkeit eines Plugins):
Ich finde die Unterschiede, wie man solche Dinge in einem Plugin im Vergleich zu einem Theme umsetzt, ebenfalls verwirrend. Man könnte es einfach auf sich beruhen lassen und dafür eine Theme-Komponente verwenden, aber es klingt so, als suchst du nach der besten Lösung und nicht nach der schnellsten. (Obwohl es einige Vorteile hat, diese Dinge für eine separate Wartung auszulagern.)
Ich denke, du musst eine Zeile in der plugin.rb hinzufügen, die die gewünschte Datei einbindet. Was ich tue, ist, etwas aus dem Discourse-GitHub-Repository namens all-the-plugins zu klonen und dort nach einem Beispiel zu suchen.
Cool. Danke. Ja, ich habe mir schon überlegt, dass es derzeit vielleicht keine einfache Möglichkeit gibt, HTML-Änderungen in einem Plugin vorzunehmen, wie man es in einem Theme tun würde. Um HTML-Änderungen vorzunehmen, muss man in die Templates/Connector in einem Plugin gehen (nicht allzu kompliziert, aber anders als die einfachere Denkweise bei Themes mit common/header.html).
Ich werde mir plugin.rb ansehen und prüfen, ob das derzeit einfacher ist als der normale Weg über Templates/Komponenten.
Es ist nicht dort, wo ich es gesagt habe, aber du fügst es mit dem richtigen Namen in den Assets-Baum ein. Es ist unmöglich zu verstehen, bis man es verstanden hat, und dann ist es völlig offensichtlich.
Edit: Hey @JQ331. Mir ist gerade aufgefallen, dass ich das, was du willst, gestern in einem Plugin umgesetzt habe, aber ich bin so schlecht darin, dass mir nicht klar war, dass genau das dein Ziel ist. Siehe GitHub - literatecomputing/discourse-max-topics-per-month · GitHub. Es ist sehr einfach, sodass es kaum etwas gibt, das im Weg steht, wenn du das Beispiel suchst.