Skip to content

Commit bbf6692

Browse files
authored
Merge pull request #1220 from johnhenley/issues/enable-email-notification-to-poster-263
ENH: User preference to enable email notifications to poster
2 parents f97feae + fd2c1e7 commit bbf6692

22 files changed

+118
-25
lines changed

Dnn.CommunityForums/App_LocalResources/SharedResources.de-DE.resx

+6
Original file line numberDiff line numberDiff line change
@@ -1816,4 +1816,10 @@ Von
18161816
<data name="[RESX:PinNotificationBody].Text" xml:space="preserve">
18171817
<value>&lt;p&gt;Dein Thema: [FORUMTOPIC:SUBJECTLINK] wurde angeheftet.&lt;/p&gt;</value>
18181818
</data>
1819+
<data name="[RESX:EnableNotificationsForOwnContent].Text" xml:space="preserve">
1820+
<value>Senden Sie mir für abonnierte Foren/Themen Benachrichtigungen, auch für meine eigenen Beiträge</value>
1821+
</data>
1822+
<data name="[RESX:EnableNotificationsForOwnContent].Help" xml:space="preserve">
1823+
<value>Wählen Sie diese Option aus, wenn Sie Benachrichtigungen erhalten möchten, dass neue Inhalte veröffentlicht wurden, obwohl Sie der Benutzer sind, der die Inhalte veröffentlicht hat.</value>
1824+
</data>
18191825
</root>

Dnn.CommunityForums/App_LocalResources/SharedResources.es-ES.resx

+6
Original file line numberDiff line numberDiff line change
@@ -1816,4 +1816,10 @@ De
18161816
<data name="[RESX:PinNotificationBody].Text" xml:space="preserve">
18171817
<value>&lt;p&gt;Su tema: [FORUMTOPIC:SUBJECTLINK] ha sido anclado.&lt;/p&gt;</value>
18181818
</data>
1819+
<data name="[RESX:EnableNotificationsForOwnContent].Text" xml:space="preserve">
1820+
<value>Para los foros/temas suscritos, envíame notificaciones incluso para mis propias publicaciones</value>
1821+
</data>
1822+
<data name="[RESX:EnableNotificationsForOwnContent].Help" xml:space="preserve">
1823+
<value>Seleccione esta opción si desea recibir notificaciones de que se ha publicado nuevo contenido aunque usted sea el usuario que publicó el contenido.</value>
1824+
</data>
18191825
</root>

Dnn.CommunityForums/App_LocalResources/SharedResources.fr-FR.resx

+6
Original file line numberDiff line numberDiff line change
@@ -1831,4 +1831,10 @@ De,
18311831
<data name="[RESX:PinNotificationBody].Text" xml:space="preserve">
18321832
<value>&lt;p&gt;Votre sujet : [FORUMTOPIC :SUBJECTLINK] a été épinglé.&lt;/p&gt;</value>
18331833
</data>
1834+
<data name="[RESX:EnableNotificationsForOwnContent].Text" xml:space="preserve">
1835+
<value>Pour les forums/sujets auxquels vous êtes abonné, envoyez-moi des notifications même pour mes propres messages</value>
1836+
</data>
1837+
<data name="[RESX:EnableNotificationsForOwnContent].Help" xml:space="preserve">
1838+
<value>Sélectionnez cette option si vous souhaitez recevoir des notifications indiquant qu’un nouveau contenu a été publié même si vous êtes l’utilisateur qui l’a publié.</value>
1839+
</data>
18341840
</root>

Dnn.CommunityForums/App_LocalResources/SharedResources.it-IT.resx

+6
Original file line numberDiff line numberDiff line change
@@ -1816,4 +1816,10 @@ Da
18161816
<data name="[RESX:PinNotificationBody].Text" xml:space="preserve">
18171817
<value>&lt;p&gt;Il tuo argomento: [FORUMTOPIC:SUBJECTLINK] è stato appuntato.&lt;/p&gt;</value>
18181818
</data>
1819+
<data name="[RESX:EnableNotificationsForOwnContent].Text" xml:space="preserve">
1820+
<value>Per forum/argomenti iscritti, inviami notifiche anche per i miei post</value>
1821+
</data>
1822+
<data name="[RESX:EnableNotificationsForOwnContent].Help" xml:space="preserve">
1823+
<value>Selezionare questa opzione se si desidera ricevere notifiche relative alla pubblicazione di nuovi contenuti anche se l'utente che ha pubblicato il contenuto è stato pubblicato.</value>
1824+
</data>
18191825
</root>

