Hallo! Dies ist in erster Linie eine Frage an @angus, aber wenn jemand Vorschläge hat, wäre ich sehr dankbar!
Ich hatte an einer Variation des Topic Custom Field Plugins von @angus gearbeitet und es in meiner lokal gehosteten Instanz von Discourse (Version 3.4.0.beta3-dev) wie gewünscht zum Laufen gebracht. Als ich es dann auf unserer bereitgestellten Instanz von Discourse (ebenfalls Version 3.4.0.beta3-dev) installierte, geschah etwas Seltsames. Wenn ein Benutzer einen neuen Beitrag schreibt und eine Eingabe in das benutzerdefinierte Feld macht, wird diese nicht gespeichert oder gerendert, wenn der Benutzer den Beitrag erstellt. ABER wenn der Benutzer den Beitrag bearbeitet und dann die Eingabe hinzufügt, wird sie gespeichert und gerendert. Das deutet darauf hin, dass es irgendwo in den Connectors (vermutlich im Composer-Connector) fehlschlägt, aber ich kann nicht herausfinden, warum, da es in meiner lokalen Instanz perfekt funktioniert. Ich habe einige Regex, die Eingaben filtern, vielleicht könnte das die Ursache sein? Jeder Vorschlag wird sehr geschätzt, danke!
Es ist schwierig, dies abstrakt zu debuggen, daher gebe ich Ihnen stattdessen einige Ratschläge. Der Schlüssel zur Lösung jedes Problems dieser Art ist Konzentration und Ausschlussverfahren. Beginnen Sie damit, herauszufinden, warum Sie das Problem in der Produktion reproduzieren können, aber nicht in der Entwicklung.
Sind die Plugins und Themes in Produktion und Entwicklung exakt gleich?
Verwenden Sie die gleiche Art von Benutzer (Admin, Mod etc.)?
Führen Sie die Aktionen in der gleichen Art von Thema durch?
Führen Sie die Aktionen mit der gleichen Geschwindigkeit durch?
Beginnen Sie damit, alles zu tun, was Sie können, um zu versuchen, das Problem in der Entwicklung zu reproduzieren, wenn es tatsächlich ein Problem gibt. Konzentrieren Sie sich darauf, bis Sie Ergebnisse erzielen oder herausfinden, warum es in der Produktion anders ist.
Ein Teil des Grundes, warum das Topic Custom Fields Plugin nicht für den Produktionseinsatz gedacht ist, ist, dass es keine Tests hat. Ich weiß, dass Ihnen das nicht gefallen wird, aber Sie sollten einige Akzeptanztests für das Verhalten des Komponisten schreiben. Das gibt Ihnen eine definitive Antwort darauf, ob es in bestimmten Szenarien funktioniert oder nicht.
Ich bin mir nicht sicher, ob das helfen würde, aber es scheint, dass das Problem darin bestehen könnte, dass das benutzerdefinierte Feld beim Erstellen eines Beitrags nicht richtig eingerichtet wird.
Stellen Sie sicher, dass Sie dem Feld einen Standardwert zuweisen, wenn der Composer geöffnet wird.
Sie könnten auch versuchen, Ihren Regex-Filter vorübergehend zu deaktivieren, um zu prüfen, ob er Validierungsprobleme verursacht. Überprüfen Sie abschließend noch einmal, ob das benutzerdefinierte Feld tatsächlich in den Daten enthalten ist, die während der ersten Speicherung gesendet werden.