初心者ですが、問題を解決することに興味があるので、ChatGPTに尋ねました。
以下がその回答です。
あなたが見つけたスクリプトは良い出発点です。コントローラーの onShow() 関数が呼び出されたときに publicPoll プロパティを true に設定するように poll-ui-builder コントローラーを変更しています。これは、テーマコンポーネントとして追加されることを意図したものです。
ただし、コードの実行順序によって、コードが機能しない可能性があります。元の onShow() メソッドは publicPoll を false に設定し、その後、変更によって publicPoll が true に設定されます。
正しい方法としては、まず親の onShow メソッドを呼び出し、その後 publicPoll を true に設定することです。
<script type="text/discourse-plugin" version="0.8">
api.modifyClass("controller:poll-ui-builder", {
onShow() {
this._super(...arguments);
this.set('publicPoll', true);
}
});
</script>
このスクリプトをテーマに追加するには、次の手順に従います。
- Discourse管理ダッシュボードに移動します。
- 「カスタマイズ」セクションで、「テーマ」をクリックします。
- 変更したいテーマを選択します。
- テーマ編集画面で、「CSS/HTMLの編集」をクリックします。
- 左側のサイドバーで、「</> コモン」をクリックします。
- 上記のスクリプトを「</> コモン」セクションに貼り付けます。
- 「保存」ボタンをクリックします。
これで、変更がテーマに適用されます。テーマの変更は、その特定のテーマを使用しているユーザーにのみ適用されることに注意してください。複数のテーマがある場合は、各テーマに変更を追加する必要があります。
また、変更が正しく読み込まれるように、ブラウザのキャッシュをクリアするか、ハードリロードすることを忘れないでください。
フォーラムの管理者にこれらの手順に従って試してみますが、時間がかかります。もし他の誰かが先に試してフィードバックをいただけると、非常に嬉しいです。
もう一つ、UIの動作を変更したいと考えています。シンプルな画面をスキップしたいので、再度ChatGPTに尋ねました。
現在のコードでは、拡張ビューは showAdvanced プロパティによって制御されています。これが true に設定されている場合、拡張ビューが表示されます。
拡張ビューを常に表示するには、poll-ui-builder コントローラーの onShow() メソッドを変更して showAdvanced を true に設定します。この変更は、以前に作成したテーマコンポーネントに追加できます。以下が更新されたスクリプトです。
<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>
このスクリプトをテーマに追加するには、以前に説明した手順に従ってください。スクリプトを保存すると、投票UIが読み込まれたときに常に拡張ビューが表示されるはずです。
また、変更が正しく読み込まれるように、ブラウザのキャッシュをクリアするか、ハードリロードすることを忘れないでください。
自分で試してテストできれば素晴らしいのですが、前述の通り、サイトの管理者ではなくモデレーターにすぎないので、これには数日または数週間かかります。