Class MenuStyles::DefaultMenuStyle
In: lib/webgen/plugins/menustyles/default.rb
Parent: Webgen::HandlerPlugin
DefaultMenuStyle HorizontalDropdownMenuStyle SectionMenuStyle VerticalDropdownMenuStyle HorizontalMenuStyle VerticalMenuStyle Webgen::HandlerPlugin lib/webgen/plugins/menustyles/section.rb lib/webgen/plugins/menustyles/horizontal.rb lib/webgen/plugins/menustyles/default.rb lib/webgen/plugins/menustyles/vertical_dropdown.rb lib/webgen/plugins/menustyles/vertical.rb lib/webgen/plugins/menustyles/horizontal_dropdown.rb MenuStyles dot/m_46_0.png

Methods

Public Instance methods

[Source]

    # File lib/webgen/plugins/menustyles/default.rb, line 38
38:     def build_menu( src_node, menu_tree, options )
39:       @options = options
40:       internal_build_menu( src_node, menu_tree )
41:     end

[Source]

    # File lib/webgen/plugins/menustyles/default.rb, line 43
43:     def internal_build_menu( src_node, menu_tree )
44:       raise NotImplementedErorr
45:     end

[Source]

    # File lib/webgen/plugins/menustyles/default.rb, line 47
47:     def param( name, plugin = nil )
48:       if defined?( @options ) && !@options.nil? && @options.kind_of?( Hash ) && @options.has_key?( name ) &&
49:           self.class.ancestor_classes.any? {|klass| klass.config.params.has_key?( name )}
50:         @options[name]
51:       else
52:         super
53:       end
54:     end

Protected Instance methods

Returns style information (node is selected, …) and a link from src_node to node.

[Source]

    # File lib/webgen/plugins/menustyles/default.rb, line 61
61:     def menu_item_details( src_node, node )
62:       styles = []
63:       styles << param( 'submenuClass' ) if node.is_directory?
64:       styles << param( 'submenuInHierarchyClass' ) if node.is_directory? && src_node.in_subtree_of?( node )
65:       styles << param( 'selectedMenuitemClass' ) if node == src_node
66: 
67:       style = "class=\"#{styles.join(' ')}\"" if styles.length > 0
68:       link = node.link_from( src_node, :context => {
69:                                :caller => self.class.plugin_name,
70:                                :selected => (node == src_node),
71:                                :directory => node.is_directory?,
72:                                :inHierarchy => node.is_directory? && src_node.in_subtree_of?( node )
73:                              } )
74: 
75:       return style, link
76:     end

[Validate]