35
35
using DotNetNuke . Services . Localization ;
36
36
using DotNetNuke . Services . Sitemap ;
37
37
using Satrabel . OpenContent . Components . UrlRewriter ;
38
+ using DotNetNuke . Instrumentation ;
38
39
39
40
#endregion
40
41
41
42
namespace Satrabel . OpenContent . Providers . SitemapProviders
42
43
{
43
44
public class OpenContentSitemapProvider : SitemapProvider
44
45
{
46
+
47
+ private static readonly ILog Logger = LoggerSource . Instance . GetLogger ( typeof ( OpenContentSitemapProvider ) ) ;
48
+
45
49
private bool includeHiddenPages ;
46
50
private float minPagePriority ;
47
51
@@ -60,67 +64,70 @@ public class OpenContentSitemapProvider : SitemapProvider
60
64
/// </remarks>
61
65
public override List < SitemapUrl > GetUrls ( int portalId , PortalSettings ps , string version )
62
66
{
63
- var objTabs = new TabController ( ) ;
67
+ //Logger.Error("Opencontent sitemap generation page : start");
68
+
69
+
70
+
71
+ //var objTabs = new TabController();
64
72
OpenSitemapUrl pageUrl = null ;
65
73
var urls = new List < SitemapUrl > ( ) ;
66
74
67
75
useLevelBasedPagePriority = bool . Parse ( PortalController . GetPortalSetting ( "SitemapLevelMode" , portalId , "False" ) ) ;
68
76
minPagePriority = float . Parse ( PortalController . GetPortalSetting ( "SitemapMinPriority" , portalId , "0.1" ) , CultureInfo . InvariantCulture ) ;
69
77
includeHiddenPages = bool . Parse ( PortalController . GetPortalSetting ( "SitemapIncludeHidden" , portalId , "False" ) ) ;
70
78
71
- PortalController portalController = new PortalController ( ) ;
72
- PortalInfo objPortal = new PortalController ( ) . GetPortal ( portalId ) ;
73
-
74
79
this . ps = ps ;
75
-
76
80
var Locales = ps . ContentLocalizationEnabled ?
77
81
LocaleController . Instance . GetPublishedLocales ( ps . PortalId ) . Values :
78
82
LocaleController . Instance . GetLocales ( ps . PortalId ) . Values ;
79
83
80
84
bool MultiLanguage = Locales . Count > 1 ;
81
85
82
- foreach ( Locale loc in Locales )
86
+
87
+ var currentLanguage = ps . CultureCode ;
88
+ if ( string . IsNullOrEmpty ( currentLanguage ) )
89
+ {
90
+ currentLanguage = Localization . GetPageLocale ( ps ) . Name ;
91
+ }
92
+ var languagePublished = LocaleController . Instance . GetLocale ( ps . PortalId , currentLanguage ) . IsPublished ;
93
+ var tabs = TabController . Instance . GetTabsByPortal ( portalId ) . Values
94
+ . Where ( t => /* !t.IsSystem && */ ! ps . ContentLocalizationEnabled || ( languagePublished && t . CultureCode . Equals ( currentLanguage , StringComparison . InvariantCultureIgnoreCase ) ) ) ;
95
+ foreach ( TabInfo objTab in tabs )
83
96
{
84
- foreach ( TabInfo objTab in objTabs . GetTabsByPortal ( portalId ) . Values )
97
+ if ( objTab . CultureCode == currentLanguage || objTab . IsNeutralCulture )
85
98
{
86
- if ( objTab . CultureCode == loc . Code || objTab . IsNeutralCulture )
99
+ if ( ! objTab . IsDeleted && ! objTab . DisableLink && objTab . TabType == TabType . Normal
100
+ && ( Null . IsNull ( objTab . StartDate ) || objTab . StartDate < DateTime . Now )
101
+ && ( Null . IsNull ( objTab . EndDate ) || objTab . EndDate > DateTime . Now )
102
+ && IsTabPublic ( objTab . TabPermissions )
103
+ )
87
104
{
88
- if ( MultiLanguage )
105
+ var allowIndex = true ;
106
+ if ( ( ! objTab . TabSettings . ContainsKey ( "AllowIndex" ) || ! bool . TryParse ( objTab . TabSettings [ "AllowIndex" ] . ToString ( ) , out allowIndex ) || allowIndex ) &&
107
+ ( includeHiddenPages || objTab . IsVisible ) )
89
108
{
90
- objPortal = new PortalController ( ) . GetPortal ( portalId , loc . Code ) ;
91
- }
92
- if ( ! objTab . IsDeleted && ! objTab . DisableLink && objTab . TabType == TabType . Normal && ( Null . IsNull ( objTab . StartDate ) || objTab . StartDate < DateTime . Now ) &&
93
- ( Null . IsNull ( objTab . EndDate ) || objTab . EndDate > DateTime . Now ) && IsTabPublic ( objTab . TabPermissions ) &&
94
- objTab . TabID != objPortal . SearchTabId && objTab . TabID != objPortal . UserTabId && ( objPortal . UserTabId == Null . NullInteger || objTab . ParentId != objPortal . UserTabId ) && objTab . TabID != objPortal . LoginTabId && objTab . TabID != objPortal . RegisterTabId )
95
- {
96
- var allowIndex = true ;
97
- if ( ( ! objTab . TabSettings . ContainsKey ( "AllowIndex" ) || ! bool . TryParse ( objTab . TabSettings [ "AllowIndex" ] . ToString ( ) , out allowIndex ) || allowIndex ) &&
98
- ( includeHiddenPages || objTab . IsVisible ) )
109
+
110
+ // modules urls
111
+ var rules = OpenContentUrlProvider . GetRules ( portalId ) ;
112
+ foreach ( var rule in rules . Where ( r => r . TabId == objTab . TabID && r . InSitemap == true ) )
99
113
{
100
- // page url
101
- pageUrl = GetPageUrl ( objTab , MultiLanguage ? loc . Code : null ) ;
102
- pageUrl . Alternates . AddRange ( GetAlternates ( objTab . TabID ) ) ;
103
- urls . Add ( pageUrl ) ;
104
-
105
- // modules urls
106
- //var rules = UrlRuleConfiguration.GetConfig(portalId).Rules;
107
- var rules = OpenContentUrlProvider . GetRules ( portalId ) ;
108
- foreach ( var rule in rules . Where ( r => r . TabId == objTab . TabID && r . InSitemap == true ) )
114
+
115
+ if ( rule . CultureCode == null || rule . CultureCode == currentLanguage )
109
116
{
110
- if ( rule . CultureCode == null || rule . CultureCode == loc . Code )
111
- {
112
- string [ ] pars = rule . Parameters . Split ( '&' ) ;
113
- pageUrl = GetPageUrl ( objTab , MultiLanguage ? loc . Code : null , pars ) ;
114
- // if module support ML
115
- //pageUrl.Alternates.AddRange(GetAlternates(objTab.TabID, pars));
116
- urls . Add ( pageUrl ) ;
117
- }
117
+ string [ ] pars = rule . Parameters . Split ( '&' ) ;
118
+ pageUrl = GetPageUrl ( objTab , MultiLanguage ? currentLanguage : null , pars ) ;
119
+ // if module support ML
120
+ //pageUrl.Alternates.AddRange(GetAlternates(objTab.TabID, pars));
121
+ urls . Add ( pageUrl ) ;
122
+ //Logger.Error("Opencontent sitemap generation page : " + pageUrl.Url);
118
123
}
119
124
}
120
125
}
121
126
}
122
127
}
123
128
}
129
+
130
+
124
131
return urls ;
125
132
}
126
133
@@ -264,24 +271,26 @@ private OpenSitemapUrl GetPageUrl(TabInfo objTab, string language, params string
264
271
protected float GetPriority ( TabInfo objTab )
265
272
{
266
273
float priority = objTab . SiteMapPriority ;
267
-
268
- if ( useLevelBasedPagePriority )
274
+ //if (useLevelBasedPagePriority)
275
+ //{
276
+ // if (objTab.Level >= 9)
277
+ // {
278
+ // priority = 0.1F;
279
+ // }
280
+ // else
281
+ // {
282
+ // priority = Convert.ToSingle(1 - (objTab.Level * 0.1));
283
+ // }
284
+ // if (priority < minPagePriority)
285
+ // {
286
+ // priority = minPagePriority;
287
+ // }
288
+ //}
289
+
290
+ if ( priority < 0.1 )
269
291
{
270
- if ( objTab . Level >= 9 )
271
- {
272
- priority = 0.1F ;
273
- }
274
- else
275
- {
276
- priority = Convert . ToSingle ( 1 - ( objTab . Level * 0.1 ) ) ;
277
- }
278
-
279
- if ( priority < minPagePriority )
280
- {
281
- priority = minPagePriority ;
282
- }
292
+ priority = 0.1F ;
283
293
}
284
-
285
294
return priority ;
286
295
}
287
296
@@ -296,7 +305,7 @@ public virtual bool IsTabPublic(TabPermissionCollection objTabPermissions)
296
305
if ( ( roles != null ) )
297
306
{
298
307
// permissions strings are encoded with Deny permissions at the beginning and Grant permissions at the end for optimal performance
299
- foreach ( string role in roles . Split ( new [ ] { ';' } ) )
308
+ foreach ( string role in roles . Split ( new [ ] { ';' } ) )
300
309
{
301
310
if ( ! string . IsNullOrEmpty ( role ) )
302
311
{
0 commit comments