2013-02-05 14:16:51 -05:00
|
|
|
require 'current_user'
|
2013-02-13 06:04:43 -05:00
|
|
|
require 'canonical_url'
|
2013-02-05 14:16:51 -05:00
|
|
|
require_dependency 'guardian'
|
|
|
|
require_dependency 'unread'
|
|
|
|
require_dependency 'age_words'
|
|
|
|
|
|
|
|
module ApplicationHelper
|
|
|
|
include CurrentUser
|
2013-02-13 06:04:43 -05:00
|
|
|
include CanonicalURL::Helpers
|
2013-02-05 14:16:51 -05:00
|
|
|
|
|
|
|
def with_format(format, &block)
|
|
|
|
old_formats = formats
|
|
|
|
self.formats = [format]
|
|
|
|
block.call
|
|
|
|
self.formats = old_formats
|
|
|
|
nil
|
|
|
|
end
|
|
|
|
|
|
|
|
def age_words(secs)
|
|
|
|
AgeWords.age_words(secs)
|
|
|
|
end
|
|
|
|
|
|
|
|
def guardian
|
|
|
|
@guardian ||= Guardian.new(current_user)
|
|
|
|
end
|
|
|
|
|
|
|
|
def mini_profiler_enabled?
|
2013-03-04 19:42:44 -05:00
|
|
|
defined?(Rack::MiniProfiler) && admin?
|
2013-02-05 14:16:51 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
def admin?
|
|
|
|
current_user.try(:admin?)
|
|
|
|
end
|
|
|
|
|
2013-03-08 15:04:37 -05:00
|
|
|
# Creates open graph and twitter card meta data
|
|
|
|
def crawlable_meta_data(opts=nil)
|
|
|
|
|
|
|
|
opts ||= {}
|
2013-03-08 15:58:37 -05:00
|
|
|
opts[:image] ||= "#{Discourse.base_url}#{SiteSetting.logo_small_url}"
|
2013-03-08 15:04:37 -05:00
|
|
|
opts[:url] ||= "#{Discourse.base_url}#{request.fullpath}"
|
2013-03-07 17:31:06 -05:00
|
|
|
|
|
|
|
# Add opengraph tags
|
|
|
|
result = tag(:meta, property: 'og:site_name', content: SiteSetting.title) << "\n"
|
2013-03-08 15:04:37 -05:00
|
|
|
|
2013-03-15 15:42:21 -04:00
|
|
|
result << tag(:meta, name: 'twitter:card', content: "summary")
|
2013-03-08 15:04:37 -05:00
|
|
|
[:image, :url, :title, :description].each do |property|
|
|
|
|
if opts[property].present?
|
2013-03-08 16:17:56 -05:00
|
|
|
escape = (property != :image)
|
|
|
|
result << tag(:meta, {property: "og:#{property}", content: opts[property]}, nil, escape) << "\n"
|
2013-03-15 15:42:21 -04:00
|
|
|
result << tag(:meta, {name: "twitter:#{property}", content: opts[property]}, nil, escape) << "\n"
|
2013-03-08 15:04:37 -05:00
|
|
|
end
|
|
|
|
end
|
2013-03-07 17:31:06 -05:00
|
|
|
|
|
|
|
result
|
|
|
|
end
|
|
|
|
|
2013-04-05 15:21:55 -04:00
|
|
|
def markdown_content(key, replacements=nil)
|
|
|
|
PrettyText.cook(SiteContent.content_for(key, replacements || {})).html_safe
|
|
|
|
end
|
|
|
|
|
2013-03-14 08:01:52 -04:00
|
|
|
def faq_path
|
|
|
|
return "#{Discourse::base_uri}/faq"
|
|
|
|
end
|
|
|
|
|
|
|
|
def tos_path
|
2013-04-26 18:30:21 -04:00
|
|
|
SiteSetting.tos_url.blank? ? "#{Discourse::base_uri}/tos" : SiteSetting.tos_url
|
2013-03-14 08:01:52 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
def privacy_path
|
2013-04-26 18:30:21 -04:00
|
|
|
SiteSetting.privacy_policy_url.blank? ? "#{Discourse::base_uri}/privacy" : SiteSetting.privacy_policy_url
|
2013-03-14 08:01:52 -04:00
|
|
|
end
|
2013-03-19 12:15:14 -04:00
|
|
|
|
|
|
|
def login_path
|
|
|
|
return "#{Discourse::base_uri}/login"
|
|
|
|
end
|
2013-02-05 14:16:51 -05:00
|
|
|
end
|