POSTリクエストをするフォーム付きプラグインの例

こんにちは!

現在、Error "Unable to configure link to 'Auto Send Messages'. Ensure ad-blockers are disabled and try reloading the page." で行っているプラグイン開発のブロックを解除しようと取り組んでいます。

そこで、フォーム送信タイプの操作が組み込まれたプラグインの動作例があれば、非常に助かります。私たちのプラグインは、大まかに言うと次の2つの要素で構成されています。

  • いくつかの設定項目
  • ユーザーがテキストを入力し、「送信」して処理するフォーム

これらの機能を持つプラグインをご存知の方がいらっしゃいましたら、どのように機能するかを確認するために、リンクを教えていただけると大変助かります。

よろしくお願いします!

何をしているのか、もう少し詳しく教えていただけますか?フォームで何を変更していますか?これはテーマコンポーネントにできますか?送信しているのは既存のエンドポイントですか、それとも追加するエンドポイントですか?

Discourse toolkit to render forms を参照してください。

次に、GitHub - discourse/all-the-plugins を参照して「<Form」を検索できますが、Code search results · GitHub も参照できます。これは Discourse toolkit to render forms - #20 by david で説明されているように(ただし、これらはすべてコアにあり、プラグインではありません)、参照できます。

discourse-data-explorer/assets/javascripts/discourse/components/param-input-form.gjs at main · discourse/discourse-data-explorer · GitHub も参照してください。

「いいね!」 2

FormKit は比較的新しいです。

Locations プラグインもまだ FormKit を使用するように更新していません。

(しかし、新規に始めるなら間違いなくこれを使うべきです :+1:

「いいね!」 1

それは非常にその通りです。新しいコードを書く人にはまだこれをお勧めします。

私はこれを使って新しい何かに取り組んでいます。(そして、そのことについてたくさん文句を言っているのが見えます!)

「いいね!」 2

@pfaffman ユーザーに4つの項目を求めるシンプルなフォームを作成したいと考えています。

  1. 送信者
  2. 受信者
  3. 件名
  4. 本文

ユーザーがこれらのフィールドに入力し、「送信」ボタンをクリックすると、メールを送信するエンドポイントがトリガーされます。

具体的には、フォームには4つの要素が含まれ、「送信」ボタンがクリックされると、メッセージを送信するため​​のエンドポイントが呼び出されます。

それがまさに求めているものかどうかわかりませんが、主な目標は、管理者ユーザーがテキスト(メールの件名と本文)を入力し、ボタンをクリックしてDiscourseのユーザーに送信できるようにすることです。

将来的には、ユーザーが1人の送信者から複数の受信者に複数のメッセージをトリガーできるように拡張したいと考えています。メッセージの総数や各メッセージ間の遅延などのパラメータを操作して、送信されるメッセージの数と間隔を制御したいと考えています。

もう一度一歩戻って、実際に解決しようとしている問題を説明していただけますか?

直接メールを送信したい(つまり、メッセージはDiscourse内に存在しない)ということですか、それともユーザーに送信されるPM(ほとんどの場合、メール通知が生成されます)を送信したいということですか?

PMの送信者を変えたいということですか?それが、既存のPMインターフェースに欠けている唯一のことのように思えますが、それで合っていますか?

「いいね!」 1

確認ありがとうございます! もう少し文脈を説明すると、私たちは大量のユーザーベースを抱えており、しばらくアクティブでなかったユーザーを再びエンゲージさせたいと考えています。 目標は、特定の送信者から多くのユーザーにプライベートメッセージ(PM)を送信し、いくつかのパラメータをコントロールできるようにすることです:

  1. 送信者:管理者ユーザがフォームに直接送信者のユーザー名を指定します。
  2. 件名と本文:管理者はPMの件名と本文の両方をカスタマイズできます。
  3. 送信数のコントロール:一度に送信するメッセージの数を制御し、ユーザーをスパムと誤認させないようにします。
  4. タイミング:重要なのは、メッセージの送信速度を制御できるようにし、メールドメインを圧迫したりスパムにフラグ付けされたりしないように、各メッセージ(および対応するメール)の間に遅延を設定して間隔を空けることです。

最終的には、ユーザーにプライベートメッセージを開かせる(これによりメール通知も発生します)ことを目指し、アプリに戻ってきてもらうことを狙います。

現在、我々はこのタスクを完全に動作しているシンプルなRubyスクリプトで行っています。現状では、SSHを経由してVMにアクセスし、手動でトリガーしていますが、これは少し面倒です。これを、管理者がUIを通じて簡単にトリガーできるプラグインに改良したいと考えています。設定(送信者、件名、本文、送信数、間隔など)を管理者インターフェースから直接入力できるようにしたいです。

この目的は、管理者がこれらの設定を簡単に入力し、プロセスをトリガーし、送信中のメッセージの進行状況を監視できるプラグインインターフェースを実現することです。

「いいね!」 1

それはたくさんのパーツですね。

おそらく、ユーザーをグループにまとめて、そのグループ内の全員に送信する計画を立てると思います。メッセージが送信されると、user_custom_field に値を設定し、既存のトピックをテキストと送信者として利用します。ジョブは定期的に実行され、希望するだけのメッセージを送信します。グループやカスタムフィールドの値は設定に入れておきます。

こうすれば、インターフェースや新しいルートを作成する必要はなく、既存の設定を使うだけで済みます。また、データエクスプローラーを使って何が起こったかを見ることもできるので、両方のインターフェースを開発する必要もありません。

しかし、UXにユーザーが入力するフィールドを作りたい場合は、私が既に言及した Formの仕組みをチェックすると良いでしょう。

「いいね!」 1