spClone_SiteContent

Parameters

Parameter Parameter Type Mode Description
@PKID int INOUT
@CurrentUsersID int IN
@NewName nvarchar(510) IN
@NewGuid uniqueidentifier IN

Definition

Copy



 CREATE procedure [dbo].[spClone_SiteContent]
(
@PKID        int output,
@CurrentUsersID int,
@NewName    nvarchar(510),
@NewGuid  uniqueidentifier
)
as
    declare @SRCID int
    set @SRCID = @PKID

    insert into SiteContent
    (
        Title,
        Description,
        ContentTypesID,
        Guid,
        CacheTime,
        AuthorizedEditRoles,
        ShowMobile,
        ExpireDate,
        PublishDate,
        ClientSitesID,
        XMLData,
        OwnerID,
        IsTimePublished,
        LanguageTarget,
        TestMode,
        Discoverable,
        DiscoverableTitle,
        DiscoverableSummary,
        WorkflowID,
        ShareInSiteCopy,
        CanCreateLocalCopy,
        ChangedByCMSUserID
    )

select
        @NewName,
        Description,
        ContentTypesID,
        @NewGuid,
        CacheTime,
        AuthorizedEditRoles,
        ShowMobile,
        ExpireDate,
        PublishDate,
        ClientSitesID,
        XMLData,
        @CurrentUsersID,
        IsTimePublished,
        LanguageTarget,
        TestMode,
        Discoverable,

        DiscoverableTitle,
        DiscoverableSummary,
        WorkflowID,
        ShareInSiteCopy,
        CanCreateLocalCopy,
        @CurrentUsersID
    from SiteContent where ID = @SRCID

    select @PKID = @@Identity

    declare @ContentTypesID int
    declare @XMLData nvarchar(max)    
    select @ContentTypesID = ContentTypesID, @XMLData = XMLData from dbo.SiteContent where ID = @PKID


    /* content versioning */
    /* formatted text and images only */
    if dbo.fnContentTypeSupportsVersioning(@ContentTypesID)=1
    begin

        declare @OriginPartStatus int = null
        select top 1 @OriginPartStatus = scv.[Status] from dbo.SiteContentVersion scv where scv.SiteContentID = @SRCID order by scv.ID desc

        if @OriginPartStatus is not null
        begin
            if @OriginPartStatus = 4
                insert into dbo.SiteContentVersion (SiteContentID, [XMLData], [Status], [StatusUpdatedBy]) values (@PKID, @XMLData, 0, @CurrentUsersID)
            else if coalesce(dbo.fnGetDefaultWorkflowID(@ContentTypesID), dbo.fnGetDefaultWorkflowID(@ContentTypesID)) is not null
                insert into dbo.SiteContentVersion (SiteContentID, [XMLData], [Status], [StatusUpdatedBy]) values (@PKID, @XMLData, @OriginPartStatus, @CurrentUsersID)
            else
                insert into dbo.SiteContentVersion (SiteContentID, [XMLData], [Status], [StatusUpdatedBy]) values (@PKID, @XMLData, 2, @CurrentUsersID)
        end
    end                

    /*Updating Site Content folder on new content*/
    insert into SITECONTENTFOLDERS (SITEFOLDERSID, CONTENTID) select SITEFOLDERSID, @PKID from SITECONTENTFOLDERS where CONTENTID = @SRCID

    exec spAuditThis @CurrentUsersID, 1, @NewGuid, 1