A
Provider used to generate a search engine friendly sitemap. The sitemap provider allows module admins to plugin sitemap logic for individual modules. Like other providers, the sitemap provider is set in the web.config. One thing, however, that is different with this provider type versus most others is that individual module providers can be added on an as-needed basis. The purpose of the individual module providers is to allow modules with multiple content pages within a single module instance to expose those content pages as pages within the sitemap. A good example of three types of modules that can benefit from individual module sitemap providers are: blogs, articles and forums.
Basic configuration of the search engine sitemap provider can be controlled via the
Search Engine Sitemap Module. Also, page level settings can be controlled by
editing a pages site map priority.
How It Works
When someone (or something) calls your DotNetNuke sitemap page (http://www.domain.com/Sitemap.aspx) the request is intercepted by an HttpHandler (this is set in your web.config). This handler will then run its ProcessRequest method. This method will look to see if a sitemap.xml file exists, and if not, will call BuildSiteMap to create one. BuildSiteMap is part of the Core Library project and basically what it does is the following:
- Checks cache settings configured via the Sitemap module (located under Admin –> Search Engine SiteMap in most installs)
- Loops through all Sitemap providers one by one to build a collection of URLs (providers are stored in web.config, visible in same sitemap module)
- Creates the sitemap.xml file (which is stored in Portals/PORTALID/Sitemap/ folder)
Something worth mentioning here is that there is a 50,000 page limit per sitemap file (the forum on this site alone would go above that limit) and that multiple files will need to be created if you go above this limit. However, the core will handle this for you and create multiple files if necessary. With the basic flow covered, lets dive into what we need to create one for our own module.
Topic Links
Creating a Sitemap Provider For Your Module.