Fix Nokogiri when '.first' returns nothing

This commit is contained in:
chris 2012-11-20 12:00:18 +08:00
parent 747b0d4620
commit 3beed406a7
1 changed files with 16 additions and 8 deletions

View File

@ -112,10 +112,14 @@ module ParserCommon
# page_menu # page_menu
def parse_menu(body, page, edit=nil) def parse_menu(body, page, edit=nil)
page_menu = body.css('.page_menu').first page_menu = body.css('.page_menu').first
home = get_homepage if page_menu
menu = page.design.layout.menu home = get_homepage
fragment = Nokogiri::HTML::DocumentFragment.new(body, menu_level(home, page, 1, menu, edit)) menu = page.design.layout.menu
page_menu.swap(fragment) fragment = Nokogiri::HTML::DocumentFragment.new(body, menu_level(home, page, 1, menu, edit))
page_menu.swap(fragment)
else
''
end
end end
# sub_menus # sub_menus
@ -173,10 +177,14 @@ module ParserCommon
# sitemap # sitemap
def parse_sitemaps(body = nil, page = nil, edit=nil) def parse_sitemaps(body = nil, page = nil, edit=nil)
sitemap = body.css('sitemap').first sitemap = body.css('sitemap').first
url = admin_site_sitemap_frontend_path(@site) if sitemap
options = "?inner=true" url = admin_site_sitemap_frontend_path(@site)
fragment = Nokogiri::HTML::DocumentFragment.new(body, "<div class='dymanic_load' path='#{url + options}'></div>") options = "?inner=true"
sitemap.swap(fragment) fragment = Nokogiri::HTML::DocumentFragment.new(body, "<div class='dymanic_load' path='#{url + options}'></div>")
sitemap.swap(fragment)
else
''
end
end end
# page_contents # page_contents