DotNetNuke Powered!
          
John Mitchell's (mostly DotNetNuke) Blog - Need to Insert new Tabs, Permissions, and Modules into a DotNetNuke DB using only T-SQL?
 Tuesday, May 30, 2006

DECLARE @PortalId int
SET @PortalId = 0
DECLARE @AdministratorId int
SET @AdministratorId = 2
DECLARE @TabId int
DECLARE @TabViewPermissionId int
DECLARE @TabEditPermissionId int
DECLARE @AdminRoleId int

DECLARE @AFModuleDefId int
DECLARE @AFModuleId int
DECLARE @ModuleViewPermissionId int
DECLARE @ModuleEditPermissionId int

--create a new Tab for the conversion
INSERT INTO {databaseOwner}{objectQualifier}Tabs (PortalId,TabName,IsVisible,DisableLink,
ParentId,IconFile,Title,Description,KeyWords,
IsDeleted,Url,SkinSrc,ContainerSrc,TabPath,
StartDate,EndDate
) values (
@PortalId,'ActiveForumsConversion',1,0,
null,'','ActiveForumsConversion','','',0,
'',null,null,'//ActiveForumsConversion',
null,null
)

SELECT @TabId = SCOPE_IDENTITY()

--get the administrator roleid
SELECT DISTINCT @AdminRoleId = RoleId
FROM {databaseOwner}{objectQualifier}Roles
WHERE RoleName = 'Administrators'
AND PortalId = @PortalId

--Get the Permission IDs for the Tab & Module
SELECT DISTINCT @TabViewPermissionId = PermissionId
FROM {databaseOwner}{objectQualifier}Permission
WHERE PermissionCode = 'SYSTEM_TAB'
AND PermissionKey = 'VIEW'

SELECT DISTINCT @TabEditPermissionId = PermissionId
FROM {databaseOwner}{objectQualifier}Permission
WHERE PermissionCode = 'SYSTEM_TAB'
AND PermissionKey = 'EDIT'

SELECT DISTINCT @ModuleViewPermissionId = PermissionId
FROM {databaseOwner}{objectQualifier}Permission
WHERE PermissionCode = 'SYSTEM_MODULE_DEFINITION'
AND PermissionKey = 'VIEW'

SELECT DISTINCT @ModuleEditPermissionId = PermissionId
FROM {databaseOwner}{objectQualifier}Permission
WHERE PermissionCode = 'SYSTEM_MODULE_DEFINITION'
AND PermissionKey = 'EDIT'

--Add permissions for the Tab
INSERT INTO {databaseOwner}{objectQualifier}TabPermission
(TabId,PermissionId,RoleId,AllowAccess)
VALUES (@TabId,@TabViewPermissionId,@AdminRoleId,1)

INSERT INTO {databaseOwner}{objectQualifier}TabPermission
(TabId,PermissionId,RoleId,AllowAccess)
VALUES (@TabId,@TabEditPermissionId,@AdminRoleId,1)

--get the Module Definition for the ActiveForums Module

SELECT @AFModuleDefId = ModuleDefId FROM {databaseOwner}{objectQualifier}ModuleDefinitions WHERE FriendlyName='NTForums'

--create a new instance of the ActiveForums Module
INSERT INTO {databaseOwner}{objectQualifier}Modules
( PortalId, ModuleDefId, ModuleTitle,
AllTabs, Header, Footer, StartDate, EndDate,
InheritViewPermissions, IsDeleted
)
VALUES ( @PortalId, @AFModuleDefId,'ActiveForums_Adverageous',
0,null,null,null,null,1,0
)
SELECT @AFModuleId = SCOPE_IDENTITY()

--Add permissions for the Module
INSERT INTO {databaseOwner}{objectQualifier}ModulePermission
(ModuleId,PermissionId,RoleId,AllowAccess)
VALUES (@AFModuleId,@ModuleViewPermissionId,@AdminRoleId,1)
INSERT INTO {databaseOwner}{objectQualifier}ModulePermission
(ModuleId,PermissionId,RoleId,AllowAccess)
VALUES (@AFModuleId,@ModuleEditPermissionId,@AdminRoleId,1)

--add the Module to the Tab
INSERT INTO {databaseOwner}{objectQualifier}TabModules
( TabId,ModuleId,PaneName,ModuleOrder,
CacheTime,Alignment,Color,Border,
IconFile, Visibility,ContainerSrc,
DisplayTitle,DisplayPrint,DisplaySyndicate)
VALUES ( @TabId, @AFModuleId,'ContentPane',1,
0,null,null,null,
null,0,null,1,0,0)

5/30/2006 8:51:38 PM (Central Standard Time, UTC-06:00)  #    Comments [1]
10/3/2007 11:33:03 AM (Central Standard Time, UTC-06:00)
So often when I have a DNN problem, a google search finds you and comes up trumps!

Thanks!
Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):