Ich bin neu hier, aber daran interessiert, das Problem zu lösen, also habe ich ChatGPT gefragt:
Hier ist die Antwort:
Das von Ihnen gefundene Skript ist ein guter Anfang. Es modifiziert den poll-ui-builder-Controller, um die Eigenschaft publicPoll auf true zu setzen, wenn die onShow()-Funktion des Controllers aufgerufen wird. Dies soll tatsächlich als Theme Component hinzugefügt werden.
Der Code funktioniert jedoch möglicherweise aufgrund der Ausführungsreihenfolge nicht. Die ursprüngliche onShow()-Methode setzt publicPoll auf false und die Modifikation setzt publicPoll anschließend auf true.
Ein korrekter Weg wäre, zuerst die onShow-Methode der übergeordneten Klasse aufzurufen und dann publicPoll auf true zu setzen:
<script type="text/discourse-plugin" version="0.8">
api.modifyClass("controller:poll-ui-builder", {
onShow() {
this._super(...arguments);
this.set('publicPoll', true);
}
});
</script>
Sie können dieses Skript zu Ihrem Theme hinzufügen, indem Sie die folgenden Schritte ausführen:
- Gehen Sie zum Discourse Admin-Dashboard.
- Klicken Sie im Abschnitt “Anpassen” auf “Themes”.
- Wählen Sie das Theme aus, das Sie ändern möchten.
- Klicken Sie auf dem Bildschirm zur Theme-Bearbeitung auf “CSS/HTML bearbeiten”.
- Klicken Sie in der linken Seitenleiste auf “</> Common”.
- Fügen Sie das obige Skript in den Abschnitt “</> Common” ein.
- Klicken Sie auf die Schaltfläche “Speichern”.
Dies wendet die Änderung auf Ihr Theme an. Bitte denken Sie daran, dass Theme-Änderungen nur für Benutzer angewendet werden, die dieses spezielle Theme verwenden. Wenn Sie mehrere Themes haben, müssen Sie diese Modifikation zu jedem hinzufügen.
Denken Sie auch daran, Ihren Browser-Cache zu leeren oder einen Hard-Reload durchzuführen, um sicherzustellen, dass die Änderungen korrekt geladen werden.
Ich werde versuchen, diese Schritte mit dem Administrator unseres Forums zu befolgen, aber das dauert eine Weile. Wenn jemand anderes hier zuerst versuchen möchte, bitte und Feedback geben, ich wäre sehr glücklich.
Eine andere Sache, die ich gerne ändern würde, ist das Verhalten der Benutzeroberfläche. Ich möchte den einfachen Bildschirm überspringen, also habe ich ChatGPT erneut gefragt:
In Ihrem aktuellen Code wird die erweiterte Ansicht durch die Eigenschaft showAdvanced gesteuert. Wenn diese auf true gesetzt ist, wird die erweiterte Ansicht angezeigt.
Um immer die erweiterte Ansicht anzuzeigen, können Sie die Methode onShow() im Controller poll-ui-builder modifizieren, um showAdvanced auf true zu setzen. Sie können diese Modifikation zur zuvor erstellten Theme-Komponente hinzufügen. Hier ist das aktualisierte Skript:
<script type="text/discourse-plugin" version="0.8">
api.modifyClass("controller:poll-ui-builder", {
onShow() {
this._super(...arguments);
this.set('publicPoll', true);
this.set('showAdvanced', true);
}
});
</script>
Denken Sie daran, die zuvor beschriebenen Schritte auszuführen, um dieses Skript zu Ihrem Theme hinzuzufügen. Sobald das Skript gespeichert ist, sollte die erweiterte Ansicht immer angezeigt werden, wenn die Umfrage-Benutzeroberfläche geladen wird.
Denken Sie auch daran, Ihren Browser-Cache zu leeren oder einen Hard-Reload durchzuführen, um sicherzustellen, dass die Änderungen korrekt geladen werden.
Ich würde gerne versuchen und selbst testen, aber wie bereits erwähnt, bin ich nur ein Moderator, nicht der Administrator unserer Website, daher wird dies einige Tage oder Wochen dauern.