Skip to content

Commit 55c1918

Browse files
committed
fixed issue #13 with some forum urls
1 parent 4ebead0 commit 55c1918

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

yaf_dnn/Components/Rewriter/DotNetNukeUrlBuilder.cs

+20-6
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public override string BuildUrl(object boardSettings, string url)
153153
var parser = new SimpleURLParameterParser(url);
154154

155155
var pageName = parser["g"];
156-
ForumPages forumPage = ForumPages.forum;
156+
var forumPage = ForumPages.forum;
157157
var getDescription = false;
158158

159159
if (pageName.IsSet())
@@ -171,19 +171,28 @@ public override string BuildUrl(object boardSettings, string url)
171171

172172
if (getDescription)
173173
{
174+
string useKey;
174175
switch (forumPage)
175176
{
176177
case ForumPages.topics:
177178
{
178-
boardNameOrPageName = UrlRewriteHelper.GetForumName(parser["f"].ToType<int>());
179+
useKey = "f";
180+
181+
boardNameOrPageName =
182+
UrlRewriteHelper.CleanStringForURL(
183+
parser["name"].IsSet()
184+
? parser["name"]
185+
: UrlRewriteHelper.GetForumName(parser[useKey].ToType<int>()));
179186
}
180187

181188
break;
182189
case ForumPages.posts:
183190
{
184191
if (parser["t"].IsSet())
185192
{
186-
var topicName = UrlRewriteHelper.GetTopicName(parser["t"].ToType<int>());
193+
useKey = "t";
194+
195+
var topicName = UrlRewriteHelper.GetTopicName(parser[useKey].ToType<int>());
187196

188197
if (topicName.EndsWith("-"))
189198
{
@@ -194,11 +203,13 @@ public override string BuildUrl(object boardSettings, string url)
194203
}
195204
else if (parser["m"].IsSet())
196205
{
206+
useKey = "m";
207+
197208
string topicName;
198209

199210
try
200211
{
201-
topicName = UrlRewriteHelper.GetTopicNameFromMessage(parser["m"].ToType<int>());
212+
topicName = UrlRewriteHelper.GetTopicNameFromMessage(parser[useKey].ToType<int>());
202213

203214
if (topicName.EndsWith("-"))
204215
{
@@ -217,18 +228,21 @@ public override string BuildUrl(object boardSettings, string url)
217228
break;
218229
case ForumPages.profile:
219230
{
231+
useKey = "u";
232+
220233
boardNameOrPageName =
221234
UrlRewriteHelper.CleanStringForURL(
222235
parser["name"].IsSet()
223236
? parser["name"]
224-
: UrlRewriteHelper.GetProfileName(parser["u"].ToType<int>()));
237+
: UrlRewriteHelper.GetProfileName(parser[useKey].ToType<int>()));
225238
}
226239

227240
break;
228241
case ForumPages.forum:
229242
{
230243
if (parser["c"].IsSet())
231244
{
245+
useKey = "c";
232246
boardNameOrPageName = UrlRewriteHelper.GetCategoryName(parser["c"].ToType<int>());
233247
}
234248
}
@@ -241,7 +255,7 @@ public override string BuildUrl(object boardSettings, string url)
241255
FriendlyUrlProvider.Instance()
242256
.FriendlyUrl(
243257
yafTab,
244-
"{0}&{1}".FormatWith(Globals.ApplicationURL(yafTab.TabID), url),
258+
"{0}&{1}".FormatWith(Globals.ApplicationURL(yafTab.TabID), parser.CreateQueryString(new[] { "name" })),
245259
boardNameOrPageName,
246260
portalSettings.DefaultPortalAlias));
247261

0 commit comments

Comments
 (0)