スタットバナー

:discourse2: 概要 Stat Banner は、ホームページにサイトの統計情報リストを表示します
:eyeglasses: プレビュー Discourse Theme Creatorでプレビュー
: hammer_and_wrench: リポジトリ https://github.com/discourse/discourse-stat-banner
: open_book: Discourseテーマ初心者ですか? Discourseテーマの初心者ガイド

このテーマコンポーネントをインストール

機能

表示する統計情報はいくつでも作成できます。統計情報は /about ページから取得され、以下から選択できます。

  • topics
  • posts
  • active users
  • users
  • likes
  • chat messages
  • chat channels
  • chat users

これらの各項目は、次の3つの期間のいずれかから個別に設定できます。

  • 1 day
  • 7 days
  • 30 days

ソースと期間以外にも、以下を設定できます。

  • title
  • link (optional)
  • manual_value (optional, overrides the automatic value)

設定

Name Description
display stats
banner title
show on
background color Discourseのカラー変数または16進値
text color Discourseのカラー変数または16進値
min column width
hide on mobile
plugin outlet このコンポーネントが表示されるプラグインのアウトレット。above-main-container または below-site-header を試してください。plugin outlet location theme component でさらにアウトレットを見つけることができます。
disable cache バナーの統計情報は、バナーが表示されるたびに更新されます。これは、サーバーにわずかな追加負荷がかかる可能性があることに注意してください。

:discourse2: 弊社でホストしていますか? テーマコンポーネントは、Standard、Business、Enterpriseプランでご利用いただけます。

「いいね!」 27

iPhone SE は hide on mobile に従いません。

編集:モバイルでは、この設定に従わず、バナーが常に表示されているようです。

「いいね!」 3

そして、もう一つ小さなUX/UIに関するリクエストです。リンクはリンクのように見えるべきです。

「いいね!」 3

迅速なフィードバックをありがとうございます、@Jagster 様!これらの問題に対処するために更新しました。

「いいね!」 3

Hi, @awesomerobot

このテーマコンポーネントをありがとうございます。早速利用させていただきました。

もしよろしければ、少し混乱しているので質問させてください。「アクティブユーザー」は自明なので理解できますが、「ユーザー」とは具体的に何を指していますか?

良い質問ですね!

アクティブユーザーとは、1日/7日/30日の期間内にサイトを訪問したユーザー(ログインして訪問したユーザー)のことです。

ユーザーとは、1日/7日/30日の期間内に作成された新規アカウントの数です。

「いいね!」 2

おはようございます、@awesomerobot様

このテーマコンポーネントについてしばらく考え、'Users’と’Active Users’に関するご回答に基づくと、情報が最近更新されていないようです。また、これらの指標について2つの異なる値があるようです。

デスクトップでの統計情報はこちらです。

モバイルでの統計情報はこちらです。

差は大きくありませんが、これらの統計情報がどこから取得されているのか分かりません。

統計情報のためにRefresh HTML Codeを次のように実装してみました。

<script>
  setInterval(function() {
    location.reload();
  }, 60000); // 1分ごと(60000ミリ秒)にリフレッシュ
</script>

注:このコードは1分ごと(60000ミリ秒)にページをリロードします。必要に応じて間隔を調整できます。

しかし、これを設定エディタに追加できるかどうかは不明です。

何かお手伝いいただけると幸いです。

「いいね!」 1

更新:

このように表示されるべきだと結論付けました。

[
	{
		"setting": "display_stats",
		"value": "[{\"source\":\"posts\",\"period\":\"30_days\",\"title\":\"Posts\",\"link\":\"\",\"manual_value\":\"\"},{\"source\":\"likes\",\"period\":\"30_days\",\"title\":\"Likes\",\"link\":\"\",\"manual_value\":\"\"},{\"source\":\"active_users\",\"period\":\"30_days\",\"title\":\"Active Users\",\"link\":\"\",\"manual_value\":\"\"},{\"source\":\"users\",\"period\":\"30_days\",\"title\":\"Sign-Ups\",\"link\":\"\",\"manual_value\":\"\"}]"
	},
	{
		"setting": "banner_title",
		"value": "過去30日間の統計"
	},
	{
		"setting": "show_on",
		"value": "homepage"
	},
	{
		"setting": "background_color",
		"value": "var(--tertiary-low)"
	},
	{
		"setting": "text_color",
		"value": "var(--primary)"
	},
	{
		"setting": "min_column_width",
		"value": "10em"
	},
	{
		"setting": "hide_on_mobile",
		"value": false
	},
	{
		"setting": "plugin_outlet",
		"value": "above-main-container"
	},
	{
		"setting": "javascript",
		"value": "setInterval(function() { Discourse.__container__.lookup('controller:widget').send('refresh'); }, 3600000);"
	}
]

