Apply the following patches/changes:
\
7_4_2
=====
Source Files: https://github.com/dnnsoftware/Dnn.Releases.Archive.7x/raw/master/07.04.02/DNN_Platform_07.04.02_Upgrade.zip
8_0_4
=====
Source Files:
https://github.com/dnnsoftware/Dnn.Releases.Archive.8x/raw/master/08.00.04/DNN_Platform_8.0.4.226_Upgrade.zip
After upgrade apply fix to resolve errors and styling issues:
Find and replace with nothing all SolPartMenu items within containers (you can also just take the cleaned containers from dev and paste into prod containers folder for respective site(s))
9_1_1
=====
Source Files:
https://github.com/dnnsoftware/Dnn.Platform/releases/download/v9.1.1/DNN_Platform_9.1.1.129-232_Upgrade.zip
Added new link below as link above in not found:
=============
If you get this error
Compilation Error Message: BC30456: 'TimeZone' is not a member of 'DotNetNuke.Entities.Users.UserProfile'.
when attempting the upgrade from 9.1 to 9.2 follow the below instructions in the link
===========
9_3_2
=====
Source Files:
https://github.com/dnnsoftware/Dnn.Platform/releases/download/v9.3.2/DNN_Platform_9.3.2.24_Upgrade.zip
Added new link below as link above in not found:
https://github.com/dnnsoftware/Dnn.Platform/releases/tag/v9.3.2
For solution to timezone issue, look at bottom of this wiki post.
9_6_1
=====
Source Files:
https://github.com/dnnsoftware/Dnn.Platform/releases/download/v9.6.1/DNN_Platform_9.6.1_Upgrade.zip
Added new link below as link above in not found:
https://github.com/dnnsoftware/Dnn.Platform/releases/tag/v9.6.1\
===============================================
===============================================
\
CREATE procedure [dbo].[_ResetPass]
@UserName NVarChar(255),
@NewPassword NVarChar(255)
as
begin
Declare @PasswordSalt NVarChar(128)
Declare @ApplicationID NVarChar(255)
Declare @ApplicationName NVarChar(255)
\
Set @ApplicationID = (SELECT [ApplicationID] FROM aspnet_Users WHERE UserName=@UserName)
Set @ApplicationName = (SELECT [ApplicationName] FROM aspnet_Applications WHERE ApplicationID=@ApplicationID)
Set @PasswordSalt = (SELECT PasswordSalt FROM aspnet_Membership WHERE UserID IN (SELECT UserID FROM aspnet_Users WHERE UserName=@UserName))
\
select @ApplicationID, @ApplicationName
declare @RetVal as int
Exec @RetVal = dbo.aspnet_Membership_ResetPassword @ApplicationName, @UserName, @NewPassword, 10, 10, @PasswordSalt, -5
return @RetVal
\
end
\
GO
\
[_ResetPass] 'host','qpzm9731777qpzm9731LOGIN'
\
===============================================
===============================================
\
Find replace for solpartmenu items:
\
(find these in all *.ascx files and replace with nothing)
\
<%@ Register TagPrefix="dnn" TagName="ACTIONS" Src="~/Admin/Containers/SolPartActions.ascx" %>
<%@ Register TagPrefix="dnn" TagName="SOLPARTMENU" Src="~/Admin/Skins/SolPartMenu.ascx" %>
<%@ Register TagPrefix="dnn" TagName="SOLPARTACTIONS" Src="~/Admin/Containers/SolPartActions.ascx" %>
<%@ Register TagPrefix="dnn" TagName="ACTIONBUTTON1" Src="~/Admin/Containers/ActionButton.ascx" %>
<%@ Register TagPrefix="dnn" TagName="ACTIONBUTTON2" Src="~/Admin/Containers/ActionButton.ascx" %>
<%@ Register TagPrefix="dnn" TagName="ACTIONBUTTON3" Src="~/Admin/Containers/ActionButton.ascx" %>
<%@ Register TagPrefix="dnn" TagName="ACTIONBUTTON4" Src="~/Admin/Containers/ActionButton.ascx" %>
\
<dnn:ACTIONS runat="server" id="dnnACTIONS" ProviderName="DNNMenuNavigationProvider" ExpandDepth="1" PopulateNodesFromClient="True" />
<dnn:ACTIONBUTTON runat="server" id="dnnACTIONBUTTON5" CommandName="ModuleHelp.Action" DisplayIcon="True" DisplayLink="False" />
<dnn:ACTIONBUTTON runat="server" ID="dnnACTIONBUTTON1" CommandName="AddContent.Action" DisplayIcon="True" DisplayLink="True" />
<dnn:ACTIONBUTTON runat="server" ID="dnnACTIONBUTTON2" CommandName="SyndicateModule.Action" DisplayIcon="True" DisplayLink="false" />
<dnn:ACTIONBUTTON runat="server" id="dnnACTIONBUTTON3" CommandName="PrintModule.Action" DisplayIcon="True" DisplayLink="False" />
<dnn:ACTIONBUTTON runat="server" ID="dnnACTIONBUTTON4" CommandName="ModuleSettings.Action" DisplayIcon="True" DisplayLink="false" />
\
<dnn:SOLPARTACTIONS runat="server" id="dnnSOLPARTACTIONS" />
<dnn:ACTIONBUTTON1 runat="server" id="dnnACTIONBUTTON1" commandname="AddContent.Action" displayicon="True" displaylink="True" />
<dnn:ACTIONBUTTON4 runat="server" id="dnnACTIONBUTTON4" commandname="ModuleSettings.Action" displayicon="True" displaylink="False" />
<dnn:ACTIONBUTTON2 runat="server" id="dnnACTIONBUTTON2" commandname="SyndicateModule.Action" displayicon="True" displaylink="False" />
<dnn:ACTIONBUTTON3 runat="server" id="dnnACTIONBUTTON3" commandname="PrintModule.Action" displayicon="True" displaylink="False" />
<dnn:ACTIONS runat="server" id="dnnACTIONS" />
\
Remove all solpar and dnn:action items from _default portal files.
===============================================
===============================================
\
Install latest version of links module:
https://github.com/DNNCommunity/DNN.Links/releases/download/07.00.01/DNN_Links_7.0.1_Install.zip
Run the following sql update in ssms:
update Links
set RefreshInterval = 0
where RefreshInterval is null
\
update Links
set GrantRoles = ';0;'
where GrantRoles is null
\
\
===============================================
===============================================
\
Install latest version of announcements module:
\
===============================================
===============================================
\
Install the latest version of events module:
https://github.com/DNNCommunity/DNN.Events/releases/tag/07.00.06
\
===============================================
===============================================
Install the latest version of feedback module:https://github.com/DNNCommunity/DNN.Feedback/releases/tag/v6.6.3
===============================================
===============================================
Install the latest version of CKeditor module:https://github.com/w8tcha/dnnckeditor/releases/tag/v02.01.27
===============================================
===============================================
Install the latest version of DNNSmart EffectCollection:In the files section: DNNSmart.EffectCollection_5.5.1_PA(22 effects in 1)After installation run the following query in the relevant db in ssms:
select * from modulesettings
where settingname = 'effect' and settingvalue like 'E0%'
select * from modulesettings
where settingname = 'skin' and settingvalue like 'E0%'
update modulesettings
set settingvalue='E031_ResponsiveBanner'
where settingname = 'effect' and settingvalue like 'E0%'
update modulesettings
set settingvalue='E031-Default'
where settingname = 'skin' and settingvalue like 'E0%'
\
\
===============================================
===============================================
\
\
PINK ONLY
Install the latest version of EasyDNNgallery:
In the files section: EasyDNNGallery_10.06.00_Install_DNN_6.2x_DNN_7.x_DNN_8.x_DNN_9.x
\
===============================================
===============================================
\
\
Run these stored procedure update commands:
\
ALTER procedure [dbo].[GetLinkImage]
\
@ItemId int,
@ModuleId int
\
as
\
select F1.Title,
'URL' = case when F2.FileName is null then L.URL else F2.Folder + F2.FileName end,
ViewOrder,
F1.Description,
UT.NewWindow,
'ImageName' = case when F1.FileName is null then L.ImageName else F1.Folder + F1.FileName end,
UT.Clicks,
'CreatedByUser' = U.FirstName,
UT.CreatedDate,
ImageName,
ImageHeight,
ImageWidth,
UT.TrackClicks,
IsFlash
from dbo.LinkImage L
left outer join dbo.Users U on L.CreatedByUser = U.UserId
left outer join dbo.UrlTracking UT on L.URL = UT.Url and UT.ModuleId = @ModuleID
left outer join dbo.Files F1 on L.ImageName = 'fileid=' + convert(varchar,F1.FileID)
left outer join dbo.Files F2 on L.Url = 'fileid=' + convert(varchar,F2.FileID)
where ItemId = @ItemId
\
ALTER procedure [dbo].[GetLinkImages]
\
@ModuleId int
\
as
\
select ItemId,
L.CreatedByUser,
UT.CreatedDate,
F1.Title,
'URL' = case when F2.FileName is null then L.URL else F2.Folder + F2.FileName end,
ViewOrder,
F1.Description,
UT.NewWindow,
'ImageName' = case when F1.FileName is null then L.ImageName else F1.Folder + F1.FileName end,
ImageHeight,
ImageWidth,
UT.TrackClicks,
IsFlash
from dbo.LinkImage L
left outer join dbo.UrlTracking UT on L.URL = UT.Url and UT.ModuleId = @ModuleID
left outer join dbo.Files F1 on L.ImageName = 'fileid=' + convert(varchar,F1.FileID)
left outer join dbo.Files F2 on L.Url = 'fileid=' + convert(varchar,F2.FileID)
where L.ModuleId = @ModuleId
order by ViewOrder, F1.Title
\
===============================================
===============================================
\
Helpful script to find container and skin for portal
\
(change the httpalias like statement to contain the url for the site in question)
\
select * from portalalias where httpalias like '%vosmi.org%'
select * from portalsettings where portalid = 10
\
===============================================
===============================================
\
If you're getting a "searchDocument" error such as the example below, you can easily fix this by removing the BusinessControllerClass from the DNN Admin Menu.
\
2020-07-29 15:36:18,418 [DevForceOne][Thread:87][ERROR] DotNetNuke.Services.Search.Internals.InternalSearchControllerImpl - Search Document error: Portal ID: 13, Tab ID: 567, Module ID: 1441, Mod. Def.ID: 112, Url: , Unique Key: 39, Last Modified: 0001-01-01T00:00:00.0000000, Culture: , Search Type: 1
System.ArgumentException: searchDocument
Parameter name: The property 'ModifiedTimeUtc' in object 'searchDocument' is invalid.
at DotNetNuke.Common.Requires.PropertyNotEqualTo[TValue](String argName, String argProperty, TValue propertyValue, TValue testValue)
at DotNetNuke.Services.Search.Internals.InternalSearchControllerImpl.AddSearchDocumentInternal(SearchDocument searchDocument, Boolean autoCommit)
at DotNetNuke.Services.Search.Internals.InternalSearchControllerImpl.AddSearchDocuments(IEnumerable`1 searchDocuments)
\
After getting the ModuleId from the error, run the below SQL Query from SSMS on the target database
select * from DesktopModules as DM
join ModuleDefinitions as MD on md.DesktopModuleID = DM.DesktopModuleID
where ModuleDefID = 112
After finding the FriendlyName from the query results, you can open the DNN Admin Menu > Extensions > YourExtension (pencil icon) > Extension Settings. Remove the value for the Business Controller Class filed and hit save (bottom).
\
============================================================
If the site you're on has a Theme by DNN Go (i.e. 20015-Un
limitedColors*) you'll need to upgrade the modules and install the Kella theme we purchased. You'll then need to bring in the old styling from the "StyleSwitch" module that is no longer in use for DNNGo and update skin templates themselves to bring in the correct JavaScript and skins/logic from the DNNGoThemePluginPro module in the DesktopModules folder. An example of this working can be found in the DNNPink instance in Portal 24/skins/20015-unlimitedcolorspack-001/insidepage.ascx
\
Copy the following styles and script tag from prd site into upgraded skin file:

\
============================================================
\
If the site you're on is NOT using a Theme by DNN Go (i.e. 20015-UnlimitedColors*) you'll need to go into that sites relevant container file and change the img sources to point at the specific portal; <img src= "Portal/{portal#}/{containerName}/media/{imgName} />
\
==================================================================
\
If PackFlash is being used on a portal (there should only be one (portal 69 on 615 instance)) then turn off the emailer in the DNN scheduler.
\
==================================================================
\
Disable EventsCalendar scheduled task.
Go into the Events module extension settings and remove the Business Controller Class.
\
\
\
When upgrading from 9.1.1 to 9.2, users may encounter the following error message:
Compilation Error Message: BC30456: 'TimeZone' is not a member of 'DotNetNuke.Entities.Users.UserProfile'.
This error occurs when upgrading a DNN website from 9.1.1 to 9.2 while having the iFrame module installed.
Either solution below will be validated by a successful upgrade.