|||
-|-|-|
| 概要 | Right Sidebar Blocks は、設定可能なブロックリストを持つトピックリストの右側にサイドバーを表示します。
| | プレビュー | Discourse Theme Creator でプレビュー
| リポジトリリンク | https://github.com/discourse/discourse-right-sidebar-blocks
|Discourse テーマ初心者ですか? | Discourse テーマ使用の初心者ガイド
機能
コンポーネントには、サイドバーに表示できるいくつかのブロックが含まれています。
popular-tags
top-contributors
recent-replies
category-topics
custom-html
category-list
subcategory-list
upcoming-events-list*
minimal-gamification-leaderboard**
ユーザーディレクトリが有効になっていないと、トップコントリビューターリストは表示されません。リストが空白の場合は、管理者設定で enable user directory を検索して有効になっていることを確認してください。
* カレンダー プラグインと組み合わせて使用する場合のみ利用可能です。
** ゲーミフィケーション プラグインと組み合わせて使用する場合のみ利用可能です。
他の 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
表示するタグ
タグID
tag-topics
period
トップトピックの時間範囲
weekly
all, yearly, quarterly, monthly, weekly, daily
top-topics
title
ブロックのタイトル
様々
文字列
tag-topics, category-list, top-contributors
excludedGroupNames
指定されたグループを除外します
グループ名
top-contributors
order
コントリビューターの順序
文字列 (likes_received または likes_given)
top-contributors
period
トップコントリビューターの時間範囲
yearly
all, yearly, quarterly, monthly, weekly, daily
top-contributors
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 を除くすべてのディスカバリールートに表示されます。
翻訳
デフォルト
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)。
ホスティングは弊社でご利用ですか? テーマコンポーネントは、Standard、Business、Enterprise プランでご利用いただけます。
「いいね!」 60
Alaa
2022 年 7 月 17 日午前 1:29
8
カスタムHTMLを使用する場合、「name」パラメータに何を追加すればよいですか?
「いいね!」 1
nathank
(Nathan Kershaw)
2022 年 7 月 18 日午後 5:30
9
素晴らしい#公式テーマコンポーネントとしてこれを見ることができて嬉しいです!確かに、カスタマイズの新しい世界が開かれます。
2つの質問があります。
サイドバーで、category-topics が表示する方法と同様に、/latest トピックリストを表示したいのですが、可能でしょうか? recent-replies はそれに近いですが(特に抜粋が非表示の場合)、返信のないトピックも表示したいのです。
サイドブロックを特定のカテゴリでのみ表示することは可能ですか?つまり、表示されるルートはカテゴリトピックリストのみで、指定したカテゴリのみに限定されるということです。
「いいね!」 1
pmusaraj
(Penar Musaraj)
2022 年 7 月 19 日午後 2:54
10
申し訳ありませんが、このドキュメントは不十分でした(すぐに更新します)。custom-html のパラメータ名は content です。
/latest リスト全体に対応する既製のものは提供していませんが、自分で構築して、その名前を使用して設定に追加することができます。カテゴリ/タグリストと非常によく似ていますが、フィルタリングはありません。
現在のところ、特定のカテゴリにのみ表示することはできません。ただし、show in routes 設定で discovery.category を使用することはできます。これにより、サイドバーはカテゴリのルートにのみ表示されます(ただし、サブセットではなく、すべてのカテゴリに表示されます)。
「いいね!」 3
Alaa
2022 年 7 月 20 日午前 6:12
11
ありがとうございます。各トピックにもサイドバーを含めることは可能でしょうか?
「いいね!」 4
albert_vu
(Albert Vũ)
2022 年 7 月 22 日午前 9:03
12
コンポーネントの制限事項、特に category-topics および subcategory-list ブロックに関して、どちらかのタイプで 異なる id を持つ複数のブロックを追加すると、常に起動エディタ(推測ですが)で最上位のブロックのトピック/サブカテゴリが表示されるという制限事項に気づきました。
現在発生しているバグの1つは、subcategory-list ブロックを10〜12回ほど操作した後、ステージングサイトに表示されなくなったことです(以下の動画を参照)。
「いいね!」 2
pmusaraj
(Penar Musaraj)
2022 年 7 月 25 日午後 2:09
13
subcategory-list ブロックはパラメーターを一切受け付けません。使用すると、現在どのカテゴリに移動したかに基づいて現在のカテゴリのサブカテゴリが表示されるため、このブロックを複数回使用しても意味がありません。
それが、subcategory-list が動画に表示されない理由でもあります。カテゴリ以外のルートにいる場合、そのブロックは表示されません。
category-topics については、動画で同じ ID 7 が 2 回使用されているのを確認しました。ローカルでテストしたところ、異なる ID を使用すると異なるトピックが表示されるため(つまり、報告されたバグを再現できませんでした)。
「いいね!」 4
こんにちは、この素晴らしいプラグインに心から感謝いたします!
サブカテゴリリスト のサイドバーについて質問があります。特定のカテゴリに対してのみ表示するオプションはありますか?
開発者たちに確認してもらったところ、subcategory-list にはパラメータIDのサポートがないようです。追加していただけますでしょうか?
「いいね!」 2
そして、top-contributors ブロックについてですが、1週間の結果を取得する方法はありますか?
「いいね!」 2
pmusaraj
(Penar Musaraj)
2022 年 7 月 26 日午後 2:28
16
現在、そのオプションはありません。追加するのは理にかなっていますが、複数のIDをサポートして、カテゴリのリスト(例:A、B、C)に対してブロックを表示できるようにする必要があると思います。開発者が追加できると考えている場合、リポジトリへのPRを喜んでレビューします。そうでなければ、テーマコンポーネントの「nice-to-haves」リストに追加できます。
Helga:
1週間の期間の結果を取得する方法はありますか?
a) 結果を取得して1週間キャッシュすること、またはb) 読み込みごとに過去1週間のトップ貢献者を取得することのどちらかを意味しますか?後者は簡単に追加できますが、キャッシュは少しトリッキーです。
「いいね!」 3
pmusaraj
(Penar Musaraj)
2022 年 7 月 27 日午後 5:32
19
miss:
追加していただけますか?
padding: 3px 4px 3px 4px
popular-tags にも。
コンポーネントには意図的にスタイルがほとんど適用されていません。これにより、消費者は独自のテーマやテーマコンポーネントで独自のスタイルを追加できます。
ありがとうございます。その PR は素晴らしいもので、すでにマージされました!
また、トップコントリビューターブロックの設定可能性についても、まもなく作業します(または、誰かが私より早く作業した場合、PR のレビューを喜んで行います)。
「いいね!」 3
nathank
(Nathan Kershaw)
2022 年 7 月 28 日午前 4:18
20
コードの場所がわかりません。教えていただけますか?カテゴリトピックを変更して、IDがない場合にすべてのカテゴリ(したがって事実上/latestリスト)を取得できるようにしたいです。
すべてのブロックにそれがあると素晴らしいでしょう!
「いいね!」 2
@pmusaraj 素晴らしい!ご協力いただきありがとうございます。トップコントリビューターブロックを使うのを楽しみにしています
「いいね!」 1
Kuro22
2022 年 8 月 14 日午前 5:29
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)
2022 年 8 月 15 日午後 6:23
23
ああ、はい、申し訳ありませんでした。これは修正されました ので、テーマコンポーネントの最新アップデートをプルするだけです。
「いいね!」 3
Kuro22
2022 年 8 月 16 日午前 5:49
24
ありがとうございます。正常に動作するようになりました。
「いいね!」 3
@pmusaraj さん、しつこく聞こえたら申し訳ありません。この実装に関するETA(おおよその所要時間)はありますでしょうか?
素晴らしい機能になると思います
どうぞよろしくお願いいたします!
「いいね!」 3
carson
(Carson)
2022 年 10 月 19 日午後 4:09
26
この素晴らしいコンポーネントをありがとうございます!
これを有効にすると、ヘッダーとフッター全体がグローバルに消えてしまうことに気づきました(header.htmlとfooter.htmlのすべて)。これは意図したものでしたか?しかし、これを回避するために、PluginAPIを使用してヘッダー/フッターを手動で追加する必要があります。
「いいね!」 2