USP_CLONESITE_USERLOGIN
Handles the User Login-specific steps for cloning a CMS site.
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_USERLOGIN
(
@SourceClientSitesID int,
@TargetClientSitesID int,
@CurrentUserID int,
@CopyBatchGuid uniqueidentifier
)
as
-- copy the new user acknowledgement and forgotten password email templates for this part
declare @IDs xml
set @IDs =
(
select ID from
(
select ET.ID
from EmailTemplate ET
inner join SignInProperties SIP on SIP.NewUserTemplateID = ET.ID
inner join dbo.SiteContent SC on SC.CopySourceID = SIP.ContentID
where ET.ClientSitesID = @SourceClientSitesID and ET.Deleted = 0 and SC.CopyBatchGUID = @CopyBatchGUID
union all
select ET.ID
from EmailTemplate ET
inner join SignInProperties SIP on SIP.ForgottenPWDTemplateID = ET.ID
inner join dbo.SiteContent SC on SC.CopySourceID = SIP.ContentID
where ET.ClientSitesID = @SourceClientSitesID and ET.Deleted = 0 and SC.CopyBatchGUID = @CopyBatchGUID
) E
FOR XML RAW, ELEMENTS
)
exec spCloneSite_EmailTemplate @TargetClientSitesID,@CurrentUserID,@CopyBatchGUID,@IDs
INSERT INTO SignInProperties
(HomePageID, NewUserStartPageID, NewUserTemplateID, ForgottenPWDTemplateID, ContentID)
SELECT
hp.ID,
nu.ID,
nuet.ID,
fpet.ID,
SiteContent.ID
FROM SignInProperties
INNER JOIN SiteContent ON SiteContent.CopySourceID = SignInProperties.ContentID AND SiteContent.CopyBatchGuid = @CopyBatchGuid
LEFT JOIN SitePages hp ON hp.CopySourceID = SignInProperties.HomePageID AND hp.CopyBatchGuid = @CopyBatchGuid
LEFT JOIN SitePages nu ON nu.CopySourceID = SignInProperties.NewUserStartPageID AND nu.CopyBatchGuid = @CopyBatchGuid
LEFT JOIN EmailTemplate nuet ON nuet.CopySourceID = SignInProperties.NewUserTemplateID AND nuet.CopyBatchGuid = @CopyBatchGuid
LEFT JOIN EmailTemplate fpet ON fpet.CopySourceID = SignInProperties.ForgottenPWDTemplateID AND fpet.CopyBatchGuid = @CopyBatchGuid
INSERT INTO SignOnControls
(Required, ContentID, DisplayOrder, AttributeTypeID, FieldID, ParentFieldID, Display, Text)
SELECT
[Required],
SiteContent.ID,
DisplayOrder,
AttributeTypeID,
FieldID,
ParentFieldID,
Display,
[Text]
FROM SignOnControls
INNER JOIN SiteContent ON SiteContent.CopySourceID = SignOnControls.ContentID AND SiteContent.CopyBatchGuid = @CopyBatchGuid
--Update XML Data
declare @Data xml
set @Data =
(
select P.SiteContentID, cast(SP.ID as nvarchar) + ';' + SUBSTRING(P.Value, CHARINDEX(';',P.Value)+1, LEN(P.Value)) as Value
from (select P.SiteContentID, case when (CHARINDEX(';',P.Value) > 0) then P.Value else P.Value + ';0' end as Value from dbo.UFN_GETXMLPROPERTYFORSITECOPY(@CopyBatchGuid,33,'HomePage') P) P
inner join dbo.SitePages SP on SP.CopySourceID = SUBSTRING(P.Value, 0, CHARINDEX(';',P.Value))
where SP.CopyBatchGUID = @CopyBatchGUID
FOR XML RAW, ELEMENTS
)
exec USP_UPDATEXMLPROPERTYFORSITECOPY 'HomePage', @Data
set @Data =
(
select P.SiteContentID, cast(SP.ID as nvarchar) + ';' + SUBSTRING(P.Value, CHARINDEX(';',P.Value)+1, LEN(P.Value)) as Value
from (select P.SiteContentID, case when (CHARINDEX(';',P.Value) > 0) then P.Value else P.Value + ';0' end as Value from dbo.UFN_GETXMLPROPERTYFORSITECOPY(@CopyBatchGuid,33,'NewUserStartPage') P) P
inner join dbo.SitePages SP on SP.CopySourceID = SUBSTRING(P.Value, 0, CHARINDEX(';',P.Value))
where SP.CopyBatchGUID = @CopyBatchGUID
FOR XML RAW, ELEMENTS
)
exec USP_UPDATEXMLPROPERTYFORSITECOPY 'NewUserStartPage', @Data
set @Data =
(
select P.SiteContentID, cast(SP.ID as nvarchar) + ';' + SUBSTRING(P.Value, CHARINDEX(';',P.Value)+1, LEN(P.Value)) as Value
from (select P.SiteContentID, case when (CHARINDEX(';',P.Value) > 0) then P.Value else P.Value + ';0' end as Value from dbo.UFN_GETXMLPROPERTYFORSITECOPY(@CopyBatchGuid,33,'LogoutPage') P) P
inner join dbo.SitePages SP on SP.CopySourceID = SUBSTRING(P.Value, 0, CHARINDEX(';',P.Value))
where SP.CopyBatchGUID = @CopyBatchGUID
FOR XML RAW, ELEMENTS
)
exec USP_UPDATEXMLPROPERTYFORSITECOPY 'LogoutPage', @Data