33 lines
1.5 KiB
Ruby
33 lines
1.5 KiB
Ruby
class PageContentsController < OrbitAdminController
|
|
def index
|
|
params = OrbitHelper.params
|
|
if params["wiki"].present?
|
|
page = WikiPage.where(:uid => params["wiki"]).first
|
|
name = page.title rescue ""
|
|
html = page.content rescue ""
|
|
url_to_edit = OrbitHelper.user_can_edit?(page) ? "/admin/wiki_pages/#{page.id}/edit?page_id=#{page.page.id.to_s}" : ""
|
|
else
|
|
page = Page.where(:page_id => params[:page_id]).first
|
|
name = page.name rescue ""
|
|
html = page.page_contexts.order(:version=>-1).first.content rescue ""
|
|
url_to_edit = OrbitHelper.user_can_edit?(page) ? "/admin/page_contents/new?page_id=#{page.id.to_s}" : ""
|
|
end
|
|
request = OrbitHelper.request
|
|
meta_desc = html.nil? ? "" : ActionView::Base.full_sanitizer.sanitize(html)[0..200]
|
|
doc = Nokogiri::HTML( html )
|
|
img_srcs = doc.css('img').map{ |i| i['src'] }
|
|
metas = [{"property" => "og:title", "content" => name},{"property" => "og:site_name", "content" => Site.first.title},{"property" => "og:url", "content" => request.original_url},{"property" => "og:description", "content" => meta_desc},{"property" => "og:type", "content" => "Article"}]
|
|
if img_srcs.count > 0
|
|
metas << {"property" => "og:image", "content" => "#{request.base_url}#{img_srcs[0]}"}
|
|
end
|
|
OrbitHelper.render_meta_tags(metas)
|
|
|
|
{
|
|
"html" => html,
|
|
"title" => name,
|
|
"view_count" => (page.view_count rescue ""),
|
|
"view-count-head" =>t('page_content.view_count'),
|
|
"url_to_edit" => url_to_edit
|
|
}
|
|
end
|
|
end |