module Knitkit::Extensions::Railties::ActionView::Helpers::MenuHelper

Public Instance Methods

menu_active?(section, selected_section_parent) click to toggle source
menu_item_selected(menu_item) click to toggle source
render_menu(contents, options={}) click to toggle source

options menu

- use a designed layout not sections

layout

- use defined layout
# File lib/knitkit/extensions/railties/action_view/helpers/menu_helper.rb, line 29
def render_menu(contents, options={})
  locals = {:contents => contents}

  if options[:locals]
    locals = locals.merge(options[:locals])
  end

  if options[:menu]
    menu = WebsiteNav.find_by_name_and_website_id(options[:menu], @website.id)
    raise "Menu with name #{options[:menu]} does not exist" if menu.nil?
    layout = options[:layout] ? "menus/#{options[:layout]}" : "menus/knitkit/default_menu"
    locals[:menu_items] = menu.website_nav_items.positioned
  else
    layout = options[:layout] ? "menus/#{options[:layout]}" : "menus/knitkit/default_section_menu"
  end

  render :partial => layout, :locals => locals
end
render_sub_menu(contents, options={}) click to toggle source

options menu

- use a designed layout not sections

menu_item

- menu item title to start at

section_unique_name

- section to begin at

layout

- use defined layout
# File lib/knitkit/extensions/railties/action_view/helpers/menu_helper.rb, line 57
def render_sub_menu(contents, options={})
  locals = {:contents => contents}
  if options[:menu]
    menu = WebsiteNav.find_by_name_and_website_id(options[:menu], @website.id)
    raise "Menu with name #{options[:menu]} does not exist" if menu.nil?
    locals[:menu_items] = (options[:menu_item].nil? ? menu.all_menu_items.find { |item| menu_item_selected(item) }.positioned_children : menu.all_menu_items.find { |item| item.title = options[:menu_item] }.positioned_children)
    raise "No menu items exist" if locals[:menu_items].nil?
    layout = options[:layout] ? "menus/#{options[:layout]}" : "menus/knitkit/default_sub_menu"
  else
    section = options[:section_unique_name].nil? ? @website_section : WebsiteSection.find_by_internal_identifier(options[:section_unique_name])
    locals[:section] = section
    layout = options[:layout] ? "menus/#{options[:layout]}" : "menus/knitkit/default_sub_section_menu"
  end

  render :partial => layout, :locals => locals
end