I finally had some time to test this out.
There are only a couple of things that caused me problems.
It was a bit of a challenge merging the web.config files into one.
During the install of the DB, I could select my existing DNN administrator, but I still had to add that user to the yaf_prov_membership table.
In Install/default.aspx.cs:
// try to get data for the existing user...
user = Membership.GetUser( ExistingUserName.Text.Trim() );
if ( user == null )
{
AddLoadMessage( "Existing user name is invalid and does not represent a current user in the membership store." );
return false;
}
// Add for DNN
if (YAF.Classes.Config.IsDotNetNuke)
{
YAF.Providers.Membership.DB.CreateUser("DotNetNuke", user.UserName, "", "", 2, user.Email, "", "", true, user.ProviderUserKey);
}
//END
The only other item I noticed which is minor, there is no need to display "Register | Login/Logout" in the top header.
In YAF.Controls/Header.cs
/* TODO: help is currently useless...
if ( IsAdmin )
header.AppendFormat( String.Format( " <a target='_top' href=\"{0}\">{1}</a> | ", YafBuildLink.GetLink( ForumPages.help_index ), GetText( "TOOLBAR", "HELP" ) ) );
*/
if (General.CheckPermission(PageContext, PageContext.BoardSettings.SearchPermissions)) buildHeader.AppendFormat(String.Format(" <a href=\"{0}\">{1}</a> | ", YafBuildLink.GetLink(ForumPages.search), PageContext.Localization.GetText("TOOLBAR", "SEARCH")));
if (PageContext.IsAdmin)
buildHeader.AppendFormat(String.Format(" <a target='_top' href=\"{0}\">{1}</a> | ", YafBuildLink.GetLink(ForumPages.admin_admin), PageContext.Localization.GetText("TOOLBAR", "ADMIN")));
if (PageContext.IsModerator || PageContext.IsForumModerator)
buildHeader.AppendFormat(String.Format(" <a href=\"{0}\">{1}</a> | ", YafBuildLink.GetLink(ForumPages.moderate_index), PageContext.Localization.GetText("TOOLBAR", "MODERATE")));
buildHeader.AppendFormat(String.Format(" <a href=\"{0}\">{1}</a> | ", YafBuildLink.GetLink(ForumPages.active), PageContext.Localization.GetText("TOOLBAR", "ACTIVETOPICS")));
if (!PageContext.IsGuest)
buildHeader.AppendFormat(String.Format(" <a href=\"{0}\">{1}</a> | ", YafBuildLink.GetLink(ForumPages.cp_profile), PageContext.Localization.GetText("TOOLBAR", "MYPROFILE")));
if (General.CheckPermission(PageContext, PageContext.BoardSettings.MembersListViewPermissions)) buildHeader.AppendFormat(String.Format(" <a href=\"{0}\">{1}</a> ", YafBuildLink.GetLink(ForumPages.members), PageContext.Localization.GetText("TOOLBAR", "MEMBERS")));
if (!Classes.Config.IsDotNetNuke)
{
buildHeader.AppendFormat(String.Format(" | <a href=\"{0}\" onclick=\"return confirm('{2}');\">{1}</a>", YafBuildLink.GetLink(ForumPages.logout), PageContext.Localization.GetText("TOOLBAR", "LOGOUT"), PageContext.Localization.GetText("TOOLBAR", "LOGOUT_QUESTION")));
}
}
else
{
buildHeader.AppendFormat(String.Format(@"<td style=""padding:5px"" class=""post"" align=""left""><b>{0}</b></td>", PageContext.Localization.GetText("TOOLBAR", "WELCOME_GUEST")));
buildHeader.AppendFormat(@"<td style=""padding:5px"" align=""right"" valign=""middle"" class=""post"">");
if (General.CheckPermission(PageContext, PageContext.BoardSettings.SearchPermissions)) buildHeader.AppendFormat(String.Format(" <a href=\"{0}\">{1}</a> | ", YafBuildLink.GetLink(ForumPages.search), PageContext.Localization.GetText("TOOLBAR", "SEARCH")));
buildHeader.AppendFormat(String.Format(" <a href=\"{0}\">{1}</a> | ", YafBuildLink.GetLink(ForumPages.active), PageContext.Localization.GetText("TOOLBAR", "ACTIVETOPICS")));
if (General.CheckPermission(PageContext, PageContext.BoardSettings.MembersListViewPermissions)) buildHeader.AppendFormat(String.Format(" <a href=\"{0}\">{1}</a> ", YafBuildLink.GetLink(ForumPages.members), PageContext.Localization.GetText("TOOLBAR", "MEMBERS")));
string returnUrl = GetReturnUrl();
if (!Classes.Config.IsDotNetNuke)
{
buildHeader.AppendFormat(String.Format(" | <a href=\"{0}\">{1}</a>", (returnUrl == string.Empty) ? YafBuildLink.GetLink(ForumPages.login) : YafBuildLink.GetLink(ForumPages.login, "ReturnUrl={0}", returnUrl), PageContext.Localization.GetText("TOOLBAR", "LOGIN")));
if (!PageContext.BoardSettings.DisableRegistrations)
{
buildHeader.AppendFormat(String.Format(" | <a href=\"{0}\">{1}</a>", (PageContext.BoardSettings.ShowRulesForRegistration ? YafBuildLink.GetLink(ForumPages.rules) : YafBuildLink.GetLink(ForumPages.register)), PageContext.Localization.GetText("TOOLBAR", "REGISTER")));
}
}
}
I used the same DotNetNukeModule and DotNetNukeModuleEdit files that were in my last post about Dnn integration.
Testing on a single portal, I created 3 different forums and everything worked as expected.
I must say well done on the Beta release!
Boskone - A DotNetNuke user.
RDSCC