module ParserCommon include ActionView::Helpers::TagHelper def menu_level(page, current_page, current, menu, edit = false) res = '' if page.visible_children.size > 0 res << "" end res end def menu_li(page, current_page, current, menu, i, edit) res = "" end # ad_banners def parse_ad_banners_edit(body = nil, page = nil, edit=nil) body.css('ad_banner').each do |banner| res = '' ad_banner = AdBanner.find(banner["id"]) rescue nil if ad_banner res << "" res << "
" res << "" res << "
" printable_ad_images = [] ad_banner.ad_images.each do |ad_image| if ad_image.display? ad_image.weight.times do printable_ad_images << ad_image end end end printable_ad_images.shuffle! hide = printable_ad_images.size > 1 printable_ad_images.each do |ad_image| #TODO Need Reflact res << "" end res << "
" res << "
" end fragment = Nokogiri::HTML::DocumentFragment.new(body, res) banner.swap(fragment) end end # page_images def parse_images_edit(body, page, edit=nil) body.css('.page_image').each do |page_image| # image = page.custom_images.detect{|image| image.name.eql?(tag.attr['name']) } # image = page.design.custom_images.detect{|image| image.name.eql?(tag.attr['name']) } unless image image = page.design.images.detect{|image| image.name.eql?(File.basename(page_image['src'])) } unless image if image res = "' end fragment = Nokogiri::HTML::DocumentFragment.new(body, res) page_image.swap(fragment) end end # page_menu def parse_menu_edit(body, page, edit=nil) page_menu = body.css('.page_menu').first home = get_homepage menu = page.design.layout.menu fragment = Nokogiri::HTML::DocumentFragment.new(body, menu_level(home, page, 1, menu, edit)) page_menu.swap(fragment) end # sub_menus def parse_sub_menus_edit(body = nil, page = nil, edit=nil) body.css('sub_menu').each do |sub_menu| menu_page = Page.find(sub_menu['id']) rescue nil res = '' if menu_page && menu_page.visible_children.size > 0 res << "
" res << "

#{menu_page.title}

" res << "" res << "" res << "
" end fragment = Nokogiri::HTML::DocumentFragment.new(body, res) sub_menu.swap(fragment) end end # breadcrumb def parse_breadcrumbs_edit(body = nil, page = nil, edit=nil) body.css('breadcrumb').each do |breadcrumb| ancestors = Page.find(page.id).ancestors_and_self.map{|m|m.title} rescue nil ancestors.delete_at(0) res = '' if ancestors res << "
" res << "