しかし、エラーメッセージが表示されます。

javascript: これらの設定が追加されました。削除してもう一度お試しください。

この統計情報は、そのページの最下部にあるテーブルと同じデータを使用している「概要」ページから取得されます。

バナーのデータは、ユーザーが最初にバナーを見た時点から、最も低い統計期間に基づいて更新されます。

たとえば、バナーが過去1日間の統計情報で設定されている場合、最初にバナーが表示された後、24時間後にデータが更新されます。バナーが過去1か月の統計情報のみを表示するように設定されている場合、最初に表示されてから1か月後にデータが更新されます(またはブラウザのlocalStorageをクリアした場合)。

これは、リクエストの数を減らすために実装されたもので、バナーが表示されるたびに更新された統計情報を表示するのではなく、ブラウザのlocalStorageにキャッシュされます。

このエディタは既存の設定を編集するためだけのものであり、新しい設定(またはjavascript)を追加することはできません。

このバナーの更新頻度を上げたい場合は、キャッシュを無効にする新しい設定を追加できます。

「いいね!」 2

こんにちは、@awesomerobotさん

詳細なご回答と統計情報の出典をご提示いただきありがとうございます。しかし、最初にインストールして以来、携帯電話に表示される統計情報で同じ問題が発生しています。

私の理解では、私の統計情報はすでに以下のようになっているはずです。

ブラウザのキャッシュをクリアしてみましたが、何も変わりませんでした。

このオプションが可能であれば、消費者のフォーラムに対するより包括的な洞察が得られるため、大変感謝いたします。

「いいね!」 2

これらは /admin からの統計のように見えますが、/about の統計とは少し異なる可能性がありますが、いずれにしても…追加したコンポーネントを更新すると、キャッシュを無効にする設定が追加されます。

Screenshot 2023-10-30 at 2.03.15 PM

「いいね!」 5

素晴らしい、完璧に機能します!設定を有効にすると、すぐに更新されました。フォーラムを常に開いている私にとって、キャッシュをクリアするよりもはるかに簡単な方法です。さらに、他の多くのフォーラムも開いています!

ご尽力いただきありがとうございます!

「いいね!」 2

期間を「全期間」の統計が表示されるように設定する方法はありますか?

また、このコンポーネントで計算される合計「投票数」を表示できたら素晴らしいです: Topic Voting | Discourse - Civilized Discussion

コンポーネントは /about.json から統計情報を検索しています。そのため、「歴代」も利用可能な値なので簡単に追加できると思います。

ただし、他の統計情報を表示したい場合は、コンポーネントをフォークして、利用可能な場所からそれらの値を取得するように調整する必要があるでしょう。

「いいね!」 2

設定JSONで手動で更新できるということですか?ドロップダウンにはないため。

いいえ、manual_value にエントリを追加すると、検索された値は静的な値に置き換えられます。このフィールドの名前を static_value に変更すると、より適切に伝わるのではないでしょうか?

全期間のカウントは、全期間の期間セレクターをドロップダウンに追加することで取得できます。

コンポーネントの設定ファイルで簡単な変更を行うだけです。ここにその変更を加えたブランチをプッシュしました: https://github.com/nolosb/discourse-stat-banner/tree/count。ただし、PR の場合、ドロップダウンでその変数をリネームするためのロジックがまだ必要になる可能性があります。

「いいね!」 1

素晴らしい、追加していただきありがとうございます!

「いいね!」 2

特定のカテゴリに限定する方法はありますか? カテゴリ見出しより上のアウトレットを試しましたが、少なくともCSSを使用して特定のカテゴリに限定しようとしましたが、どこにも表示されませんでした。

「いいね!」 1

テーマ設定の show_oneverywhere に変更すると、このCSSを使用して単一のカテゴリに表示できるようになります(examplecategory を関連するカテゴリのスラッグに置き換えてください)。

.stat-banner__wrapper {
  display: none;
}

body.category-examplecategory {
  .stat-banner__wrapper {
    display: block;
  }
}
「いいね!」 1