Dnn.CommunityForums/App_LocalResources/SharedResources.nl-NL.resx

+6
Original file line numberDiff line numberDiff line change
@@ -1852,4 +1852,10 @@ Van,
18521852
<data name="[RESX:PinNotificationBody].Text" xml:space="preserve">
18531853
<value>&lt;p&gt;Uw onderwerp: [FORUMTOPIC:SUBJECTLINK] is vastgezet.&lt;/p&gt;</value>
18541854
</data>
1855+
<data name="[RESX:EnableNotificationsForOwnContent].Text" xml:space="preserve">
1856+
<value>Voor geabonneerde forums/onderwerpen, stuur me meldingen, zelfs voor mijn eigen berichten</value>
1857+
</data>
1858+
<data name="[RESX:EnableNotificationsForOwnContent].Help" xml:space="preserve">
1859+
<value>Selecteer deze optie als u meldingen wilt ontvangen dat er nieuwe inhoud is geplaatst, ook al bent u de gebruiker die de inhoud heeft geplaatst.</value>
1860+
</data>
18551861
</root>

Dnn.CommunityForums/App_LocalResources/SharedResources.resx

+6
Original file line numberDiff line numberDiff line change
@@ -1814,4 +1814,10 @@ From,
18141814
<data name="[RESX:PinNotificationBody].Text" xml:space="preserve">
18151815
<value>&lt;p&gt;Your topic: [FORUMTOPIC:SUBJECTLINK] has been pinned.&lt;/p&gt;</value>
18161816
</data>
1817+
<data name="[RESX:EnableNotificationsForOwnContent].Text" xml:space="preserve">
1818+
<value>For subscribed forums/topics, send me notifications even for my own posts</value>
1819+
</data>
1820+
<data name="[RESX:EnableNotificationsForOwnContent].Help" xml:space="preserve">
1821+
<value>Select this option if you wish to receive notifications that new content has been posted even though you are the user who posted the content. </value>
1822+
</data>
18171823
</root>

