トピックに複数のカスタムフィールドを作成する

こんにちは。

トピックのカスタムフィールドを複数作成した方はいらっしゃいますか? このプラグインを使用してカスタムフィールドを1つ作成することには成功しました: GitHub - pavilionedu/discourse-topic-custom-fields: Discourse plugin showing how to add custom fields to Discourse topics

しかし、複数のカスタムフィールドの作成に苦労しています。動作するコード例をお持ちで、販売または共有していただける方はいらっしゃいますか? 必要に応じて自分で修正できますが、開始するための少しの助けが必要です。必要な2つの新しいフィールドは、price(文字列)とurl(文字列)です。トピックに画像アップロードフィールドを追加できれば素晴らしいのですが、そのようなものはまだ見たことがありません。

よろしくお願いします!

こんにちは。
喜んでお手伝いさせていただきます。最近、トピックカスタムフィールド(https://meta.discourse.org/t/discourse-chain-topics-plugin/233088)を利用したプラグインを作成しました。

私のプラグインでは、各トピックに整数型のフィールドを2つ追加しました。同様に、好きなだけフィールドを追加できます。最終的に、トピック/ユーザーカスタムフィールドはJSONオブジェクトになり、追加する各フィールドはキー/値のペアとしてJSONオブジェクトに格納されます。キーはフィールド名、値はその値です。

上記で提示された例(私もこれで助かりました)は、管理パネルで追加フィールドを作成し、そのタイプと名前を選択するように構築されています。ただし、追加フィールドを管理パネルに関連付ける必要はありません。同様に、好きなだけフィールドを追加できます(パフォーマンスにどのように影響するかは不明です)。

最後に、サポートが必要な場合はいつでもお気軽にご連絡ください。連絡先はhttps://ghassan.blogでも確認できます
幸運を祈っています。

「いいね!」 3

こんにちは、私も同じ問題を抱えていました。複数のカスタムフィールドでこれを達成する方法を見つけました!
プラグイン.rb のセットアップに加えて、各フィールドに個別のファイル(js 初期化子と .hbs および .hbr テンプレート)も必要になります!

discourse-topic-custom-fields プラグインには、次のフォルダがあります。

plugins/discourse-topic-custom-fields/assets/javascripts/discourse/initializers

このフォルダには、topic-custom-field-initializer.js.es6 というファイルがあります。

単一のフィールドの場合はこのファイルを編集するだけで済みますが、複数のフィールドの場合は、次のような他のファイルが必要です。

topic-custom-field-url-initializer.js.es6 および topic-custom-field-price-initializer.js.es6

各ファイル内には、メソッド registerConnectorClass を呼び出す api という変数を持つ 3 行があります。2 番目のパラメーターを変更し、接尾辞を追加して、3 行すべてで各フィールドクラスに固有の名前を付ける必要があります。

各ファイルのエクスポート名を変更することも忘れないでください(「exports default {…」の直後)。

また、hbs および hbr ファイルについても、各フィールドに個別のファイルを作成する必要があります。ファイルをコピーして貼り付け、各ファイル名に接尾辞を追加するだけです。たとえば次のようになります。

「いいね!」 1