USP_CLONESITE_THEME
Copy theme from one site to another
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SourceClientSitesID | int | IN | |
@TargetClientSitesID | int | IN | |
@CurrentUserID | int | IN | |
@CopyBatchGUID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_CLONESITE_THEME
(
@SourceClientSitesID as int
,@TargetClientSitesID as int
,@CurrentUserID as int
,@CopyBatchGUID as uniqueidentifier
)
as
begin
set nocount on;
declare @CHANGEAGENTID uniqueidentifier,
@CURRENTDATE datetime
if @CHANGEAGENTID is null
exec USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
set @CURRENTDATE = getdate();
declare @tmpTheme table(OLDTHEMEID uniqueidentifier, NEWTHEMEID uniqueidentifier, NEWIMAGEID int)
declare @tmpThemeLayout table(OLDLAYOUTID int, NEWLAYOUTID int)
declare @tmpThemeStyleSheet table(OLDSSID int, NEWSSID int)
insert into @tmpTheme select T.ID as OLDTHEMEID, NEWID() as NEWTHEMEID, SI.ID as NEWIMAGEID
from dbo.THEME T
left join dbo.SiteImages SI on SI.CopySourceID = T.IMAGEID and SI.CLIENTSITESID = @TargetClientSitesID
where T.CLIENTSITESID = @SourceClientSitesID
-- Default theme copy
update TARGETSETTING
set TARGETSETTING.VALUE = lower(SOURCETHEME.NEWTHEMEID)
from dbo.CMSSITESETTING (nolock) SOURCESETTING
join dbo.CMSSITESETTING (nolock) TARGETSETTING
on SOURCESETTING.ENUMID = TARGETSETTING.ENUMID
join @tmpTheme SOURCETHEME
on SOURCETHEME.OLDTHEMEID = case when len(SOURCESETTING.value)<>36 then '00000000-0000-0000-0000-000000000000' else SOURCESETTING.value end
where SOURCESETTING.ENUMID in (29, 44)
and SOURCESETTING.CLIENTSITESID=@SourceClientSitesID
and TARGETSETTING.CLIENTSITESID=@TargetClientSitesID;
insert into dbo.THEME
(ID, CLIENTSITESID, NAME, DESCRIPTION, DEFAULTSTYLING, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, IMAGEID, DEFAULTSTYLINGSEQUENCE, LAYOUTSTYLINGSEQUENCE)
select tmpT.NEWTHEMEID, @TargetClientSitesID, NAME, DESCRIPTION, DEFAULTSTYLING,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE, coalesce(tmpT.NEWIMAGEID,0), DEFAULTSTYLINGSEQUENCE, LAYOUTSTYLINGSEQUENCE
from dbo.THEME T
join @tmpTheme tmpT ON T.ID = tmpT.OLDTHEMEID
left join dbo.PAGEMODELITEM (nolock)
on T.ID = PAGEMODELITEM.OBJECTGUID
left join dbo.PAGEMODEL
on PAGEMODELITEM.PAGEMODELID = PAGEMODEL.ID
where coalesce(PAGEMODEL.LOCKARTIFACTS, 0) <> 1
and T.CLIENTSITESID = @SourceClientSitesID
insert into @tmpThemeLayout select SL.COPYSOURCEID as OLDLAYOUTID, SL.ID as NEWLAYOUTID
from SiteLayouts SL
where SL.COPYBATCHGUID = @CopyBatchGUID
insert into dbo.THEMELAYOUT
(ID, THEMEID, LAYOUTID, SEQUENCE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
select newID(), tmpT.NEWTHEMEID, tmpTL.NEWLAYOUTID, SEQUENCE,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE
from dbo.THEMELAYOUT TL
join @tmpThemeLayout tmpTL on TL.LAYOUTID = tmpTL.OLDLAYOUTID
left join @tmpTheme tmpT on TL.THEMEID = tmpT.OLDTHEMEID
where THEMEID in (select ID from dbo.THEME where ClientSitesID = @SourceClientSitesID)
insert into @tmpThemeStyleSheet select SSS.COPYSOURCEID as OLDSSID, SSS.ID as NEWSSID
from SiteStyleSheets SSS
where SSS.COPYBATCHGUID = @CopyBatchGUID
insert into dbo.THEMESTYLESHEET
(ID, THEMEID, STYLESHEETID, SEQUENCE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
select newID(), tmpT.NEWTHEMEID, tmpTSS.NEWSSID, SEQUENCE,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE
from dbo.THEMESTYLESHEET TSS
join @tmpThemeStyleSheet tmpTSS on TSS.STYLESHEETID = tmpTSS.OLDSSID
left join @tmpTheme tmpT on TSS.THEMEID = tmpT.OLDTHEMEID
end