最初の投稿の後にGlimmerコンポーネントを挿入してください

ここでは少し楽観的すぎたかもしれません。申し訳ありません、@pfaffman!私が作成したPRは、アウトレットが使用されていなくても、すべての投稿の間に新しいラッパー <div> を導入してしまいます。これは実際には望ましいことではありません。

ラッパーを回避する方法はあるかもしれませんが、すぐにできる簡単なものはありません。

そのため、現時点での最善の解決策は、OPで参照した広告プラグインの実装をコピーすることだと思います。

基本的に:

  1. コンポーネント(Glimmerでもクラシックでもどちらでも構いません)を作成し、必要なものをレンダリングします。

  2. registerWidgetShim を使用して、そのコンポーネントをウィジェットとして利用可能にします。広告プラグインの例では、「after-post-ad」という名前のウィジェットを作成し、PostBottomAd コンポーネントをレンダリングしています。ウィジェット属性(@data)をすべて、コンポーネントの @model 引数に渡しています。

  3. api.decorateWidget を使用して、post:after の位置に新しいウィジェットシムをレンダリングします。あなたの場合は、最初の投稿にのみ表示したいので、次のようなことができます。

    api.decorateWidget("post:after", (helper) => {
      if (helper.widget.model.post_number === 1) {
        return helper.attach("my-widget-shim");
      }
    });
    

トピックページを最終的にGlimmer化する際には、ウィジェットシム/デコレーションを削除し、プラグインアウトレットに置き換える必要があります。これは比較的簡単でしょう。コンポーネント内のすべての表示ロジックは、プラグインアウトレットで再利用可能になります。

どのように進んだか教えてください!フォローアップの質問があれば喜んでお手伝いします。多くの要素が絡み合っていることは承知しています。

「いいね!」 3