Dnn.CommunityForums/Controllers/ForumController.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ public static int CreateSocialGroupForum(int portalId, int moduleId, int socialG
357357

358358
int permissionsId = pc.CreateAdminPermissions(DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.GetAdministratorsRoleId(portalId).ToString(), moduleId).PermissionsId;
359359

360-
DotNetNuke.Modules.ActiveForums.Entities.ForumInfo fi = new DotNetNuke.Modules.ActiveForums.Entities.ForumInfo
360+
DotNetNuke.Modules.ActiveForums.Entities.ForumInfo fi = new DotNetNuke.Modules.ActiveForums.Entities.ForumInfo(portalId)
361361
{
362362
ForumDesc = forumDescription,
363363
Active = true,

Dnn.CommunityForums/Entities/ContentInfo.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ namespace DotNetNuke.Modules.ActiveForums.Entities
2929
[PrimaryKey("ContentId", AutoIncrement = true)]
3030
public class ContentInfo
3131
{
32+
[IgnoreColumn] private string cacheKeyTemplate => CacheKeys.ContentInfo;
33+
3234
private DotNetNuke.Modules.ActiveForums.Entities.IPostInfo postInfo;
3335

3436
public int ContentId { get; set; }
@@ -85,7 +87,7 @@ internal DotNetNuke.Modules.ActiveForums.Entities.IPostInfo GetPost()
8587
return this.postInfo;
8688
}
8789

88-
internal string GetCacheKey() => new DotNetNuke.Modules.ActiveForums.Controllers.ContentController().GetCacheKey(this.ModuleId, this.ContentId);
90+
internal string GetCacheKey() => string.Format(this.cacheKeyTemplate, this.ModuleId, this.ContentId);
8991

9092
internal void UpdateCache() => DotNetNuke.Modules.ActiveForums.DataCache.ContentCacheStore(this.ModuleId, this.GetCacheKey(), this);
9193
}

Dnn.CommunityForums/Entities/ForumGroupInfo.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ namespace DotNetNuke.Modules.ActiveForums.Entities
3535
// TODO [Cacheable("activeforums_Groups", CacheItemPriority.Low)] /* TODO: DAL2 caching cannot be used until all CRUD methods use DAL2; must update Save method to use DAL2 rather than stored procedure */
3636
public partial class ForumGroupInfo : DotNetNuke.Services.Tokens.IPropertyAccess
3737
{
38+
[IgnoreColumn] private string cacheKeyTemplate => CacheKeys.ForumGroupInfo;
39+
3840
private DotNetNuke.Modules.ActiveForums.Entities.PermissionInfo security;
3941
private FeatureSettings featureSettings;
4042
private DotNetNuke.Modules.ActiveForums.SettingsInfo mainSettings;
@@ -284,7 +286,7 @@ private int GetTabId()
284286
return this.PortalSettings.ActiveTab.TabID == -1 || this.PortalSettings.ActiveTab.TabID == this.PortalSettings.HomeTabId ? this.TabId : this.PortalSettings.ActiveTab.TabID;
285287
}
286288

287-
internal string GetCacheKey() => new DotNetNuke.Modules.ActiveForums.Controllers.ForumGroupController().GetCacheKey(this.ModuleId, this.ForumGroupId);
289+
internal string GetCacheKey() => string.Format(this.cacheKeyTemplate, this.ModuleId, this.ForumGroupId);
288290

289291
internal void UpdateCache() => DotNetNuke.Modules.ActiveForums.DataCache.SettingsCacheStore(this.ModuleId, this.GetCacheKey(), this);
290292
}

Dnn.CommunityForums/Entities/ForumInfo.cs

+9-1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ namespace DotNetNuke.Modules.ActiveForums.Entities
3838
// TODO [Cacheable("activeforums_Forums", CacheItemPriority.Low)] /* TODO: DAL2 caching cannot be used until all CRUD methods use DAL2; must update Save method to use DAL2 rather than stored procedure */
3939
public class ForumInfo : DotNetNuke.Services.Tokens.IPropertyAccess
4040
{
41+
[IgnoreColumn] private string cacheKeyTemplate => CacheKeys.ForumInfo;
4142
private DotNetNuke.Modules.ActiveForums.Entities.ForumGroupInfo forumGroup;
4243
private List<DotNetNuke.Modules.ActiveForums.Entities.ForumInfo> subforums;
4344
private DotNetNuke.Modules.ActiveForums.Entities.PermissionInfo security;
@@ -59,6 +60,13 @@ public ForumInfo()
5960
this.UpdateCache();
6061
}
6162

63+
public ForumInfo(int portalId)
64+
{
65+
this.PortalId = portalId;
66+
this.PortalSettings = Utilities.GetPortalSettings(portalId);
67+
this.UpdateCache();
68+
}
69+
6270
public ForumInfo(DotNetNuke.Entities.Portals.PortalSettings portalSettings)
6371
{
6472
this.PortalSettings = portalSettings;
@@ -980,7 +988,7 @@ private int GetTabId()
980988
return this.ModuleInfo.TabID > 0 ? this.ModuleInfo.TabID : this.PortalSettings.ActiveTab.TabID == -1 || this.PortalSettings.ActiveTab.TabID == this.PortalSettings.HomeTabId ? this.TabId : this.PortalSettings.ActiveTab.TabID;
981989
}
982990

983-
internal string GetCacheKey() => new DotNetNuke.Modules.ActiveForums.Controllers.ForumController().GetCacheKey(this.ModuleId, this.ForumID);
991+
internal string GetCacheKey() => string.Format(this.cacheKeyTemplate, this.ModuleId, this.ForumID);
984992

