Question

J’ai essayé de trouver un moyen d’étendre la chapelure de SharePoint sur plusieurs collections de sites et j’ai été incapable de le trouver. Je peux définir le paramètre Connexion au site portail de la collection de sites afin qu'il soit lié à sa collection de sites parent. Mais cela ne montrera pas qu'une seule collection de sites parent. Voici un exemple du type de configuration que je cherche à créer.

Le site racine, Intranet, possède un chemin d'accès géré appelé sites. Sous les sites, une collection de sites appelée RH est située dans / sites / hr / . Sous HR, il existe un autre chemin géré, appelé sensibilisation. Dans le domaine de la diffusion externe, une collection de sites intitulée Recrutement est disponible dans / sites / hr / sensibilisation / recrutement / . Ainsi, lorsqu'un utilisateur se trouve sur le site de recrutement, je souhaite qu'il visualise Intranet > HR > Recruter comme fil d'Ariane.

Exemple en tant que sitemap:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0">
    <siteMapNode title="Intranet" url="http://intranet/Pages/Default.aspx">
    <siteMapNode title="HR" url="http://intranet/sites/hr/default.aspx">
            <siteMapNode title="Recruiting" url="http://inranet/hr/outreach/recruiting/default.aspx"/>
        </siteMapNode>
    </siteMapNode>
</siteMap>

Définition de la connexion du site portail lors du recrutement, je peux obtenir HR > Recrutement lorsque vous recrutez et configurez la connexion du site portail sur HR, je peux obtenir Intranet > HR lorsque vous vous trouvez sur le site HR. Je ne peux pas cependant.

J'ai essayé d'utiliser SPXmlContentMapProvider pour lire le fichier sitemap, mais je n'ai pas réussi à l'afficher, mais je l'ai défini comme SiteMapProvider . pour le chemin SiteMapPath de GlobalNavigationSiteMap dans default.master . ( GlobalNavigationSiteMap est le chemin SiteMapPath qui crée les miettes de pain en haut du site). Cependant, la même architecture fonctionne bien sur une application .NET générique, mais ne semble pas fonctionner sous SharePoint. J'ai également correctement enregistré le sitemap en tant que fournisseur par défaut et suis en mesure de l'utiliser pour remplacer le TopNavigationMenu . ( TopNavigationMenu est le menu de navigation global / barre des boutons en haut de la présentation SharePoint par défaut).

Existe-t-il un moyen de créer cette fonctionnalité dans SharePoint?

Était-ce utile?

La solution

Puisque vous implémentez une page maître personnalisée (ou personnalisez celle par défaut), pourquoi ne pas remplacer le contrôle du fil d'Ariane par le vôtre? Ou créez un fournisseur de sitemap personnalisé si vous devez associer votre sitemap à la carte générée par Sharepoint.

Autres conseils

J'ai beaucoup réfléchi à la raison pour laquelle vous ne pouvez pas utiliser SPXmlContentMapProvider et je pense que cela dépend de la manière dont SharePoint rend et utilise les chemins gérés. Ma théorie est la suivante:

Tous les emplacements de la collection de sites dans SharePoint sont des chemins d'accès gérés. Étant donné que le contenu est réellement stocké dans la base de données et qu'IIS présente les informations sous la forme d'un dossier, les pages ne sont pas situées dans des dossiers. Au lieu de cela, l'emplacement se trouve quelque part dans le champ "ether". de SharePoint et quel que soit l'emplacement SPXmlContentMapProvider , il se trouve lui-même, c'est ailleurs que les entrées du fichier xml. Maintenant, Request.Url sait où vous vous trouvez, mais cette information ne semble pas avoir été présentée à SPXmlContentMapProvider .

J'ai également mis au point un moyen de contourner le problème. Vous pouvez modifier manuellement la page maître de chaque collection de sites pour coller le chemin de navigation de cette collection de sites devant GlobalNavigationSiteMap . Ainsi, chaque collection de sites avec cette exigence de navigation doit alors disposer de sa propre page maître personnalisée. C'est une façon laide et brutale de faire des choses que je n'ai pas l'intention de mettre en œuvre. Cela fonctionnerait, mais ce serait un cauchemar d’entretien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top