Fournit un HttpHandler ASP.NET pour aider à générer un fichier sitemap.xml dynamique
Il existe également une extension spécifique à Umbraco pour Sitemapify qui prend en charge la création du plan du site à partir du contenu du CMS Umbraco. Voir Sitemapify.Umbraco pour plus de documentation
Install-Package Sitemapify
Le processus d'installation doit avoir mis à jour votre fichier web.config pour inclure un gestionnaire http pour traiter les requêtes vers sitemap.xml
, il devrait ressembler à :
< configuration > < system .webServer> < handlers > < add name = " Sitemapify " path = " sitemap.xml " verb = " GET " type = " Sitemapify.SitemapifyHttpHandler, Sitemapify " /> handlers > system .webServer> configuration >
Le gestionnaire de plan de site peut être personnalisé en modifiant la configuration de base via la classe de configuration statique Sitemapify.Configure
.
Sitemapify . Configure ( c => c
. UsingContentProvider ( new YourContentProvider ( ) )
. UsingCacheProvider ( new YourCacheProvider ( ) )
. UsingDocumentBuilder ( new YourDocumentBuilder ( ) )
) ;
Sitemapify est divisé en fournisseurs responsables des éléments de génération du plan du site.
ISitemapifyContentProvider
) Une implémentation d'un fournisseur de contenu fournit à Sitemapify une collection d'objets SitemapUrl
représentant les nœuds à afficher dans le plan du site.
public interface ISitemapContentProvider
{
IEnumerable < SitemapUrl > GetSitemapUrls ( ) ;
bool Cacheable { get ; }
DateTime CacheUntil { get ; }
}
ISitemapifyCacheProvider
)Une implémentation d'un fournisseur de cache permet de personnaliser le mécanisme de mise en cache utilisé pour optimiser la livraison du plan du site au navigateur. Une fois le document de plan du site généré, il sera mis en cache via l'implémentation configurée de cette interface.
public interface ISitemapCacheProvider
{
void Add ( XDocument sitemapContent , DateTimeOffset ? expires ) ;
bool IsCached { get ; }
XDocument Get ( ) ;
void Remove ( ) ;
}
ISitemapDocumentBuilder
) Une implémentation de ISitemapDocumentBuilder
permet une personnalisation complète du document de plan de site lui-même. L'implémentation par défaut génère un document de plan de site entièrement conforme basé sur le sitemap.xsd officiel.
public interface ISitemapDocumentBuilder
{
XDocument BuildSitemapXmlDocument ( IEnumerable < SitemapUrl > sitemapUrls ) ;
}
Cette version de Sitemapify.Umbraco prend en charge Umbraco 8.1+. Pour la prise en charge d'Umbraco v7.*, veuillez vous référer à la version 0.5.2.
Installez d'abord l'extension Umbraco :
Install-Package Sitemapify.Umbraco
Une fois que vous avez installé Sitemapify.Umbraco, vous pouvez créer un composant pour configurer Sitemapify afin d'utiliser le "fournisseur de contenu Umbraco" disponible pour générer l'URL du plan du site qui forme le sitemap.xml.
public class SitemapifyComponent : IComponent
{
public void Initialize ( )
{
Configure . With ( config => config . UsingContentProvider ( new SitemapifyUmbracoContentProvider ( ) ) ) ;
}
public void Terminate ( ) { }
}
Vous devrez également créer un UserComposer pour enregistrer le composant.
public class SitemapifyComposer : IUserComposer
{
public void Compose ( Composition composition )
{
composition . Components ( ) . Append < SitemapifyComponent > ( ) ;
}
}
Par défaut, le fournisseur de contenu Umbraco recherchera les propriétés de nœud de contenu avec des noms spécifiques pour déterminer si un nœud particulier doit être inclus dans le fichier de plan de site généré. Ces noms de propriété sont :
umbracoNaviHide
- True/False pour déterminer si ce nœud est inclus (par défaut : false)sitemapifyExcludeChildren
- True/False pour déterminer s'il faut ignorer tous les nœuds enfants en dessous de ce nœud (par défaut : false)Si vous souhaitez modifier ces alias de propriété, vous pouvez les remplacer via les paramètres de l'application :
< appSettings > < add key = " Sitemapify.Umbraco:ExcludedFromSitemapPropertyAlias " value = " newPropertyAlias " /> < add key = " Sitemapify.Umbraco:ExcludedChildrenFromSitemapPropertyAlias " value = " anotherPropertyAlias " /> appSettings >