||||\n-|-|-|\n:discourse2: | 概要 | Right Sidebar Blocks は、設定可能なブロックのリストを含むサイドバーをトピックリストの右側に表示します。\n|
| プレビュー | Discourse Theme Creatorでプレビュー\n:hammer_and_wrench: | リポジトリリンク | \u003chttps://github.com/discourse/discourse-right-sidebar-blocks\u003e\n:open_book:|Discourseテーマは初めてですか?| Discourseテーマ使用の初心者ガイド\n\n[wrap=theme-install-button repoUrl="https://github.com/discourse/discourse-right-sidebar-blocks\" repoName="Right Sidebar Blocks"]\nこのテーマコンポーネントをインストール\n[/wrap]\n\n[quote]\n\n:discourse2: これはDiscourseチームによって保守されている#officialテーマコンポーネントであるため、#support、#bug、#ux、および#featureのリクエストは、Metaの該当するカテゴリで、適切なテーマコンポーネントタグを付けて行うことができます。リンクをクリックして開始してください。
\n\n\u003ckbd\u003e [
\u0026nbsp;サポート](Discourse Meta "Right Sidebar Blocksの設定と使用に関するサポートを求める") \u003c/kbd\u003e \u003ckbd\u003e [
\u0026nbsp;バグ](Discourse Meta "バグレポートは、テーマコンポーネントの通常/典型的な使用を妨げる何かが壊れていることを意味します") \u003c/kbd\u003e \u003ckbd\u003e [
\u0026nbsp;UX](Discourse Meta "Right Sidebar Blocksのユーザーインターフェース、および機能の表示方法(言語やUI要素を含む)に関するディスカッション") \u003c/kbd\u003e \u003ckbd\u003e [
\u0026nbsp;機能](Discourse Meta "Right Sidebar Blocksの既存機能の改善または強化、および提案された新機能の動作方法に関するディスカッション")\u003c/kbd\u003e\n\n[/quote]\n\n### 機能\n\nこのコンポーネントには、サイドバーに表示できるいくつかのブロックが含まれています。\n\n* popular-tags (人気のタグ)\n* top-contributors (トップコントリビューター)\n* recent-replies (最近の返信)\n* category-topics (カテゴリトピック)\n* custom-html (カスタムHTML)\n* category-list (カテゴリリスト)\n* subcategory-list (サブカテゴリリスト)\n* upcoming-events-list* (今後のイベントリスト*)\n* minimal-gamification-leaderboard** (最小限のゲーミフィケーションリーダーボード**)\n\n\u003e:information_source: トップコントリビューターリストに情報を入力するには、ユーザーディレクトリが有効になっている必要があります。リストが空白の場合は、管理者設定でenable user directoryを検索して、有効になっていることを確認してください。\n\n\* Calendar プラグインと組み合わせて使用する場合にのみ利用可能です。\n** Gamification プラグインと組み合わせて使用する場合にのみ利用可能です。\n\nまた、他のEmberコンポーネントをブロックとして使用することもできます。正しい名前を使用するだけです。たとえば、コアにはsignup-cta Emberコンポーネントが含まれており、そのままサイドバーで使用できます。パラメーターのセットを必要とするコンポーネントは使用できませんが、別のテーマで独自のEmberコンポーネントを構築し、サイドバーのblocks設定で名前だけで参照することはできます。\n\n提供されるブロックの一部の機能をパラメーターで制御できます。\n\n| 名前 | 説明 | デフォルト | 値 | 利用可能 |\n|—|—|—|—|—|\n| count | 結果の数を制限する | varies | 数値 | custom-htmlを除くすべて |\n| excerptLimit | 各返信抜粋の長さを制限する | 150 | 数値 | recent-replies |\n| id | カテゴリID | | カテゴリID (category-listはコンマ区切りを使用) | category-topics, category-list |\n| content | 表示するコンテンツ | | html | custom-html |\n| scopeToCategory | カテゴリまたはサブカテゴリXでのみ表示 | | カテゴリID | popular-tags |\n| excludedTags | 除外するタグのリスト | | タグ名 | popular-tags |\n| displayInSpecificCategories | ウィジェットを表示するカテゴリのリスト | all | コンマ区切り番号 | popular-tags |\n| id | リーダーボードID | | 数値 | minimal-gamification-leaderboard |\n| tag | 表示するタグ | | タグ名 | tag-topics |\n| period | トップトピックの期間 | weekly | all, yearly, quarterly, monthly, weekly, daily | top-topics |\n| title | ブロックのタイトル | varies | 文字列 | tag-topics, category-list, top-contributors |\n| excludedGroupNames | 指定されたグループを除外する | | グループ名 | top-contributors |\n| order | コントリビューターの順序付け | | 文字列 (likes_received または likes_given) | top-contributors |\n| period | トップコントリビューターの期間 | yearly | all, yearly, quarterly, monthly, weekly, daily | top-contributors |\n| upcomingDays | 提供された値より前に開始されたイベント | 180 | 数値 | upcoming-events-list |\n| timeFormat | イベントの日付/時刻の形式 | LT | momentjs形式 | upcoming-events-list |\n\n### 設定\n\n| 名前 | 説明\n|-|-|\n| blocks | \n| show in routes | 上級者のみ: サイドバーを表示するルートを制限します。\u003cbr\u003e例: discovery.latest, discovery.unread, discovery.new, discovery.top, tag.show, "c/category-slug" (カテゴリの場合), "tag/sample-tag" (タグの場合)。\u003cbr\u003e空の場合、サイドバーはすべてのリストルートに表示されます。\n\nblocks: 表示するブロックとその順序を調整します。\n\nshow_in_routes: サイドバーを表示するトピックリストルートを決定します。デフォルトでは、/categoriesを除くすべてのディスカバールートに表示されます。\n\n| 翻訳 | デフォルト\n|-|-|\n| top_contributors.heading | トップコントリビューター\n| top_contributors.view_all | すべて表示\n| popular_tags.heading | 人気のタグ\n| popular_tags.view_all | すべて表示\n| recent_replies.heading | 最近の返信\n| subcategory_list.heading | サブカテゴリ\n| top_topics.heading | トップトピック\n| category_list.heading | カテゴリ\n\n### スクリーンショット\n\n
\n\n
\n\n
\n\n注: このコンポーネントにはごく基本的なスタイリングしか含まれていません。コンポーネントを使用する管理者は、独自のテーマに独自のスタイリングを追加することが想定されています。\n\n### 連携\n\n
Discourse Calendar プラグインと連携して使用すると、今後のイベントのサイドバーブロックを追加できます。ブロック名は
upcoming-events-listで、日付形式は
この構文に従ってカスタマイズできます(例:
MMMM D, YYYY)。\n\n
\n\n
\n\n\u003cbr\u003e\n\n\n\u003e:discourse2:
ホスティングをご利用ですか? テーマコンポーネントは、Standard、Business、Enterpriseプランでご利用いただけます。"
「いいね!」 60
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