الكشف عن إعدادات التنقل العلوية/العامة برمجياً
-
10-12-2019 - |
سؤال
إذا تمت إدارة مجموعة موقع نشر أو التنقل الهيكلي كمصدر للتنقل العلوي، فكيف يمكنك التعامل مع هذه الإعدادات برمجيًا؟ال SPWeb.Navigation.TopNavigationBar
تقوم الخاصية بإرجاع مجموعة مختلفة تمامًا من عقد التنقل (شريط الارتباط العلوي في المواقع غير المخصصة للنشر).
فيما يلي بعض لقطات شاشة واجهة المستخدم حيث توجد الإعدادات التي أتحدث عنها:
عدم النشر (إعدادات شريط الارتباط العلوي):
النشر (إعدادات التنقل العامة):
كيف يمكنك اكتشاف ما إذا كان الموقع يستخدم برمجياً أم لا SPNavigation.TopNavigationBar
, أو التنقل المُدار أو التنقل الهيكلي لإعدادات التنقل العالمية / التنقل العلوي؟
المحلول
حسنًا، بعد الاطلاع على الأعمال الداخلية للتعليمات البرمجية الموجودة خلف صفحات الإعدادات هذه، وجدت أنه يمكنك اكتشاف مصدر التنقل في موقع النشر باستخدام WebNavigationSettings
الصف وقراءته GlobalNavigation.Source
الممتلكات (أ StandardNavigationSource
التعداد) مثل هذا:
if (PublishingWeb.IsPublishingWeb(web))
{
WebNavigationSettings settings = new WebNavigationSettings(web);
switch (settings.GlobalNavigation.Source)
{
case StandardNavigationSource.PortalProvider:
// Data source is Structured Navigation
break;
case StandardNavigationSource.TaxonomyProvider:
// Data source is Managed Navigation
break;
case StandardNavigationSource.InheritFromParentWeb:
// Root navigation data source is inherited
break;
case StandardNavigationSource.Unknown:
// The documentation for this value states:
// "Returns a value of unknown to indicate an advanced configuration
// that does not correspond to one of the standard configurations.
// This value cannot be manually assigned to the Source property."
break;
}
}
else
{
// Non-publishing site, root source is SPNavigation.TopNavigationBar
}