Sha256: 0580acf4b1025657b27cbfa25e28bb55a4894de39761accd8e0989ea9161d5a4

Contents?: true

Size: 1004 Bytes

Versions: 12

Compression:

Stored size: 1004 Bytes

Contents

module MenuHelper
  
  def menu_nav(name)
    items = Menu.find_by_name(name).menu_items
    html = ""
  	html << "<ul id='#{ name }_nav'>"
    items.each do |item|
      next if (!item.menuable.published? && !user_logged_in? rescue false) # add published method to any menuable object
      html << "<li class='#{item.label_text.gsub(" ","_").downcase}'>"
      if item.menuable_id.nil?
        html << link_to(item.label_text, eval("#{item.menuable_type.tableize}_path()"))
      else
        m = item.menuable
        if item.link != "" && !item.link.nil?
          html << link_to(item.label_text, item.link)
        elsif m.class == Page && m.homepage?
          html << link_to(item.label_text, "/")
        else
          html << link_to(item.label_text, eval("#{m.class.to_s.tableize.singularize}_path(m)"))
        end
        html << page_nav(m.children) if m.class == Page && !m.children.empty?
      end      
      html << "</li>"
    end
    html << "</ul>"
    html.html_safe
  end
  
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
soapbox-0.3.1 app/helpers/menu_helper.rb
soapbox-0.3.0 app/helpers/menu_helper.rb
soapbox-0.2.24 app/helpers/menu_helper.rb
soapbox-0.2.23 app/helpers/menu_helper.rb
soapbox-0.2.21 app/helpers/menu_helper.rb
soapbox-0.2.20 app/helpers/menu_helper.rb
soapbox-0.2.18 app/helpers/menu_helper.rb
soapbox-0.2.16 app/helpers/menu_helper.rb
soapbox-0.2.15 app/helpers/menu_helper.rb
soapbox-0.2.14 app/helpers/menu_helper.rb
soapbox-0.2.12 app/helpers/menu_helper.rb
soapbox-0.2.11 app/helpers/menu_helper.rb