ich versuche, das Standardverhalten des Buttons „Neues Thema“ in Discourse 2.6.1 anzupassen. Ich habe ein benutzerdefiniertes Plugin, das die standardmäßigen Ember-Aktionen so modifiziert, dass meine Funktion ausgeführt wird. Das hat in einer früheren Version von Discourse (1.8.0) einwandfrei funktioniert, aber ich kann nicht herausfinden, wie ich im neuen Version dasselbe Ergebnis erzielen kann. Der Code sieht wie folgt aus:
Der erste Controller definiert die Aktionen der Hauptseite (die in der neuen Version nicht funktionieren), und der zweite Controller definiert die Aktionen, die ausgeführt werden, wenn eine Suche in der App durchgeführt wird (und das funktioniert auch in der neuen Version).
Ich habe gesehen, dass die Buttons „Neues Thema“ mit den Aktionen „createTopic“ und „clickCreateTopicButton“ erstellt werden, aber keine davon funktioniert auf der Hauptseite. Muss ich eine andere Aktion modifizieren oder müssen wir einen anderen Controller verwenden?
vielen Dank für den Vorschlag. Wenn ich mich nicht irre, ermöglicht dieses Plugin jedoch nur das Hinzufügen eines benutzerdefinierten Felds zu einem Thema. Was ich tun möchte, ist, meinen eigenen JavaScript-Code auszuführen, wenn auf die Schaltfläche „Neues Thema“ geklickt wird. Ich glaube, mein Problem hängt im Wesentlichen mit dem zu verwendenden Discourse-Controller, dem Namen der ausgeführten Funktion und der Art und Weise zusammen, wie diese Funktion überschrieben werden kann. Könntest du mir hier vielleicht einen Hinweis geben?
Nun, verdammt. Entschuldigung. Ich dachte, es enthielt etwas JavaScript-Code (z. B. in discourse-topic-custom-fields/assets/javascripts/discourse), der vielleicht hilfreich sein könnte, um zu sehen, wie man das Ganze verkabelt. Ich bin immer noch nicht sehr gut im Frontend-Bereich, also fürchte ich, das war meine beste kostenlose Antwort.
Danke für deine Hilfe, @pfaffman. Ich habe endlich den Controller und die Action gefunden, die ich ändern musste, und das Plugin funktioniert wieder in Discourse 2.6.x.
Hinweis: Dies ist der Code des Plugins innerhalb von yourPlugin/assets/javascripts/discourse/initializers
Sobald ich auf die Schaltfläche „Neues Thema“ klicke, wird mein JavaScript-Code ausgeführt und die Benutzer erhalten das Menü, das ich für das Forum erstellt habe.
Toll! Ich freue mich sehr, dass du es bekommen hast! Wo die Dinge genau hin und wie sie benannt werden, ist für mich immer noch ein Rätsel, aber ich werde besser.