In this article we shall be using SQL commands to modify and delete the User
Account module reference. Recent versions of DotNetNuke are configured such that
the User Account module does not allow access to its settings, in the normal way
of a DotNetNuke module, rather it operates as a module in edit mode. This means
that once the module has been added to a page access to other items on the page
is removed. Also it is not possible to delete the module, because the action
arrow and its associated options are missing.
If you have host access to your DotNetNuke portal then using the SQL tab it
is possible to either move the module to the recycle bin, or to delete it. In
the examples below I will assume that the error has occured on portal No.45.
To begin the ModuleId needs to be determined. Having logged into the portal
with a host/superuser account navigate to the SQL tab under the host tabs. Enter
and execute the following SQL command.
SELECT * FROM modules WHERE portalid = 45 ORDER BY moduleid DESC
This will give us a list of the modules, sorted by the module having the
highest number first, the last one added, for the portal of interest.
| ModuleID |
ModuleDefID |
ModuleTitle |
AllTabs |
IsDeleted |
InheritViewPermissions |
Header |
Footer |
StartDate |
EndDate |
PortalID |
| 377 |
137 |
User Accounts |
False |
False |
True |
|
|
|
|
45 |
| 375 |
133 |
janet.Gallery |
False |
False |
True |
|
|
|
|
45 |
| 374 |
132 |
Text/HTML |
False |
False |
True |
|
|
|
|
45 |
| 373 |
109 |
Text/HTML |
False |
False |
True |
|
|
|
|
45 |
| 372 |
131 |
janet.FontSize |
False |
False |
True |
|
|
|
|
45 |
| 371 |
130 |
janet.ReferMe! |
False |
False |
True |
|
|
|
|
45 |
As can be seen from the fragment of listing above the modules are listed,
together with their title. It is probably worth double-checking that we are
looking at the correct module (ModuleID= 377). You may wish to open another tab
in your browser to keep the previous set of information, then execute the
following piece of SQL code:
SELECT * FROM tabmodules
To get a list of modules, identified by their ModuleId and the Tab/Page which
they are on, identified by the TabId.
SELECT * FROM tabs
Will give a list of tabs, together with their TabId.
To perform our double check ensure that our chosen module and its ModuleId
are in the same row of the tabmodules table as the tab and its TabId.
There are a couple of options available to us: 1. delete the module; 2.
change its IsDeleted condition and thereby move it to the recycle bin.
1. Deleting the module.
From the exercise we have taken above there are two tables where the module
needs to be deleted. Care should be taken with the following actions, to avoide
deleting other data.
DELETE FROM Modules WHERE ModuleId = 377
DELETE FROM tabmodules WHERE
ModuleId = 377
2. Change the IsDeleted flag
Execute the following SQL code
UPDATE Modules SET IsDeleted = 1 WHERE ModuleId = 337
It is probably better to move the module to the recycle bin and allow
DotNetNuke to perform a tidy deletion.
Having deleted the module I found that the occurance of it still persisted on
the page. A cache refresh was required. If you have access to the DotNetNuke
directory structure perform a simple edit of the file web.config, for example
using notepad add a single space and remove it again in the irst line.
NAT March 2007