985993
internal void UpdateCache() => DotNetNuke.Modules.ActiveForums.DataCache.SettingsCacheStore(this.ModuleId, this.GetCacheKey(), this);
986994
}

Dnn.CommunityForums/Entities/ForumUserInfo.cs

+6-1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ namespace DotNetNuke.Modules.ActiveForums.Entities
3636
[Scope("PortalId")]
3737
public class ForumUserInfo : DotNetNuke.Services.Tokens.IPropertyAccess
3838
{
39+
[IgnoreColumn] private string cacheKeyTemplate => CacheKeys.ForumUser;
3940
private DotNetNuke.Entities.Users.UserInfo userInfo;
4041
private PortalSettings portalSettings;
4142
private SettingsInfo mainSettings;
@@ -122,6 +123,8 @@ public ForumUserInfo(int moduleId)
122123

123124
public bool PinNotificationsEnabled { get; set; } = true;
124125

126+
public bool EnableNotificationsForOwnContent { get; set; } = false;
127+
125128
[IgnoreColumn]
126129
public string RawUrl { get; set; }
127130

@@ -622,8 +625,10 @@ public string GetProperty(string propertyName, string format, System.Globalizati
622625
return string.Empty;
623626
}
624627

625-
internal string GetCacheKey() => string.Format(CacheKeys.ForumUser, this.PortalId, this.UserId);
628+
[IgnoreColumn]
629+
internal string GetCacheKey() => string.Format(this.cacheKeyTemplate, this.PortalId, this.UserId);
626630

631+
[IgnoreColumn]
627632
internal void UpdateCache() => DataCache.UserCacheStore(this.GetCacheKey(), this);
628633
}
629634
}

Dnn.CommunityForums/Entities/LikeInfo.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ namespace DotNetNuke.Modules.ActiveForums.Entities
3333
[Cacheable("activeforums_Likes", CacheItemPriority.Normal)]
3434
internal class LikeInfo : DotNetNuke.Services.Tokens.IPropertyAccess
3535
{
36+
[IgnoreColumn] private string cacheKeyTemplate => CacheKeys.LikeInfo;
3637
private DotNetNuke.Modules.ActiveForums.Entities.ContentInfo contentInfo;
3738
private DotNetNuke.Modules.ActiveForums.Entities.ForumUserInfo forumUserInfo;
3839

@@ -263,7 +264,7 @@ private int GetTabId()
263264
return this.Forum.PortalSettings.ActiveTab.TabID == -1 || this.Forum.PortalSettings.ActiveTab.TabID == this.Forum.PortalSettings.HomeTabId ? this.Forum.TabId : this.Forum.PortalSettings.ActiveTab.TabID;
264265
}
265266

266-
internal string GetCacheKey() => new DotNetNuke.Modules.ActiveForums.Controllers.LikeController(this.PortalId, this.ModuleId).GetCacheKey(this.ModuleId, this.ContentId);
267+
internal string GetCacheKey() => string.Format(this.cacheKeyTemplate, this.ModuleId, this.ContentId);
267268

268269
internal void UpdateCache() => DotNetNuke.Modules.ActiveForums.DataCache.ContentCacheStore(this.ModuleId, this.GetCacheKey(), this);
269270
}

Dnn.CommunityForums/Entities/PermissionInfo.cs

+4
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ namespace DotNetNuke.Modules.ActiveForums.Entities
3232
[Scope("ModuleId")]
3333
public class PermissionInfo
3434
{
35+
[IgnoreColumn] private string cacheKeyTemplate => CacheKeys.PermissionsInfo;
36+
3537
public int PermissionsId { get; set; }
3638

3739
public int ModuleId { get; set; }
@@ -137,5 +139,7 @@ public bool EqualPermissions(PermissionInfo other)
137139
this.Split == other.Split &&
138140
this.Ban == other.Ban;
139141
}
142+
143+
internal string GetCacheKey() => string.Format(this.cacheKeyTemplate, this.ModuleId, this.PermissionsId);
140144
}
141145
}

Dnn.CommunityForums/Entities/ReplyInfo.cs

