-
Notifications
You must be signed in to change notification settings - Fork 6
Specifying your own logic
Radek Kozłowski edited this page Sep 10, 2016
·
4 revisions
You can override all methods of class DynamicSitemapGenerator.
Main method which processes all items is:
/// <summary>
/// Processes all items in site under root path
/// </summary>
/// <param name="items">List of Items</param>
/// <param name="sitemapSiteConfiguration">Current sitemap configuration</param>
/// <param name="options">Url Options</param>
/// <param name="xml">Xml Text Writer object</param>
public void ProcessItems(
List<Item> items,
SitemapSiteConfiguration sitemapSiteConfiguration,
UrlOptions options,
XmlTextWriter xml);For example:
new public void ProcessItems(List<Item> items, SitemapSiteConfiguration sitemapSiteConfiguration, UrlOptions options, XmlTextWriter xml)
{
// Run base method to prepare sitemap elements for configured items
base.ProcessItems(items, sitemapSiteConfiguration, options, xml);
// Get your special items
List<Item> myItems = GetSpecialItems();
foreach (var item in myItems)
{
if (item.Versions.Count > 0)
{
// Get url for your special item
String url = GetUrlForSpecialItem(item);
// Replace host to fit configuration
if (!String.IsNullOrEmpty(sitemapSiteConfiguration.ServerHost))
{
url = ReplaceHost(url, sitemapSiteConfiguration.ServerHost);
}
// Generate url element in sitemap
GenerateUrlElement(url, item, sitemapSiteConfiguration, xml);
}
}
}