Trying nokogiri
This commit is contained in:
1 parent
f9c5ee5d18
commit
f5fd3dec7a
10 files changed
+172
-75
No files matched your search
@@ -47,7 +47,7 @@ class ApplicationController < ActionController::Base
|
||||
# Render the page
|
||||
def render_page(id = nil)
|
||||
if @item
|
||||
render :text => parse_page(@item, id)
|
||||
render :text => process_page(@item, id), :layout => 'page_layout'
|
||||
else
|
||||
render :text => '404 Not Found'
|
||||
end
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
class PagesController < ApplicationController
|
||||
|
||||
include ApplicationHelper
|
||||
|
||||
before_filter :get_item, :only => [:index_from_link, :show_from_link]
|
||||
|
||||
def index
|
||||
|
||||
@@ -107,4 +107,51 @@ module ApplicationHelper
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def process_page(page, id)
|
||||
parse_page_noko(page, id)
|
||||
end
|
||||
|
||||
def page_metas(page)
|
||||
metas = ''
|
||||
@site.page_metas.each do |meta|
|
||||
name, content = meta.get_name_content
|
||||
metas << "<meta name=#{name} content=#{content} />\n"
|
||||
end rescue nil
|
||||
return metas
|
||||
end
|
||||
|
||||
def page_title(page)
|
||||
"<title>#{page.title ? page.title[I18n.locale] : page.i18n_variable[I18n.locale]}</title>\n"
|
||||
end
|
||||
|
||||
def page_stylesheets(page)
|
||||
stylesheets = ''
|
||||
stylesheets << "<link href='/assets/bootstrap.css.erb' rel='stylesheet' type='text/css' />\n"
|
||||
stylesheets << "<link href='/assets/bootstrap-orbit.css' rel='stylesheet' type='text/css' />\n"
|
||||
stylesheets << "<link href='/assets/style.css.erb' rel='stylesheet' type='text/css' />\n"
|
||||
stylesheets << "<link href='#{page.design.reset_css.file.url}' rel='stylesheet' type='text/css' />\n" if page.design.reset_css
|
||||
stylesheets << "<link href='#{page.design.default_css.file.url}' rel='stylesheet' type='text/css' />\n" if page.design.default_css
|
||||
theme = page.design.themes.detect{ |d| d.id == page.theme_id }
|
||||
stylesheets << "<link href='#{theme.file.url}' rel='stylesheet' type='text/css' />\n" if theme
|
||||
stylesheets
|
||||
end
|
||||
|
||||
def page_javascripts(page)
|
||||
javascripts = ''
|
||||
javascripts << "<script type='text/javascript' src='/static/jquery.js'></script>\n"
|
||||
javascripts << "<script type='text/javascript' src='/static/jquery.cycle.all.latest.js'></script>\n"
|
||||
javascripts << "<script type='text/javascript' src='/static/kernel.js'></script>\n"
|
||||
javascripts << "<script type='text/javascript' src='/assets/bootstrap.js'></script>\n"
|
||||
javascripts << "<script type='text/javascript' src='/assets/jquery.tinyscrollbar.min.js'></script>\n"
|
||||
javascripts << "<script type='text/javascript' src='/assets/jquery.isotope.min.js'></script>\n"
|
||||
javascripts << "<script type='text/javascript' src='/assets/orbit-1.0.js'></script>\n"
|
||||
javascripts << "<script type='text/javascript' src='/assets/orbit_bar.js'></script>\n"
|
||||
javascripts << "<script type='text/javascript' src='/assets/event.js'></script>\n"
|
||||
page.design.javascripts.each do |js|
|
||||
# javascripts << "<script type='text/javascript' src='#{js.file.url}'></script>"
|
||||
end
|
||||
javascripts
|
||||
end
|
||||
|
||||
end
|
||||
@@ -2,6 +2,8 @@ class Layout < DesignFile
|
||||
include ParserLayout
|
||||
|
||||
attr_reader :content
|
||||
|
||||
field :body
|
||||
|
||||
embeds_one :menu
|
||||
embedded_in :design
|
||||
@@ -17,8 +19,10 @@ class Layout < DesignFile
|
||||
Layout.count > 0
|
||||
end
|
||||
|
||||
def parse_layout
|
||||
parse_layout_contents(self)
|
||||
def parse_layout
|
||||
html = Nokogiri::HTML(self.file.read)
|
||||
self.body = html.at_css("body").inner_html
|
||||
parse_body(self)
|
||||
end
|
||||
|
||||
end
|
||||
@@ -7,5 +7,9 @@ class Meta
|
||||
field :value, :default => nil
|
||||
|
||||
has_one :i18n_variable, :as => :language_value, :autosave => true, :dependent => :destroy
|
||||
|
||||
def get_name_content
|
||||
[self.key, self.value ? self.value : self.i18n_variable[I18n.locale]]
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,17 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<%= page_title(@item).html_safe %>
|
||||
<%= page_metas(@item).html_safe %>
|
||||
<%= @metas %>
|
||||
<!--[if lt IE 9]>
|
||||
<%= javascript_include_tag "html5" %>
|
||||
<![endif]-->
|
||||
<%= page_stylesheets(@item).html_safe %>
|
||||
<%= page_javascripts(@item).html_safe %>
|
||||
</head>
|
||||
<body>
|
||||
<%= yield %>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user