FEATURE: support registration of custom html by plugins

This commit is contained in:
Sam 2014-06-05 11:39:33 +10:00
parent 8ec9288a5c
commit f1a28d62a3
3 changed files with 18 additions and 4 deletions

View File

@ -243,12 +243,20 @@ class ApplicationController < ActionController::Base
end
def custom_html_json
MultiJson.dump({
data = {
top: SiteContent.content_for(:top),
bottom: SiteContent.content_for(:bottom)
}.merge(
(SiteSetting.tos_accept_required && !current_user) ? {tos_signup_form_message: SiteContent.content_for(:tos_signup_form_message)} : {}
))
}
if SiteSetting.tos_accept_required && !current_user
data[:tos_signup_form_message] = SiteContent.content_for(:tos_signup_form_message)
end
if DiscoursePluginRegistry.custom_html
data.merge! DiscoursePluginRegistry.custom_html
end
MultiJson.dump(data)
end
def render_json_error(obj)

View File

@ -12,6 +12,7 @@ class DiscoursePluginRegistry
attr_accessor :desktop_stylesheets
attr_accessor :sass_variables
attr_accessor :handlebars
attr_accessor :custom_html
# Default accessor values
def javascripts

View File

@ -108,6 +108,11 @@ class Plugin::Instance
@javascripts << js
end
def register_custom_html(hash)
DiscoursePluginRegistry.custom_html ||= {}
DiscoursePluginRegistry.custom_html.merge!(hash)
end
def register_asset(file, opts=nil)
full_path = File.dirname(path) << "/assets/" << file
assets << [full_path, opts]