機能
このコンポーネントには、サイドバーに表示できるいくつかのブロックが含まれています:
- popular-tags
- top-contributors
- recent-replies
- category-topics
- custom-html
- category-list
- subcategory-list
- upcoming-events-list*
- minimal-gamification-leaderboard**
トップコントリビューターリストを埋めるには、ユーザーディレクトリを有効にする必要があります。 リストが空白の場合は、管理者設定でenable user directoryを検索し、有効になっていることを確認してください。
* Calendarプラグインと併用した場合にのみ利用可能です。
** Gamificationプラグインと併用した場合にのみ利用可能です。
他のEmberコンポーネントもブロックとして使用できますが、正しい名前を使用する必要があります。 例えば、コアにはsignup-ctaというEmberコンポーネントが含まれており、それをそのままサイドバーで使用できます。 パラメータのセットを期待するコンポーネントは使用できませんが、別のテーマで独自のEmberコンポーネントを構築し、サイドバーのblocks設定で名前だけで参照することはできます。
提供されるブロックのいくつかの機能をパラメータで制御できます。
| 名前 |
説明 |
デフォルト |
値 |
利用可能 |
count |
結果の数を制限 |
変動 |
数値 |
custom-html以外 |
excerptLimit |
各返信の抜粋の長さを制限 |
150 |
数値 |
recent-replies |
id |
カテゴリID |
|
カテゴリID(category-listはカンマ区切り) |
category-topics, category-list |
content |
表示するコンテンツ |
|
html |
custom-html |
scopeToCategory |
カテゴリまたはサブカテゴリXでのみ表示 |
|
カテゴリID |
popular-tags |
excludedTags |
除外するタグのリスト |
|
タグ名 |
popular-tags |
displayInSpecificCategories |
ウィジェットを表示するカテゴリのリスト |
すべて |
カンマ区切りの数値 |
popular-tags |
id |
リーダーボードID |
|
数値 |
minimal-gamification-leaderboard |
tag |
表示するタグ |
|
タグ名 |
tag-topics |
period |
トップトピックの期間 |
週間 |
すべて、年間、四半期、月間、週間、日次 |
top-topics |
title |
ブロックのタイトル |
変動 |
文字列 |
tag-topics, category-list, top-contributors |
excludedGroupNames |
指定されたグループを除外 |
|
グループ名 |
top-contributors |
order |
コントリビューターの順序 |
|
文字列(likes_receivedまたはlikes_given) |
top-contributors |
period |
トップコントリビューターの期間 |
年間 |
すべて、年間、四半期、月間、週間、日次 |
top-contributors |
includeSubcategories |
サブカテゴリイベントを含める |
false |
false, true |
upcoming-events-list |
upcomingDays |
指定された値より前に開始されたイベント |
180 |
数値 |
upcoming-events-list |
timeFormat |
イベントの日付/時間の形式 |
LT |
momentjs形式 |
upcoming-events-list |
設定
| 名前 |
説明 |
| blocks |
|
| show in routes |
上級ユーザーのみ:サイドバーを選択したルートに制限します。 例:discovery.latest、discovery.unread、discovery.new、discovery.top、tag.show、“c/category-slug”(カテゴリ用)、“tag/sample-tag”(タグ用)。 空の場合、サイドバーはすべてのリストルートに表示されます。 |
blocks:表示するブロックを選択し、順序を調整
show_in_routes:どのトピックリストルートでサイドバーを表示するかを決定します。 デフォルトでは、/categoriesを除くすべてのdiscoveryルートに表示されます。
| 翻訳 |
デフォルト |
| top_contributors.heading |
トップコントリビューター |
| top_contributors.view_all |
すべて表示 |
| popular_tags.heading |
人気のタグ |
| popular_tags.view_all |
すべて表示 |
| recent_replies.heading |
最近の返信 |
| subcategory_list.heading |
サブカテゴリ |
| top_topics.heading |
トップトピック |
| category_list.heading |
カテゴリ |
スクリーンショット
このコンポーネントには非常に基本的なスタイルのみが付属しており、管理者が独自のテーマで独自のスタイルを追加することを前提としています。
インタラクション
Discourse Calendarプラグインと併用する場合、今後のイベント用のサイドバーブロックを追加できます。 ブロック名はupcoming-events-listであり、日付形式はこの構文に従ってカスタマイズできます(例:MMMM D, YYYY)。 将来どれくらい先まで表示するか、およびサブカテゴリイベントを含めるかどうかも設定できます(上記の表を参照)
私たちによるホスティングですか? テーマコンポーネントは、Pro、Business、およびEnterpriseプランで使用できます。
「いいね!」 64
Alaa
8
カスタムHTMLを使用する場合、「name」パラメータに何を追加すればよいですか?
「いいね!」 1
nathank
(Nathan Kershaw)
9
素晴らしい#公式テーマコンポーネントとしてこれを見ることができて嬉しいです!確かに、カスタマイズの新しい世界が開かれます。
2つの質問があります。
-
サイドバーで、category-topics が表示する方法と同様に、/latest トピックリストを表示したいのですが、可能でしょうか? recent-replies はそれに近いですが(特に抜粋が非表示の場合)、返信のないトピックも表示したいのです。
-
サイドブロックを特定のカテゴリでのみ表示することは可能ですか?つまり、表示されるルートはカテゴリトピックリストのみで、指定したカテゴリのみに限定されるということです。
「いいね!」 1
pmusaraj
(Penar Musaraj)
10
申し訳ありませんが、このドキュメントは不十分でした(すぐに更新します)。custom-html のパラメータ名は content です。
/latest リスト全体に対応する既製のものは提供していませんが、自分で構築して、その名前を使用して設定に追加することができます。カテゴリ/タグリストと非常によく似ていますが、フィルタリングはありません。
現在のところ、特定のカテゴリにのみ表示することはできません。ただし、show in routes 設定で discovery.category を使用することはできます。これにより、サイドバーはカテゴリのルートにのみ表示されます(ただし、サブセットではなく、すべてのカテゴリに表示されます)。
「いいね!」 3
Alaa
11
ありがとうございます。各トピックにもサイドバーを含めることは可能でしょうか?
「いいね!」 4
albert_vu
(Albert Vũ)
12
コンポーネントの制限事項、特に category-topics および subcategory-list ブロックに関して、どちらかのタイプで 異なる id を持つ複数のブロックを追加すると、常に起動エディタ(推測ですが)で最上位のブロックのトピック/サブカテゴリが表示されるという制限事項に気づきました。
現在発生しているバグの1つは、subcategory-list ブロックを10〜12回ほど操作した後、ステージングサイトに表示されなくなったことです(以下の動画を参照)。
「いいね!」 2
pmusaraj
(Penar Musaraj)
13
subcategory-list ブロックはパラメーターを一切受け付けません。使用すると、現在どのカテゴリに移動したかに基づいて現在のカテゴリのサブカテゴリが表示されるため、このブロックを複数回使用しても意味がありません。
それが、subcategory-list が動画に表示されない理由でもあります。カテゴリ以外のルートにいる場合、そのブロックは表示されません。
category-topics については、動画で同じ ID 7 が 2 回使用されているのを確認しました。ローカルでテストしたところ、異なる ID を使用すると異なるトピックが表示されるため(つまり、報告されたバグを再現できませんでした)。
「いいね!」 4
こんにちは、この素晴らしいプラグインに心から感謝いたします!
サブカテゴリリストのサイドバーについて質問があります。特定のカテゴリに対してのみ表示するオプションはありますか?
開発者たちに確認してもらったところ、subcategory-list にはパラメータIDのサポートがないようです。追加していただけますでしょうか?
「いいね!」 2
そして、top-contributorsブロックについてですが、1週間の結果を取得する方法はありますか?
「いいね!」 2
pmusaraj
(Penar Musaraj)
16
現在、そのオプションはありません。追加するのは理にかなっていますが、複数のIDをサポートして、カテゴリのリスト(例:A、B、C)に対してブロックを表示できるようにする必要があると思います。開発者が追加できると考えている場合、リポジトリへのPRを喜んでレビューします。そうでなければ、テーマコンポーネントの「nice-to-haves」リストに追加できます。
a) 結果を取得して1週間キャッシュすること、またはb) 読み込みごとに過去1週間のトップ貢献者を取得することのどちらかを意味しますか?後者は簡単に追加できますが、キャッシュは少しトリッキーです。
「いいね!」 3
pmusaraj
(Penar Musaraj)
19
コンポーネントには意図的にスタイルがほとんど適用されていません。これにより、消費者は独自のテーマやテーマコンポーネントで独自のスタイルを追加できます。
ありがとうございます。その PR は素晴らしいもので、すでにマージされました!
また、トップコントリビューターブロックの設定可能性についても、まもなく作業します(または、誰かが私より早く作業した場合、PR のレビューを喜んで行います)。
「いいね!」 3
nathank
(Nathan Kershaw)
20
コードの場所がわかりません。教えていただけますか?カテゴリトピックを変更して、IDがない場合にすべてのカテゴリ(したがって事実上/latestリスト)を取得できるようにしたいです。
すべてのブロックにそれがあると素晴らしいでしょう!
「いいね!」 2
@pmusaraj 素晴らしい!ご協力いただきありがとうございます。トップコントリビューターブロックを使うのを楽しみにしています 
「いいね!」 1
Kuro22
22
こんにちは!このコンポーネントがエラーの原因かどうかはわかりませんが、無効にするとエラーは発生しなくなります。
問題を特定するのを手伝ってもらえませんか?とても感謝します。
有効にすると、デスクトップで特定のトピックにアクセスし、ホームページに戻ろうとしてヘッダーのサイトロゴをクリックすると、決して消えない読み込み画面が表示され、ブラウザのコンソールにエラーが発生します(下記参照)。mysite/logs パスに関連するエラーログは表示されません。
d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe:98 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'findFiltered')
at new CategoryTopics (d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe:98:18)
at h.createComponent (base-component-manager.js:37:1)
at h.createComponent (ember-component-manager.js:54:1)
at C.create (manager.js:558:1)
at Object.evaluate (runtime.js:3301:1)
at Object.evaluate (runtime.js:1312:1)
at Dt.evaluateSyscall (runtime.js:5232:1)
at Dt.evaluateInner (runtime.js:5188:1)
at Dt.evaluateOuter (runtime.js:5180:1)
at Wt.next (runtime.js:6191:1)
at Wt._execute (runtime.js:6175:1)
at Wt.execute (runtime.js:6166:1)
at qt.handleException (runtime.js:5369:1)
at Kt.handleException (runtime.js:5605:1)
at Lt.throw (runtime.js:5302:1)
at Be.evaluate (runtime.js:2580:1)
at Lt._execute (runtime.js:5285:1)
at Lt.execute (runtime.js:5266:1)
at Ht.rerender (runtime.js:5634:1)
at Er.render (index.js:7578:1)
at index.js:7896:1
at It (runtime.js:5074:1)
at Rr._renderRoots (index.js:7876:1)
at Rr._renderRootsTransaction (index.js:7928:1)
at Rr._revalidate (index.js:7970:1)
at invoke (backburner.js:351:1)
at p.flush (backburner.js:241:1)
at h.flush (backburner.js:447:1)
at q._end (backburner.js:999:1)
at _boundAutorunEnd (backburner.js:648:1)
CategoryTopics @ d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe:98
createComponent @ base-component-manager.js:37
createComponent @ ember-component-manager.js:54
create @ manager.js:558
(匿名) @ runtime.js:3301
evaluate @ runtime.js:1312
evaluateSyscall @ runtime.js:5232
evaluateInner @ runtime.js:5188
evaluateOuter @ runtime.js:5180
next @ runtime.js:6191
_execute @ runtime.js:6175
execute @ runtime.js:6166
handleException @ runtime.js:5369
handleException @ runtime.js:5605
throw @ runtime.js:5302
evaluate @ runtime.js:2580
_execute @ runtime.js:5285
execute @ runtime.js:5266
rerender @ runtime.js:5634
render @ index.js:7578
(匿名) @ index.js:7896
It @ runtime.js:5074
_renderRoots @ index.js:7876
_renderRootsTransaction @ index.js:7928
_revalidate @ index.js:7970
invoke @ backburner.js:351
flush @ backburner.js:241
flush @ backburner.js:447
_end @ backburner.js:999
_boundAutorunEnd @ backburner.js:648
Promise.then (非同期)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_end @ backburner.js:1009
_boundAutorunEnd @ backburner.js:648
Promise.then (非同期)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_end @ backburner.js:1009
_boundAutorunEnd @ backburner.js:648
Promise.then (非同期)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_end @ backburner.js:1009
_boundAutorunEnd @ backburner.js:648
Promise.then (非同期)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_ensureInstance @ backburner.js:1206
scheduleOnce @ backburner.js:845
k @ index.js:522
queueRerender @ mount-widget.js:124
scheduleRerender @ widget.js:319
rerenderResult @ widget.js:365
F @ hooks.js:207
(匿名) @ hooks.js:247
dispatch @ jquery.js:5430
_.handle @ jquery.js:5234
frame:251 You dismissed the flag, but third party cookies are disabled on your browser so the flag will come back the next time you visit the page.
エラーログの最初の行で言及されているJSファイルに、このコンポーネントに関する情報があります。
// d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe の 96-103 行目
const filter = "c/" + categoryId;
this.category = _category.default.findById(categoryId);
this.store.findFiltered("topicList", {
filter
}).then(result => {
const results = result.topic_list.topics;
results.forEach(topic => {
topic.url = "".concat((0, _getUrl.default)("/t/")).concat(topic.slug, "/").concat(topic.id);
「いいね!」 1
pmusaraj
(Penar Musaraj)
23
ああ、はい、申し訳ありませんでした。これは修正されましたので、テーマコンポーネントの最新アップデートをプルするだけです。
「いいね!」 3
Kuro22
24
ありがとうございます。正常に動作するようになりました。
「いいね!」 3
@pmusaraj さん、しつこく聞こえたら申し訳ありません。この実装に関するETA(おおよその所要時間)はありますでしょうか?
素晴らしい機能になると思います 
どうぞよろしくお願いいたします!
「いいね!」 3
carson
(Carson)
26
この素晴らしいコンポーネントをありがとうございます!
これを有効にすると、ヘッダーとフッター全体がグローバルに消えてしまうことに気づきました(header.htmlとfooter.htmlのすべて)。これは意図したものでしたか?しかし、これを回避するために、PluginAPIを使用してヘッダー/フッターを手動で追加する必要があります。
「いいね!」 2