検索結果の変更

検索結果のスタイルを調整したいと考えています(右上にある虫眼鏡アイコンのドロップダウン)。これは、テンプレートを使用するのではなく、動的にコンポーネントを生成しているようです(app/assets/javascripts/discourse/app/lib/search.js)。

      api.modifyClass("component:search-result-post", {
        didInsertElement() {
          this._super(...arguments);

        },
      });

またはそれに類するものを実行しようとしましたが、うまくいきませんでした。

生成されたHTMLをトリガー/イベントで取得し、変更するにはどうすればよいでしょうか?

「いいね!」 2

リチャード様

どのような変更をご希望か、詳しく教えていただけますでしょうか?

まず、以下を調整する必要があるかと思います。

api.reopenWidget(`search-result-post`, {
    html(attrs) {
        //
    }
})

これは post 用ですが、他にも tagcategorygroupusertopic があります。

「いいね!」 4

ご協力ありがとうございます!!!

「いいね!」 2

更新:そのウィジェットのHTML生成は非常に複雑で、多くの外部依存関係がありました。また、そのコード全体をプラグインにコピーしたくなかったので、次のようなことを行いました。

      api.reopenWidget(`search-result-topic`, {
        html(attrs) {
          const html = this._super(attrs);
          // 必要に応じてHTMLを変更します
          return html;
        }
      });

すでに生成されたHTMLを変更するのは、おそらく最もエレガントな方法ではありませんが、コアからプラグインに大量のコードをコピーする必要がなくなったため、将来のコアアップデートに対してプラグインがより堅牢になりました。

「いいね!」 1

はい、私も自分の側で試したときにそれに気づきました。ここにはあまり選択肢がないと思います。

「いいね!」 1

このトピックは、最後の返信から30日後に自動的にクローズされました。新しい返信は許可されていません。