Module: SimpleNavigation::Helpers
- Defined in:
- lib/simple_navigation/rendering/helpers.rb
Overview
View helpers to render the navigation.
Use render_navigation as following to render your navigation:
-
call
render_navigation
without :level option to render your complete navigation as nested tree. -
call
render_navigation(:level => x)
to render a specific navigation level (e.g. :level => 1 to render your primary navigation, :level => 2 to render the sub navigation and so forth) -
call
render_navigation(:level => 2..3)
to render navigation levels 2 and 3). For example, you could use render_navigation(:level => 1) to render your primary navigation as tabs and render_navigation(:level => 2..3) to render the rest of the navigation as a tree in a sidebar.
Examples (using Haml)
#primary_navigation= render_navigation(:level => 1)
#sub_navigation= render_navigation(:level => 2)
#nested_navigation= render_navigation
#top_navigation= render_navigation(:level => 1..2)
#sidebar_navigation= render_navigation(:level => 3)
Instance Method Summary collapse
-
#active_navigation_item_name(options = {}) ⇒ Object
Returns the name of the currently active navigation item belonging to the specified level.
-
#render_navigation(options = {}) ⇒ Object
Renders the navigation according to the specified options-hash.
Instance Method Details
#active_navigation_item_name(options = {}) ⇒ Object
Returns the name of the currently active navigation item belonging to the specified level.
The following options are supported:
-
:level
- defaults to :all which returns the most specific/deepest selected item (the leaf). Specify a specific level to only look for the selected item in the specified level of navigation (e.g. :level => 1 for primary_navigation etc…). -
:context
- specifies the context for which you would like to find the active navigation item. Defaults to :default which loads the default navigation.rb (i.e. config/navigation.rb). If you specify a context then the plugin tries to load the configuration file for that context, e.g. if you callactive_navigation_item_name(:context => :admin)
the file config/admin_navigation.rb will be loaded and used for searching the active item. -
:items
- you can specify the items directly (e.g. if items are dynamically generated from database). See SimpleNavigation::ItemsProvider for documentation on what to provide as items.
Returns an empty string if no active item can be found for the specified options
52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/simple_navigation/rendering/helpers.rb', line 52 def (={}) = apply_defaults() load_config() [:level] = :leaves if [:level] == :all active_item_container = SimpleNavigation.active_item_container_for([:level]) if active_item_container && !active_item_container.selected_item.nil? active_item_container.selected_item.name else '' end end |
#render_navigation(options = {}) ⇒ Object
Renders the navigation according to the specified options-hash.
The following options are supported:
-
:level
- defaults to :all which renders the the sub_navigation for an active primary_navigation inside that active primary_navigation item. Specify a specific level to only render that level of navigation (e.g. :level => 1 for primary_navigation etc…). Specifiy a Range of levels to render only those specific levels (e.g. :level => 1..2 to render both your first and second levels, maybe you want to render your third level somewhere else on the page) -
:expand_all
- defaults to false. If set to true the all specified levels will be rendered as a fully expanded tree (always open). This is useful for javascript menus like Superfish. -
:context
- specifies the context for which you would render the navigation. Defaults to :default which loads the default navigation.rb (i.e. config/navigation.rb). If you specify a context then the plugin tries to load the configuration file for that context, e.g. if you callrender_navigation(:context => :admin)
the file config/admin_navigation.rb will be loaded and used for rendering the navigation. -
:items
- you can specify the items directly (e.g. if items are dynamically generated from database). See SimpleNavigation::ItemsProvider for documentation on what to provide as items. -
:renderer
- specify the renderer to be used for rendering the navigation. Either provide the Class or a symbol matching a registered renderer. Defaults to :list (html list renderer).
34 35 36 37 38 39 |
# File 'lib/simple_navigation/rendering/helpers.rb', line 34 def (={}) = apply_defaults() load_config() active_item_container = SimpleNavigation.active_item_container_for([:level]) active_item_container.render() unless active_item_container.nil? end |