+2-3
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ namespace DotNetNuke.Modules.ActiveForums.Entities
3838
[PrimaryKey("ReplyId")]
3939
public partial class ReplyInfo : DotNetNuke.Modules.ActiveForums.Entities.IPostInfo
4040
{
41+
[IgnoreColumn] private string cacheKeyTemplate => CacheKeys.ReplyInfo;
4142
private DotNetNuke.Modules.ActiveForums.Entities.TopicInfo topicInfo;
4243
private DotNetNuke.Modules.ActiveForums.Entities.ContentInfo contentInfo;
4344
private DotNetNuke.Modules.ActiveForums.Entities.AuthorInfo author;
@@ -687,10 +688,8 @@ private static string GetTopicTitle(string body)
687688
return string.Empty;
688689
}
689690

690-
[IgnoreColumn]
691-
internal string GetCacheKey() => new DotNetNuke.Modules.ActiveForums.Controllers.ReplyController(this.ModuleId).GetCacheKey(this.ModuleId, this.ReplyId);
691+
internal string GetCacheKey() => string.Format(this.cacheKeyTemplate, this.ModuleId, this.ReplyId);
692692

693-
[IgnoreColumn]
694693
internal void UpdateCache() => DotNetNuke.Modules.ActiveForums.DataCache.ContentCacheStore(this.ModuleId, this.GetCacheKey(), this);
695694
}
696695
}

Dnn.CommunityForums/Entities/TopicInfo.cs

+2-3
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ public Category(int id, string name, bool selected)
6666

6767
private List<Category> categories;
6868

69+
[IgnoreColumn] private string cacheKeyTemplate => CacheKeys.TopicInfo;
6970
private DotNetNuke.Modules.ActiveForums.Entities.ContentInfo contentInfo;
7071
private DotNetNuke.Modules.ActiveForums.Entities.ForumInfo forumInfo;
7172
private DotNetNuke.Modules.ActiveForums.Entities.ReplyInfo lastReply;
@@ -1509,10 +1510,8 @@ private static string GetTopicTitle(string body)
15091510
return string.Empty;
15101511
}
15111512

1512-
[IgnoreColumn]
1513-
internal string GetCacheKey() => new DotNetNuke.Modules.ActiveForums.Controllers.TopicController(this.ModuleId).GetCacheKey(this.ModuleId, this.TopicId);
1513+
internal string GetCacheKey() => string.Format(this.cacheKeyTemplate, this.ModuleId, this.TopicId);
15141514

1515-
[IgnoreColumn]
15161515
internal void UpdateCache() => DotNetNuke.Modules.ActiveForums.DataCache.ContentCacheStore(this.ModuleId, this.GetCacheKey(), this);
15171516
}
15181517
}

