mirror of
https://ghfast.top/https://github.com/discourse/discourse-yearly-review.git
synced 2026-07-15 11:36:56 +08:00
70 lines
1.8 KiB
Ruby
70 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module YearlyReviewHelper
|
|
include ActionView::Helpers::NumberHelper
|
|
|
|
AVATAR_SIZE = "50"
|
|
|
|
def avatar_image(username, uploaded_avatar_id)
|
|
template = User.avatar_template(username, uploaded_avatar_id).gsub(/{size}/, AVATAR_SIZE)
|
|
""
|
|
end
|
|
|
|
def user_link(username)
|
|
"@#{username}"
|
|
end
|
|
|
|
def topic_link(title, slug, topic_id)
|
|
link = "#{Discourse.base_url}/t/#{slug}/#{topic_id}"
|
|
"[#{title}](#{link})"
|
|
end
|
|
|
|
def class_from_key(key)
|
|
key.gsub("_", "-")
|
|
end
|
|
|
|
def slug_from_name(name)
|
|
name.downcase.gsub(" ", "-")
|
|
end
|
|
|
|
def badge_link(name, id, more)
|
|
url = "#{Discourse.base_url}/badges/#{id}/#{slug_from_name(name)}"
|
|
"[#{t("yearly_review.more_badge_users", more: more)}](#{url})"
|
|
end
|
|
|
|
def category_link(name)
|
|
category = Category.find_by(name: name)
|
|
if category.parent_category_id
|
|
parent_category = Category.find(category.parent_category_id)
|
|
url = "#{Discourse.base_url}/c/#{parent_category.slug}/#{category.slug}/l/top"
|
|
else
|
|
url = "#{Discourse.base_url}/c/#{category.slug}/l/top"
|
|
end
|
|
link_text = t("yearly_review.category_topics_title", category: name)
|
|
"[#{link_text}](#{url})"
|
|
end
|
|
|
|
def user_visits_link
|
|
if SiteSetting.enable_user_directory && !SiteSetting.hide_user_profiles_from_public
|
|
url = "#{Discourse.base_url}/u?order=days_visited&period=yearly"
|
|
"[#{t("yearly_review.all_yearly_visits")}](#{url})"
|
|
end
|
|
end
|
|
|
|
def format_number(number)
|
|
number_to_human(number, units: { thousand: "k" }, format: "%n%u")
|
|
end
|
|
|
|
def table_row(*values)
|
|
"|#{values.join("|")}|"
|
|
end
|
|
|
|
def table_header(*labels)
|
|
headings = labels.map { |label| I18n.t("yearly_review.#{label}") }
|
|
"|#{headings.join("|")}|"
|
|
end
|
|
|
|
def compiled_method_container
|
|
self.class
|
|
end
|
|
end
|