omppatil
(Om Patil)
28. November 2023 um 12:34
1
Hallo!
Ich bin neu in der Entwicklung von Discourse-Plugins und würde mich über Hilfe beim Hinzufügen einer Umschalt-Schaltfläche zum Beitragsmenü und bei der Implementierung ihrer Aktion im Plugin freuen.
Lilly
(Lillian )
28. November 2023 um 12:41
2
Hallo @omppatil , vielleicht hilft dir dieser Beitrag in die richtige Richtung:
Wenn Sie einen Button zum Postmenü hinzufügen möchten, benötigen Sie etwas anderes, da Beiträge Widgets sind.
Sie müssten Ihrem Theme oder Plugin etwas Ähnliches hinzufügen:
api.addPostMenuButton("my-button", () => {
return {
action: "someAction",
icon: "someIcon",
className: "someClass",
title: "some title",
};
});
Die Plugin-API verfügt über eine Methode zum Hinzufügen neuer Buttons, was dies relativ einfach macht.
Diese Theme-Komponente nutzt diese Methode, um basier…
Wenn du neu in der Discourse-Plugin-Programmierung bist, hier sind noch ein paar Links:
Die Entwicklung eines Plugins für Discourse kann wirklich einfach sein, sobald man ein paar Eigenheiten kennt. Ziel dieses Beitrags ist es, ein Grundgerüst für ein Plugin zu erstellen und dich mit den Grundlagen vertraut zu machen.
Deine Entwicklungsumgebung
Stelle sicher, dass du eine Discourse-Entwicklungsumgebung auf deinem Computer zum Laufen gebracht hast. Ich empfehle dir, die entsprechende Einrichtungsanleitung zu befolgen und hierher zurückzukommen, wenn du fertig bist.
plugin.rb
…
Ich habe gerade erst angefangen, aber hier ist mein „Einstiegs-Programm" für dich:
Lesen:
diese
diese
Versuche, den Code der einfachsten, aber beliebtesten Plugins zu lesen und zu verstehen, was sie tun (das ist nicht immer einfach, besonders angesichts der Komplexität beim Umgang mit mehreren Dateien und der manchmal brutalen funktionalen Kürze von JavaScript, aber gib nicht auf)
Du musst lernen:
Viel JavaScript (schau dir nichts Geringeres als @mpjs „Fun Fun Function" hervorragende und l…
There are a few ‘how to start’ guides for working with Discourse already and a wealth of useful info on meta, but I thought it might help to give an insight to the mental processes of starting from little, if any, prior coding experience to building substantial Discourse plugins.
Discourse is written by experienced developers and has a large codebase. This can feel intimidating. This intimidation factor can be a significant barrier for novice developers. This is a kind of ‘psychological primer’…
Hallo!
Sie können addPostMenuButton verwenden
api.addPostMenuButton('coffee', () => {
return {
action: 'drinkCoffee',
icon: 'coffee',
className: 'hot-coffee',
title: 'coffee.title',
position: 'first' // kann `first`, `last` oder `second-last-hidden` sein
};
});
Dann können Sie Ihre Aktion auf diese Weise hinzufügen:
api.attachWidgetAction("post", "drinkCoffee", function () {
//
}
EDIT: Wurde von Lillian erwischt . Es wäre auch eine gute Idee, den Anleitungen zu folgen, die Lilly gepostet hat!
omppatil
(Om Patil)
28. November 2023 um 12:53
4
Daher, welche Dateistruktur sollte implementiert werden und wo sollte der obige Code platziert werden?
Lilly
(Lillian )
28. November 2023 um 13:26
5
Das Lesen der oben verlinkten Themen sollte Ihre verwandten Entwicklerfragen beantworten. Es ist möglich, dass Sie das, was Sie wollen, mit einer Theme-Komponente anstelle eines Plugins erreichen könnten. Daher würde ich diese auch zu Ihrer Leseliste hinzufügen:
Dies ist ein Crashkurs zu den Grundlagen von Discourse-Themes. Die Zielgruppe sind alle, die mit Discourse-Themes nicht vertraut sind. Wenn du bereits Discourse-Themes oder Theme-Komponenten verwendet hast, musst du diese Anleitung wahrscheinlich nicht lesen.
Was sind Themes und Theme-Komponenten?
Ein Theme oder eine Theme-Komponente ist eine Gruppe von Dateien, die zusammengefasst wurden, um Discourse optisch zu verändern oder neue Funktionen hinzuzufügen.
Beginnen wir mit Themes.
Themes
Im…
Discourse-Themen und Themenkomponenten können verwendet werden, um das Aussehen, die Haptik und die Funktionalität des Frontends von Discourse anzupassen. Dieser Abschnitt der Entwickler-Guides soll alle Referenzmaterialien bereitstellen, die Sie benötigen, um einfache Themes für eine einzelne Website bis hin zu komplexen Open-Source-Themenkomponenten zu entwickeln.
Diese Einführung soll eine Übersicht über alle Tools und APIs für die Theme-Entwicklung geben. Wenn Sie ein schrittweises Tutorial…
auch, aus dem ersten Link, den ich gepostet habe:
Joe:
Diese Theme-Komponente verwendet diese Methode, um basierend auf bestimmten Bedingungen eine neue Schaltfläche zu diesem Menü hinzuzufügen und eine neue Aktion zu definieren. Schauen Sie also hier nach.
https://github.com/discourse/raw-post-button