ユーザーカード/プロフィールを変更するデータテンプレートを使用するテーマの複数のコピーをインストールすると、両方が破損します

Custom Profile Link ComponentFirepup6500/discourse-custom-profile-link のフォークをセットアップしていたのですが、サイトリンクごとに2つ必要でした。しかし、現在、両方のサイトでユーザー名が設定されているユーザーしか表示されません。もう一方のコピーが機能するかどうかにかかわらず、両方が表示されるようにするにはどうすればよいですか?

正直、データテンプレートではないかもしれませんが、しばらく見ていてそう推測しました。

よく理解できていないのですが、もしかしたら、2つのフィールドを持つのではなく、同じhandlebarsテンプレートに2回書き込んでいるからでしょうか?

「いいね!」 1

私もそれが原因ではないかと疑っていましたが、その回避方法がわかりません。

1つのテンプレートを使用することはできませんか?設定できるはずですが、意図を誤解している可能性があります。リンクフィールドは機能しましたか?もし機能したのであれば、素晴らしいです:slight_smile:

「いいね!」 2

テンプレートの1つはユーザーカード用で、もう1つはユーザープロファイル用なので、そうは思えません。

以下のいずれかの条件が満たされた場合に機能します。

  1. コピーが2つ、フィールドが2つあり、表示しているユーザーの両方の名前が入力されている場合
  2. コピーが1つ、フィールドが1つあり、表示しているユーザーの名前が入力されている場合
「いいね!」 1

ああ、なるほど、誤解していました。ユーザカードに2つの異なるリンクを貼っているのかと思っていました。これで分かりました。はい、2つのテンプレートですね。

「いいね!」 2

ある意味ではそうですが、テーマコンポーネントのコピーごとに1つずつ使用しているため、それが問題の根本原因であると疑っています。ただし、間違っている可能性もあります。

コンテキストなしでそのコードチャンクをLolaボットに入力したところ、彼女からの返信は次のとおりでした。

テーマをフォークしてから、フォークしたオリジナルを含めているということですか? 変数へのすべての参照と、クラスを変更するために渡されたIDを変更する必要があります。

Discourseでは元のものが正常に機能しなくなったため、フォークを作成し、動作するまで改訂しました。現在、フォークを2つインストールしましたが、互いに競合しているようです。

それが言いたいことです。競合しないように名前を変更する必要があります。

おそらく、2つのコピーを持つのではなく、1つのテーマで両方のことを行わせたいでしょう。

具体的にはどうすればいいですか?考えたのは、TCのIDをハンドルバーに追加することでしたが、それがどうすればできるのかわかりません。

それは、このテーマコンポーネントの元のユースケースを壊すようなものではありませんか?

わかりませんが、すでに壊れていると思っていましたよ? :wink:

カスタムフィールドを使用してリンクを追加し、それが2つ追加されることを望むのであれば、カスタムフィールドへのリンクをいくつでも含めるように設定できるような書き方をするでしょう?

オリジナルのバグを修正するためにフォークしたので、私のものが壊れていないことを願っています。

それは可能かもしれませんが、その方法がわかりません。

「いいね!」 1

これを手直しし始めました。最初にぶつかった壁は、複数のIDを処理することです。コードのさらに上部で行ったようにforeachループを使用すると思いますが、Handlebarsでその方法がわかりません。

順調に進んでいるようですね。

私はいつもそれを覚えていられず、「handlebars for loop」でGoogle検索して例を見つけています。

1時間ほどこのコードをいじっていましたが、お手上げです。このコード:\n\n {{#each this.customProfileLink as |links|}}\n \u003ca href=\"{{link.[2]}}{{link.[0]}}\" target=\"_blank\"\u003e{{link.[1]}}\u003c/a\u003e\n \u003cp\u003e{{link}}--{{link.content}}\u003c/p\u003e\n {{/each}}\n\n動作するはずだと感じていますが、#eachについて見つけたものはすべて異なり、これは機能しません。何か洞察をお持ちの方はいらっしゃいますか?\n\nそして、それは私のせいでした。:facepalm: アイテムにはlinksを、プロセッサにはlinkを使用しました。そして、ユーザーカードしか確認せず、ユーザープロファイルは確認しませんでした(ユーザープロファイルはなぜか正しかった)。