初心者ですが、問題を解決することに興味があるので、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が読み込まれたときに常に拡張ビューが表示されるはずです。
また、変更が正しく読み込まれるように、ブラウザのキャッシュをクリアするか、ハードリロードすることを忘れないでください。
自分で試してテストできれば素晴らしいのですが、前述の通り、サイトの管理者ではなくモデレーターにすぎないので、これには数日または数週間かかります。