USP_CLONESITE_TARGETEDCONTENT

Handles the TargetedContent-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_TARGETEDCONTENT
(
@SourceClientSitesID int,
@TargetClientSitesID int,
@CurrentUserID int,
@CopyBatchGuid uniqueidentifier
)
as



--Insert new entries into TargetedContentPart

insert into dbo.TargetedContentPart (Name, SiteContentID, Guid)
select TCP.Name, SC.ID, NEWID()
from dbo.TargetedContentPart TCP
inner join dbo.SiteContent SC on SC.CopySourceID = TCP.SiteContentID
where SC.CopyBatchGUID = @CopyBatchGuid

--Find matches between the original and copied eCardPart entries

declare @TCPartMapping table ([SourcePartID] int, [NewPartID] int)
insert into @TCPartMapping
select S.ID, T.ID
from dbo.TargetedContentPart S
inner join dbo.SiteContent SC on SC.CopySourceID = S.SiteContentID
inner join dbo.TargetedContentPart T on T.SiteContentID = SC.ID
where SC.CopyBatchGUID = @CopyBatchGuid

--Insert new entries into TargetedContentChecks

insert into dbo.TargetedContentChecks (TargetedPartID, PartOrder, ContentID)
select TCPM.NewPartID, TCC.PartOrder, ISNULL(SC.ID,TCC.ContentID)
from dbo.TargetedContentChecks TCC
inner join @TCPartMapping TCPM on TCPM.SourcePartID = TCC.TargetedPartID
left outer join dbo.SiteContent SC on SC.CopySourceID = TCC.ContentID and SC.CopyBatchGUID = @CopyBatchGuid

--Update XML Data

    declare @Data xml
    set @Data = 
    (
        select P.SiteContentID, TCPM.NewPartID as Value
        from dbo.UFN_GETXMLPROPERTYFORSITECOPY(@CopyBatchGuid,66, 'TargetedContentPartID') P
        inner join @TCPartMapping TCPM on TCPM.SourcePartID = P.Value
        FOR XML RAW, ELEMENTS
    )    
    exec USP_UPDATEXMLPROPERTYFORSITECOPY 'TargetedContentPartID', @Data