「public=true」 so poll default を上書き

私も同様の問題に苦しんでいるサイトがどれくらいあるのか疑問に思っていました。私も、標準で公開にしたいと思っています。

UIも改善できると思います。

  • 複数投票可能な投票から単一投票可能な投票を作成できるため、私の意見では単一投票は不要です。
  • 常に拡張UIを表示します。
  • 標準でPublic=Trueのオプション、または実装が容易であればAnonymous=Falseを希望します。
  • Publicのチェックボックスを一番上に移動するか、Publicと匿名投票のUIを別々にするべきです。簡単に見落とされてしまいます。

テーマコンポーネントの変更には詳しくありませんが、もし誰かが簡単な回避策を作成したのであれば、実装方法とDiscourseを更新する際に確認すべきことの説明とともに共有していただけると素晴らしいです。

「いいね!」 2

初心者ですが、問題を解決することに興味があるので、ChatGPTに尋ねました。

以下がその回答です。

あなたが見つけたスクリプトは良い出発点です。コントローラーの onShow() 関数が呼び出されたときに publicPoll プロパティを true に設定するように poll-ui-builder コントローラーを変更しています。これは、テーマコンポーネントとして追加されることを意図したものです。

ただし、コードの実行順序によって、コードが機能しない可能性があります。元の onShow() メソッドは publicPollfalse に設定し、その後、変更によって publicPolltrue に設定されます。

正しい方法としては、まず親の onShow メソッドを呼び出し、その後 publicPolltrue に設定することです。

<script type="text/discourse-plugin" version="0.8">
api.modifyClass("controller:poll-ui-builder", {
  onShow() {
    this._super(...arguments);
    this.set('publicPoll', true);
  }
});
</script>

このスクリプトをテーマに追加するには、次の手順に従います。

  1. Discourse管理ダッシュボードに移動します。
  2. 「カスタマイズ」セクションで、「テーマ」をクリックします。
  3. 変更したいテーマを選択します。
  4. テーマ編集画面で、「CSS/HTMLの編集」をクリックします。
  5. 左側のサイドバーで、「</> コモン」をクリックします。
  6. 上記のスクリプトを「</> コモン」セクションに貼り付けます。
  7. 「保存」ボタンをクリックします。

これで、変更がテーマに適用されます。テーマの変更は、その特定のテーマを使用しているユーザーにのみ適用されることに注意してください。複数のテーマがある場合は、各テーマに変更を追加する必要があります。

また、変更が正しく読み込まれるように、ブラウザのキャッシュをクリアするか、ハードリロードすることを忘れないでください。

フォーラムの管理者にこれらの手順に従って試してみますが、時間がかかります。もし他の誰かが先に試してフィードバックをいただけると、非常に嬉しいです。

もう一つ、UIの動作を変更したいと考えています。シンプルな画面をスキップしたいので、再度ChatGPTに尋ねました。

現在のコードでは、拡張ビューは showAdvanced プロパティによって制御されています。これが true に設定されている場合、拡張ビューが表示されます。

拡張ビューを常に表示するには、poll-ui-builder コントローラーの onShow() メソッドを変更して showAdvancedtrue に設定します。この変更は、以前に作成したテーマコンポーネントに追加できます。以下が更新されたスクリプトです。

<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が読み込まれたときに常に拡張ビューが表示されるはずです。

また、変更が正しく読み込まれるように、ブラウザのキャッシュをクリアするか、ハードリロードすることを忘れないでください。

自分で試してテストできれば素晴らしいのですが、前述の通り、サイトの管理者ではなくモデレーターにすぎないので、これには数日または数週間かかります。

「いいね!」 2

解決できてよかったですね。:+1:

ちなみに、複数のプロパティを変更したい場合は、この構文を使用できます。

    this.setProperties({
        'publicPoll': true,
        'showAdvanced': true
    });
「いいね!」 2

実際には私ではなく、このリンクから提供されたコードをChatGPTに与えただけです。

そして、@JammyDodgerさんの最初の試みを与えて、2つの要件を解決できるか尋ねました :smiley:

うまくいくといいですね。Discourseについて学んだもう一つのクールなことです。

「いいね!」 2

テストしたところ、動作しました! :partying_face:
それは素晴らしいです。 :slight_smile: 本当にありがとうございます。 :pray:

「いいね!」 1

そして、テーマコンポーネントとしての表示は以下の通りです。

「いいね!」 4

もう私たちのインスタンスでは動作しません。
コードスニペットがまだ含まれているか確認できませんでした。なぜなら、私にはその権限がないからです。

@JammyDodger@nathank 、あなたのフォーラムではまだ動作しますか?

「いいね!」 1

テストサイトでも動作していないようです。最近の変更に対応するために更新が必要かもしれません。

これは別の Dev トピックに分けます :+1:

「いいね!」 2

呼び出していたモーダルが、以下に従ってリファクタリングされたことがわかりました。

しかし、API経由でどのようにやり取りすればよいかわかりません。新しいモーダルのファイルはここにあります。

https://github.com/discourse/discourse/blob/main/plugins/poll/assets/javascripts/discourse/components/modal/poll-ui-builder.js

ドキュメントには、これをどのように行うかについての説明がないようです。どなたか助けていただけますか?

「いいね!」 1

朗報です。:slight_smile: これに対応できるものがあるかもしれません…

「いいね!」 6