Module: Knitkit::Extensions::Railties::ActionView::Helpers::MenuHelper
- Defined in:
- lib/knitkit/extensions/railties/action_view/helpers/menu_helper.rb
Instance Method Summary collapse
- #menu_active?(section, selected_section_parent) ⇒ Boolean
- #menu_item_selected(menu_item) ⇒ Object
-
#render_menu(contents, options = {}) ⇒ Object
options menu - use a designed layout not sections layout - use defined layout.
-
#render_sub_menu(contents, options = {}) ⇒ Object
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.
Instance Method Details
#menu_active?(section, selected_section_parent) ⇒ Boolean
8 9 10 11 |
# File 'lib/knitkit/extensions/railties/action_view/helpers/menu_helper.rb', line 8 def (section, selected_section_parent) (!@website_section.nil? && section.id == @website_section.id) or (!selected_section_parent.nil? and selected_section_parent.id == section.id) end |
#menu_item_selected(menu_item) ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/knitkit/extensions/railties/action_view/helpers/menu_helper.rb', line 13 def () result = request.env['REQUEST_PATH'] == .path unless result .descendants.each do |child| result = request.env['REQUEST_PATH'] == child.path break if result end end result end |
#render_menu(contents, options = {}) ⇒ Object
options menu
-
use a designed layout not sections
layout
-
use defined layout
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/knitkit/extensions/railties/action_view/helpers/menu_helper.rb', line 29 def (contents, ={}) locals = {:contents => contents} if [:locals] locals = locals.merge([:locals]) end if [:menu] = WebsiteNav.find_by_name_and_website_id([:menu], @website.id) raise "Menu with name #{[:menu]} does not exist" if .nil? layout = [:layout] ? "menus/#{[:layout]}" : "menus/knitkit/default_menu" locals[:menu_items] = .website_nav_items.positioned else layout = [:layout] ? "menus/#{[:layout]}" : "menus/knitkit/default_section_menu" end render :partial => layout, :locals => locals end |
#render_sub_menu(contents, options = {}) ⇒ Object
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
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/knitkit/extensions/railties/action_view/helpers/menu_helper.rb', line 57 def (contents, ={}) locals = {:contents => contents} if [:menu] = WebsiteNav.find_by_name_and_website_id([:menu], @website.id) raise "Menu with name #{[:menu]} does not exist" if .nil? locals[:menu_items] = ([:menu_item].nil? ? ..find { |item| (item) }.positioned_children : ..find { |item| item.title = [:menu_item] }.positioned_children) raise "No menu items exist" if locals[:menu_items].nil? layout = [:layout] ? "menus/#{[:layout]}" : "menus/knitkit/default_sub_menu" else section = [:section_unique_name].nil? ? @website_section : WebsiteSection.find_by_internal_identifier([:section_unique_name]) locals[:section] = section layout = [:layout] ? "menus/#{[:layout]}" : "menus/knitkit/default_sub_section_menu" end render :partial => layout, :locals => locals end |