ドキュメントの Developing Discourse Themes & Theme Components に従っています。
ログを使用した例は正常に動作しますが、ウィジェットを次のように更新すると、
{{mount-widget widget="hamburger-categories"}}
何も表示されません… https://github.com/discourse/discourse/tree/main/app/assets/javascripts/discourse/app/widgets のリストを確認しましたが、一部のウィジェットは表示され、一部は表示されません。
最終的には、カスタムヘッダー内にカテゴリリストをボタンとして使用したいと考えています。このようになります…
新しいサイドバーは有効になりましたか?古いハンバーガーメニューは非表示になります。
サイトの設定が以下のようになっていることを確認してください。
「いいね!」 1
「ヘッダー ドロップダウン」に設定していましたが、「レガシー」に変更しても問題は同じでした
「いいね!」 1
ハンバーガーメニューは表示されますが、カテゴリのみが必要なのです。
{{mount-widget widget="hamburger-menu"}}
ウィジェット名に戸惑いました。どのプラグインのアウトレットを使用していますか?
ドキュメントと同じです
<script type="text/x-handlebars" data-template-name="/connectors/below-footer/fancy-footer">
<div class="footer">
<div class="wrap">
<p>ウィジェットをマウントする前に</p>
{{mount-widget widget="home-logo"}}
{{mount-widget widget="hamburger-categories"}}
<p>ウィジェットをマウントした後</p>
</div>
</div>
</script>
ガイドを見ると、プラグインのアウトレットが showFooter 属性を受け取ることがわかります。これはおそらく false です。つまり、フッターもアタッチされたウィジェットも表示されません。
いずれにしても、ヘッダーアーティファクトにフッターアウトレットがあるのはなぜですか?
プラグインのアウトレットテーマコンポーネントを使用して、より良い場所を選択することをお勧めします。
It does show… it shows widget=“home-logo”
and it also shows widget=“hamburger-menu”
but it doesn’t show widget=“hamburger-categories”
Just testing it out, doesn’t really matter where it is right now
表示されています… widget=“home-logo” が表示されています
また、widget=“hamburger-menu” も表示されています
しかし、widget=“hamburger-categories” は表示されていません
テストしているだけなので、今のところどこにあるかはあまり重要ではありません
「いいね!」 1
ここにカテゴリが表示されているので、確かに存在します。
私の推測では、これが問題です。
フッターのアウトレット経由でカテゴリ属性が渡されていません。
しかし、フッターのアウトレットで widget=“hamburger-menu” を使用すると、カテゴリが表示されます。
ページ内の他のアウトレットでも試しましたが、問題は解決しません。
最初にそのエラーメッセージを投稿していれば、多くの時間を節約できたはずです。
常にコンソールを確認してください。
Hamburgerメニューがやっているのと同じように、カテゴリのリストを取得したら、これをJavaScriptでアタッチする必要があるかもしれません。
「いいね!」 1
はい、確かに。ドキュメントに「ウィジェットの取り付けは非常に簡単で、必要なのはウィジェットの名前だけです。それだけです」と書かれていなければ、さらに時間がかかったでしょう。
「いいね!」 1
最新のガイドはどこにあるかご存知ですか?答えを探して飛び回っていますが、4年前の投稿にたどり着いてしまいます。どこかに実際のガイド文書はありますか?
ええ、それが誤解を招く可能性があることは理解できます…技術的にはウィジェットをマウントしますが、ウィジェットが必要とするデータが自動的に利用可能になるという意味ではありません。
次のように、カテゴリをウィジェットに渡してみてください。
{{mount-widget widget="hamburger-categories" args=(hash categories=this.site.categories)}}
「いいね!」 1
ありがとうございます。なるほど、表示されるようになりました。
コンソールへのログについて話しているのですが、
ドキュメント Developing Discourse Themes & Theme Components に従っているとき、
<script type="text/discourse-plugin" version="0.8">
console.log(Discourse)
</script>
を実行しても、「グローバルオブジェクトがコンソールに表示される」のではなく、クラスが表示されます。
そして、次のようなことを試すと、
<script type="text/discourse-plugin" version="0.8">
const settings = Discourse.SiteSettings;
console.log(settings)
</script>
このエラーが表示されます。
THEME 6 'BCN Theme - watched locally'] Deprecation notice: use injected siteSettings instead of Discourse.SiteSettings
「いいね!」 1