Dnn.CommunityForums/class/ForumsConfig.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ private void LoadDefaultForums(int portalId, int moduleId)
242242
System.Xml.XmlNodeList cNodes = xNodeList[i].ChildNodes;
243243
for (int c = 0; c < cNodes.Count; c++)
244244
{
245-
var fi = new DotNetNuke.Modules.ActiveForums.Entities.ForumInfo
245+
var fi = new DotNetNuke.Modules.ActiveForums.Entities.ForumInfo(portalId)
246246
{
247247
ForumID = -1,
248248
ModuleId = moduleId,

Dnn.CommunityForums/class/Subscriptions.cs

+18-10
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
1919
// DEALINGS IN THE SOFTWARE.
2020

21+
using DotNetNuke.Modules.ActiveForums.Entities;
22+
2123
namespace DotNetNuke.Modules.ActiveForums
2224
{
2325
using System;
@@ -73,24 +75,31 @@ public int Subscription_Update(int portalId, int moduleId, int forumId, int topi
7375
return -1;
7476
}
7577

78+
[Obsolete("Deprecated in Community Forums. Removed in 10.00.00. Use Subscription_GetSubscribers(int portalId, int moduleId, int forumId, int topicId, SubscriptionTypes mode, DotNetNuke.Modules.ActiveForums.Entities.AuthorInfo author, string canSubscribe).")]
79+
public List<DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo> Subscription_GetSubscribers(int portalId, int forumId, int topicId, SubscriptionTypes mode, int authorId, string canSubscribe) => throw new NotImplementedException();
80+
7681
// TODO: move to new DAL2 subscription controller
77-
public List<DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo> Subscription_GetSubscribers(int portalId, int forumId, int topicId, SubscriptionTypes mode, int authorId, string canSubscribe)
82+
public List<DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo> Subscription_GetSubscribers(DotNetNuke.Modules.ActiveForums.Entities.ForumInfo forum, int topicId, SubscriptionTypes mode, DotNetNuke.Modules.ActiveForums.Entities.AuthorInfo author)
7883
{
79-
DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo si;
8084
var sl = new List<DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo>();
81-
IDataReader dr = DataProvider.Instance().Subscriptions_GetSubscribers(portalId, forumId, topicId, (int)mode);
85+
IDataReader dr = DataProvider.Instance().Subscriptions_GetSubscribers(forum.PortalId, forum.ForumID, topicId, (int)mode);
8286
while (dr.Read())
8387
{
84-
if (authorId != Convert.ToInt32(dr["UserId"]))
88+
if (Convert.ToInt32(dr["userId"]) != author.AuthorId || author.ForumUser.EnableNotificationsForOwnContent)
8589
{
86-
si = new DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo
90+
var si = new DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo
8791
{
88-
UserId = Convert.ToInt32(dr["UserId"]),
92+
ModuleId = forum.ModuleId,
93+
PortalId = forum.PortalId,
94+
ForumId = forum.ForumID,
95+
UserId = Convert.ToInt32(dr["userId"]),
96+
Email = dr["email"].ToString(),
97+
TopicId = Convert.ToInt32(dr["topicsubscriber"]).Equals(1) ? topicId : 0,
8998
};
9099

91100
if (!sl.Contains(si))
92101
{
93-
if (DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasPerm(canSubscribe, portalId, si.ModuleId, si.UserId))
102+
if (DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasPerm(forum.Security.Subscribe, forum.PortalId, forum.ModuleId, si.UserId))
94103
{
95104
sl.Add(si);
96105
}
@@ -133,12 +142,11 @@ public static void SendSubscriptions(int portalId, int moduleId, int tabId, DotN
133142
// TODO: move to new DAL2 subscription controller
134143
public static void SendSubscriptions(int templateId, int portalId, int moduleId, int tabId, DotNetNuke.Modules.ActiveForums.Entities.ForumInfo fi, int topicId, int replyId, int authorId, Uri requestUrl)
135144
{
136-
var sc = new SubscriptionController();
137-
List<DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo> subs = sc.Subscription_GetSubscribers(portalId, fi.ForumID, topicId, SubscriptionTypes.Instant, authorId, fi.Security.Subscribe);
145+
var author = new DotNetNuke.Modules.ActiveForums.Entities.AuthorInfo(portalId, moduleId, authorId);
146+
List<DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo> subs = new DotNetNuke.Modules.ActiveForums.SubscriptionController().Subscription_GetSubscribers(fi, topicId, SubscriptionTypes.Instant, author);
138147

139148
if (subs.Count > 0)
140149
{
141-
var author = new DotNetNuke.Modules.ActiveForums.Entities.AuthorInfo(portalId, moduleId, authorId);
142150
DotNetNuke.Modules.ActiveForums.Controllers.EmailController.SendTemplatedEmail(templateId, portalId, topicId, replyId, moduleId, tabId, author, fi, subs, requestUrl, requestUrl.PathAndQuery);
143151
}
144152
}

Dnn.CommunityForums/controls/admin_manageforums_forumeditor.ascx.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ private void cbEditorAction_Callback(object sender, Controls.CallBackEventArgs e
243243

244244
case "forumsave":
245245
{
246-
var fi = new DotNetNuke.Modules.ActiveForums.Entities.ForumInfo();
246+
var fi = new DotNetNuke.Modules.ActiveForums.Entities.ForumInfo(this.PortalId);
247247
var bIsNew = false;
248248
int forumGroupId;
249249

0 commit comments

Comments
 (0)