added meta tag mechanism for facebook

This commit is contained in:
Harry Bomrah 2015-07-03 19:52:05 +08:00
parent b2056a2ad5
commit 1951c581a2
2 changed files with 35 additions and 0 deletions

View File

@ -34,6 +34,8 @@ class PagesController < ApplicationController
params[:is_frontend_view] = "true"
OrbitHelper.set_params params,current_user
OrbitHelper.set_site_locale locale
OrbitHelper.set_request_object request
OrbitHelper.render_meta_tags []
render :html => render_final_page("home",page,true).html_safe
end
@ -102,6 +104,7 @@ class PagesController < ApplicationController
end
@manifest = @key
OrbitHelper.set_params params,current_user
OrbitHelper.set_request_object request
OrbitHelper.set_site_locale locale
OrbitHelper.set_this_module_app module_app.singularize
OrbitHelper.set_page_categories categories || ["all"]
@ -396,6 +399,7 @@ class PagesController < ApplicationController
OrbitHelper.set_widget_data_count subpart.data_count
OrbitHelper.set_widget_module_app subpart.module
OrbitHelper.set_widget_item_url subpart
OrbitHelper.render_meta_tags []
OrbitHelper.set_widget_title subpart.title
OrbitHelper.set_widget_categories subpart.categories || ["all"]
OrbitHelper.set_widget_tags subpart.tags || []
@ -464,6 +468,7 @@ class PagesController < ApplicationController
if original_view != "home"
viewarea = doc.css("*[data-content='true']")[0]
viewarea.inner_html = render_to_string(original_view) rescue "<div></div>"
head[0].inner_html = OrbitHelper.meta_tags_html + head.inner_html
end
link = doc.css("link")[0]
link.attributes["href"].value = current_site.favicon.url.nil? ? "/assets/favicon.ico" : current_site.favicon.url

View File

@ -267,6 +267,14 @@ module OrbitHelper
"#{request.host_with_port}/#{locale}#{url}"
end
def self.set_request_object(request)
@site_request_object = request
end
def self.request
@site_request_object
end
def self.set_site_locale(locale)
@site_locale = locale
end
@ -351,6 +359,28 @@ module OrbitHelper
return css_html
end
def self.render_meta_tags(metas=[])
@page_meta_tags = metas
end
def self.meta_tags_html
html = ""
if !@page_meta_tags.nil?
@page_meta_tags.each do |meta|
html = html + "<meta "
meta.keys.each do |attrib|
html = html + "#{attrib}='#{self.strip_html_tags(meta[attrib])}' "
end
html = html + ">"
end
end
html
end
def self.strip_html_tags(string)
ActionView::Base.full_sanitizer.sanitize(string)
end
# ===============================================================
# Breadcrumbs
# ===============================================================