カスタムSharePointサイトのxmlテンプレートがあります。
サイトテンプレートに基づいてカスタムサイトを作成するときのSharePoint。含まれる機能:
<Feature ID="22A9EF51-737B-4ff2-9346-694633FE4416">
<!-- Publishing -->
<Properties xmlns="http://schemas.microsoft.com/sharepoint/">
<!--<Property Key="ChromeMasterUrl" Value="~SiteCollection/_catalogs/masterpage/my.master" />-->
<Property Key="WelcomePageUrl" Value="$Resources:osrvcore,List_Pages_UrlName;/default.aspx" />
<Property Key="PagesListUrl" Value="" />
<Property Key="SimplePublishing" Value="true" />
<!--<Property Key="DefaultPageLayout" Value="~SiteCollection/_catalogs/masterpage/my.aspx"/>-->
<Property Key="EnableApprovalWorkflowOnDocuments" Value="false"/>
<Property Key="EnableApprovalWorkflowOnImages" Value="false"/>
<Property Key="EnableApprovalWorkflowOnPages" Value="false"/>
<Property Key="EnableModerationOnDocuments" Value="false"/>
<Property Key="EnableModerationOnImages" Value="false"/>
<Property Key="EnableModerationOnPages" Value="true"/>
<Property Key="EnableSchedulingOnDocuments" Value="false"/>
<Property Key="EnableSchedulingOnImages" Value="false"/>
<Property Key="EnableSchedulingOnPages" Value="true"/>
<Property Key="RequireCheckoutOnDocuments" Value="false"/>
<Property Key="RequireCheckoutOnImages" Value="false"/>
<Property Key="RequireCheckoutOnPages" Value="false"/>
<Property Key="VersioningOnPages" Value="MajorAndMinor"/>
</Properties>
</Feature>
<Feature ID="541F5F57-C847-4e16-B59A-B31E90E6F9EA">
<!-- Per-Web Portal Navigation Properties-->
<Properties xmlns="http://schemas.microsoft.com/sharepoint/">
<Property Key="InheritGlobalNavigation" Value="false"/>
<Property Key="IncludeSubSites" Value="false"/>
<Property Key="IncludePages" Value="false"/>
</Properties>
</Feature>
そして、ノードを追加しようとしている機能があります。
private void ProvisionQuickLaunchLinks(SPWeb web)
{
var serverUrl = web.ServerRelativeUrl;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite impSite = new SPSite(web.Site.ID))
{
RemoveExistingNodes(web, impSite);
using (SPWeb impWeb = impSite.OpenWeb(web.ID))
{
if (impWeb != null && impWeb.Exists)
{
try
{
var isRoot = SiteHelper.GetIsProjectRootSite(web);
impWeb.AllowUnsafeUpdates = true;
AddQuickLink(impWeb, "My link", "/Lists/MyList/Forms/AllItems.aspx", Constants.Navigation.NavigationLinkKey, "/_layouts/temp/temp/img/menu_icon3.png");
impWeb.Update();
}
catch (Exception ex)
{
LoggingService.WriteError(ex, "Cannot remove links to navigation menu");
}
finally
{
if (impWeb != null)
{
impWeb.AllowUnsafeUpdates = false;
}
}
}
}
}
});
}
追加する前に、私はすべてを削除しています:
private static void RemoveExistingNodes(SPWeb web, SPSite impSite)
{
using (SPWeb impWeb = impSite.OpenWeb(web.ID))
{
if (impWeb != null && impWeb.Exists)
{
try
{
var isRoot = SiteHelper.GetIsProjectRootSite(web);
impWeb.AllowUnsafeUpdates = true;
var quicklaunchCollection = impWeb.Navigation.QuickLaunch;
foreach (SPNavigationNode tempNode in quicklaunchCollection)
{
impWeb.Navigation.QuickLaunch.Delete(tempNode);
impWeb.Update();
}
}
catch (Exception ex)
{
LoggingService.WriteError(ex, "Cannot remove links to navigation menu");
}
finally
{
if (impWeb != null)
{
impWeb.AllowUnsafeUpdates = false;
}
}
}
}
}
サイトを作成した後、リンクだけでなく「サイト」と「リスト」もあるという問題!しかし、私はそれらを持ちたくない!それらを削除する方法をアドバイスしてください!