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