diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 7fee212d2a6..2da42748a20 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -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) diff --git a/lib/discourse_plugin_registry.rb b/lib/discourse_plugin_registry.rb index 1a32e478e00..bfb8f67de69 100644 --- a/lib/discourse_plugin_registry.rb +++ b/lib/discourse_plugin_registry.rb @@ -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 diff --git a/lib/plugin/instance.rb b/lib/plugin/instance.rb index e8e5ccd5145..88498a5e149 100644 --- a/lib/plugin/instance.rb +++ b/lib/plugin/instance.rb @@ -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]