34 lines
553 B
Ruby
34 lines
553 B
Ruby
|
class Layout < DesignFile
|
||
|
include ParserLayout
|
||
|
|
||
|
attr_reader :content
|
||
|
|
||
|
field :body
|
||
|
|
||
|
embeds_one :menu
|
||
|
belongs_to :design
|
||
|
embeds_many :layout_parts
|
||
|
|
||
|
before_save :parse_layout
|
||
|
after_save :save_pages
|
||
|
|
||
|
def content
|
||
|
self.file.read.force_encoding("UTF-8") rescue ''
|
||
|
end
|
||
|
|
||
|
def self.exist_one?
|
||
|
Layout.count > 0
|
||
|
end
|
||
|
|
||
|
def parse_layout
|
||
|
html = Nokogiri::HTML(self.file.read)
|
||
|
self.body = html.at_css("body").inner_html
|
||
|
parse_body(self)
|
||
|
end
|
||
|
|
||
|
def save_pages
|
||
|
self.design.pages.each(&:generate_parts)
|
||
|
end
|
||
|
|
||
|
end
|