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