Skip to content

Commit f80f841

Browse files
committed
make it 1 language at a time
1 parent dc879e9 commit f80f841

File tree

1 file changed

+61
-52
lines changed

1 file changed

+61
-52
lines changed

OpenContent/Providers/SitemapProviders/OpenContentSitemapProvider/OpenContentSitemapProvider.cs

+61-52
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,17 @@
3535
using DotNetNuke.Services.Localization;
3636
using DotNetNuke.Services.Sitemap;
3737
using Satrabel.OpenContent.Components.UrlRewriter;
38+
using DotNetNuke.Instrumentation;
3839

3940
#endregion
4041

4142
namespace Satrabel.OpenContent.Providers.SitemapProviders
4243
{
4344
public class OpenContentSitemapProvider : SitemapProvider
4445
{
46+
47+
private static readonly ILog Logger = LoggerSource.Instance.GetLogger(typeof(OpenContentSitemapProvider));
48+
4549
private bool includeHiddenPages;
4650
private float minPagePriority;
4751

@@ -60,67 +64,70 @@ public class OpenContentSitemapProvider : SitemapProvider
6064
/// </remarks>
6165
public override List<SitemapUrl> GetUrls(int portalId, PortalSettings ps, string version)
6266
{
63-
var objTabs = new TabController();
67+
//Logger.Error("Opencontent sitemap generation page : start");
68+
69+
70+
71+
//var objTabs = new TabController();
6472
OpenSitemapUrl pageUrl = null;
6573
var urls = new List<SitemapUrl>();
6674

6775
useLevelBasedPagePriority = bool.Parse(PortalController.GetPortalSetting("SitemapLevelMode", portalId, "False"));
6876
minPagePriority = float.Parse(PortalController.GetPortalSetting("SitemapMinPriority", portalId, "0.1"), CultureInfo.InvariantCulture);
6977
includeHiddenPages = bool.Parse(PortalController.GetPortalSetting("SitemapIncludeHidden", portalId, "False"));
7078

71-
PortalController portalController = new PortalController();
72-
PortalInfo objPortal = new PortalController().GetPortal(portalId);
73-
7479
this.ps = ps;
75-
7680
var Locales = ps.ContentLocalizationEnabled ?
7781
LocaleController.Instance.GetPublishedLocales(ps.PortalId).Values :
7882
LocaleController.Instance.GetLocales(ps.PortalId).Values;
7983

8084
bool MultiLanguage = Locales.Count > 1;
8185

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)
8396
{
84-
foreach (TabInfo objTab in objTabs.GetTabsByPortal(portalId).Values)
97+
if (objTab.CultureCode == currentLanguage || objTab.IsNeutralCulture)
8598
{
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+
)
87104
{
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))
89108
{
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))
99113
{
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)
109116
{
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);
118123
}
119124
}
120125
}
121126
}
122127
}
123128
}
129+
130+
124131
return urls;
125132
}
126133

@@ -264,24 +271,26 @@ private OpenSitemapUrl GetPageUrl(TabInfo objTab, string language, params string
264271
protected float GetPriority(TabInfo objTab)
265272
{
266273
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)
269291
{
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;
283293
}
284-
285294
return priority;
286295
}
287296

@@ -296,7 +305,7 @@ public virtual bool IsTabPublic(TabPermissionCollection objTabPermissions)
296305
if ((roles != null))
297306
{
298307
// 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[] { ';' }))
300309
{
301310
if (!string.IsNullOrEmpty(role))
302311
{

0 commit comments

Comments
 (0)