Class Tags::SitemapTag
In: lib/webgen/plugins/tags/sitemap.rb
Parent: DefaultTag
DefaultTag BreadcrumbTrailTag MetaTag RelocatableTag IncludeFileTag LangbarTag DateTag ResourceTag WikiLinkTag SitemapTag CustomVarTag BlockTag ExecuteCommandTag DownloadTag MenuTag HtmlMetaInfo Webgen::Plugin TagProcessor lib/webgen/plugins/tags/date.rb lib/webgen/plugins/tags/menu.rb lib/webgen/plugins/tags/sitemap.rb lib/webgen/plugins/tags/wikilink.rb lib/webgen/plugins/tags/executecommand.rb lib/webgen/plugins/tags/langbar.rb lib/webgen/plugins/tags/breadcrumbtrail.rb lib/webgen/plugins/tags/includefile.rb lib/webgen/plugins/tags/relocatable.rb lib/webgen/plugins/tags/meta.rb lib/webgen/plugins/tags/htmlmetainfo.rb lib/webgen/plugins/tags/download.rb lib/webgen/plugins/tags/block.rb lib/webgen/plugins/tags/tag_processor.rb lib/webgen/plugins/coreplugins/resourcemanager.rb lib/webgen/plugins/tags/customvar.rb Tags dot/m_39_1.png

Generates a sitemap. The sitemap contains the hierarchy of all pages on the web site.

Methods

Public Instance methods

[Source]

    # File lib/webgen/plugins/tags/sitemap.rb, line 44
44:     def process_tag( tag, chain )
45:       root = Node.root( chain.last )
46:       output_node( root, chain.last )
47:     end

Private Instance methods

[Source]

    # File lib/webgen/plugins/tags/sitemap.rb, line 53
53:     def output_node( node, src_node )
54:       nodes = node.select do |child|
55:         child.is_directory? || (child.kind_of?( FileHandlers::PageHandler::PageNode ) && child['lang'] == src_node['lang'])
56:       end
57:       return '' if nodes.empty?
58: 
59:       out = "<#{param( 'levelTag' )}>"
60:       temp = ''
61:       nodes.sort.each do |child|
62:         next if !child.is_directory? &&
63:           ((param( 'honorInMenu' ) && !child['inMenu']) ||
64:            (!node['indexFile'].nil? && node['indexFile'].node_info[:pagename] == child.node_info[:pagename] && !node.parent.nil?))
65: 
66:         subout = output_node( child, src_node )
67:         link = child.link_from( src_node, :context => { :caller => self.class.plugin_name } ) if !child.is_directory? || subout != ''
68: 
69:         temp += "<#{param( 'itemTag' )}>#{link}" if !child.is_directory? || subout != ''
70:         temp += subout if child.is_directory?
71:         temp += "</#{param( 'itemTag' )}>" if !child.is_directory? || subout != ''
72:       end
73: 
74:       out += temp
75:       out += "</#{param( 'levelTag' )}>"
76: 
77:       (temp == '' ? temp : out)
78:     end

[Validate]