Hallo zusammen, ich hoffe, ich poste das hier richtig. Ich versuche, ein Plugin für meine neue Discourse-Website zu entwickeln.
Ich habe das Beispiel-Repo hier geforkt, ein Plugin-Outlet zum Laufen gebracht und bin dann gegen eine Wand gelaufen und fühlte mich ziemlich verloren und verwirrt. Ich fange gerade erst an, MVC-PHP-Frameworks wie Laravel zu verstehen, aber ich bin SEHR neu in JS-Frameworks. Ich habe noch nie Ruby, Rails oder Ember angefasst.
Das Problem
Meine Website ist für eine HOA-Community. Was ich tun möchte, ist, ein paar zusätzliche Datenfelder pro Benutzer zu sammeln und zu speichern:
legal_name(string)is_owner(bool)is_resident(bool)building(string) - repräsentiert die Gebäudenummerunit(string) - repräsentiert die Einheitsnummer- … und ein paar andere interne Variablen, wie z. B. ob ein Moderator sie bestätigt hat.
Ich möchte diese Felder für die Benutzerregistrierung erforderlich machen. Das bedeutet, das Formular zur Benutzerregistrierung zu ändern. Ich habe mich in das create-account-after-password-Outlet eingehakt und einige zusätzliche Felder anzeigen lassen, aber offensichtlich macht das die Funktionalität nicht.
Ich denke, ich muss den Controller in app/assets/javascripts/discourse/app/controllers/create-account.js erweitern, nicht nur, um die neuen Formularwerte bei der Übermittlung zu erfassen, sondern sogar für etwas so (scheinbar) Grundlegendes wie die Verwendung des Seitennamens this.siteSettings.title in einem client.en.yml-Übersetzungsfeld! (Im Moment sind die zusätzlichen Felder in meinem Registrierungsformular mit "Was ist Ihre Verbindung zu [fehlender %{title}-Wert]?" überschrieben. Was offensichtlich nicht gut ist.)
Je mehr ich versuchte, Antworten zu finden, desto mehr Fragen hatte ich und desto größer wurden sie. Verschiedene Anleitungen, denen ich zu folgen versuchte, waren offenbar für verschiedene Versionen von Discourse geschrieben. Das Beispiel-Plugin-Repo enthält Dinge, die ich nicht verstehe. Was ist der Unterschied zwischen einer Client-Route und einer Server-Route? Was ist der Unterschied zwischen einem Plugin und einem Modul? Ich bin so verloren.
Wenn mir jemand helfen könnte, wäre ich sehr dankbar. Vielen Dank im Voraus.
