Sha256: 73e825b77687619257f64af92cc85165e2d4bd3017de34243ae43d521410b27a
Contents?: true
Size: 1.61 KB
Versions: 4
Compression:
Stored size: 1.61 KB
Contents
module MenuHelper def display_menu_front(menu, options = {}, &block) if !menu.nil? and menu.active? lis = get_menu_li(menu.menu_links, options, &block) content_tag :ul, lis.join , :class => options[:ul_class] end end alias_method :display_menu, :display_menu_front private def get_li_class(menu_link, options) if options[:li_current_class] && # request uri equals menu_link url or one of its children url (menu_link.url_match?(request.request_uri) || # request page equals page link target or one of its children page link targe (options[:page] && menu_link.is_a?(PageLink) && menu_link.url_match?(options[:page]))) options[:li_current_class] else options[:li_class] end end def get_menu_li(menu_links, options, &block) lis = [] links = menu_links.find_all_by_active(true) links.each_with_index do |menu_link,index| if menu_link.active? li_class = get_li_class(menu_link, options) li_class = li_class ? [li_class] : [] li_class << 'first' if index == 0 li_class << 'last' if index == links.size - 1 li_link = if block_given? capture(menu_link,&block) else link_to(menu_link.title,menu_link.url, :popup => menu_link.popup) end children = menu_link.children unless children.empty? li_link += content_tag :ul, get_menu_li(children, options, &block).join , :class => options[:ul_class] end lis << content_tag(:li, li_link, :class => (li_class.empty? ? nil : li_class.join(' ')) ) end end return lis end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
forgeos_cms-1.9.4 | app/helpers/menu_helper.rb |
forgeos_cms-1.9.2 | app/helpers/menu_helper.rb |
forgeos_cms-1.9.1 | app/helpers/menu_helper.rb |
forgeos_cms-1.9.0 | app/helpers/menu_helper.rb |