spAddUpdate_SiteContent
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PKID | int | INOUT | |
@VersionID | int | INOUT | |
@CurrentUsersID | int | IN | |
@Title | nvarchar(256) | IN | |
@Description | nvarchar(256) | IN | |
@XMLData | ntext | IN | |
@ExpireDate | datetime | IN | |
@PublishDate | datetime | IN | |
@CacheTime | int | IN | |
@EditRoles | nvarchar(256) | IN | |
@ClientSitesID | int | IN | |
@ContentTypesID | int | IN | |
@Approved | bit | IN | |
@Guid | uniqueidentifier | INOUT | |
@IsTimePublished | bit | IN | |
@LanguageTarget | nvarchar(256) | IN | |
@WorkflowID | int | IN | |
@XMLDataIsDirty | bit | IN | |
@TestMode | bit | IN | |
@FromPageModelId | int | IN | |
@Discoverable | bit | IN | |
@DiscoverableTitle | nvarchar(255) | IN | |
@DiscoverableSummary | nvarchar(4000) | IN | |
@Categories | ntext | IN | |
@ShareInSiteCopy | bit | IN | |
@CanCreateLocalCopy | bit | IN | |
@BBSPEnabled | bit | IN |
Definition
Copy
CREATE procedure [dbo].[spAddUpdate_SiteContent]
(
@PKID int output,
@VersionID int output,
@CurrentUsersID int,
@Title nvarchar(256),
@Description nvarchar(256),
@XMLData ntext,
@ExpireDate datetime,
@PublishDate datetime,
@CacheTime int,
@EditRoles nvarchar(256),
@ClientSitesID int,
@ContentTypesID int,
@Approved bit,
@Guid uniqueidentifier output,
@IsTimePublished bit,
@LanguageTarget nvarchar(256),
@WorkflowID int,
@XMLDataIsDirty bit,
@TestMode bit,
@FromPageModelId int,
@Discoverable bit,
@DiscoverableTitle nvarchar(255),
@DiscoverableSummary nvarchar(4000),
@Categories ntext = '',
@ShareInSiteCopy bit = 0,
@CanCreateLocalCopy bit= 0,
@BBSPEnabled bit=0
)
as
DECLARE @Error int;
SET @Error = 0;
begin transaction spAddUpdate_SiteContent
if (@FromPageModelId <= 0) begin
set @FromPageModelId = null
end
if (@PKID<=0)
begin
insert into dbo.SiteContent
(
Title,
Description,
ExpireDate,
PublishDate,
XMLData,
CacheTime,
AuthorizedEditRoles,
ClientSitesID,
ContentTypesID,
OwnerID,
Approved,
IsTimePublished,
LanguageTarget,
WorkflowID,
TestMode,
FromModelId,
Discoverable,
DiscoverableTitle,
DiscoverableSummary,
ShareInSiteCopy,
CanCreateLocalCopy,
ChangedByCMSUserID,
BBSPEnabled
)
values
(
@Title,
@Description,
@ExpireDate,
@PublishDate,
@XMLData,
@CacheTime,
@EditRoles,
@ClientSitesID,
@ContentTypesID,
@CurrentUsersID,
@Approved,
@IsTimePublished,
@LanguageTarget,
coalesce(@WorkflowID, dbo.fnGetDefaultWorkflowID(@ContentTypesID)),
@TestMode,
@FromPageModelId,
@Discoverable,
@DiscoverableTitle,
@DiscoverableSummary,
@ShareInSiteCopy,
@CanCreateLocalCopy,
@CurrentUsersID,
@BBSPEnabled
)
SET @Error = @@ERROR;
select @PKID = @@Identity
select @Guid = Guid from SiteContent where ID = @PKID
exec spAuditThis @CurrentUsersID, 1, @Guid, 1
/* content versioning */
/* formatted text and images only */
if dbo.fnContentTypeSupportsVersioning(@ContentTypesID)=1
begin
if coalesce(@WorkflowID, dbo.fnGetDefaultWorkflowID(@ContentTypesID)) is not null
insert into dbo.SiteContentVersion (SiteContentID, [XMLData], [Status], [StatusUpdatedBy]) values (@PKID, @XMLData, 0, @CurrentUsersID)
else
insert into dbo.SiteContentVersion (SiteContentID, [XMLData], [Status], [StatusUpdatedBy]) values (@PKID, @XMLData, 2, @CurrentUsersID)
select @VersionID = @@Identity
end
end
else
begin
update dbo.SiteContent set
Title = @Title,
Description = @Description,
ExpireDate = @ExpireDate,
PublishDate = @PublishDate,
XMLData = @XMLData,
CacheTime = @CacheTime,
AuthorizedEditRoles = @EditRoles,
ClientSitesID = @ClientSitesID,
ContentTypesID = @ContentTypesID,
Approved = @Approved,
IsTimePublished = @IsTimePublished,
UpdateDate = getutcdate(),
LanguageTarget = @LanguageTarget,
WorkflowID = @WorkflowID,
TestMode = @TestMode,
FromModelId = @FromPageModelId,
Discoverable = @Discoverable,
DiscoverableTitle = @DiscoverableTitle,
DiscoverableSummary = @DiscoverableSummary,
ShareInSiteCopy = @ShareInSiteCopy,
CanCreateLocalCopy = @CanCreateLocalCopy,
ChangedByCMSUserID = @CurrentUsersID,
BBSPEnabled = @BBSPEnabled
where ID=@PKID
SET @Error = @@ERROR;
select @Guid = Guid from SiteContent where ID = @PKID
exec spAuditThis @CurrentUsersID, 2, @Guid, 1
/* content versioning */
if dbo.fnContentTypeSupportsVersioning(@ContentTypesID)=1 and @XMLDataIsDirty=1
begin
if exists(select null from dbo.SiteContentVersion where [SiteContentID]=@PKID and [Status] in (0,1))
/* update existing draft/pending change */
update dbo.SiteContentVersion set [XMLData]=@XMLData, [StatusUpdatedOn]=getutcdate(), [StatusUpdatedBy]=@CurrentUsersID where [SiteContentID]=@PKID and [Status] in (0,1)
else
if (@WorkflowID is not null)
/* add a new draft */
insert into dbo.SiteContentVersion (SiteContentID, [XMLData], [Status], [StatusUpdatedBy]) values (@PKID, @XMLData, 0, @CurrentUsersID)
else
/* update the mirrored live version if workflows do not apply */
update dbo.SiteContentVersion set [XMLData]=@XMLData, [StatusUpdatedOn]=getutcdate(), [StatusUpdatedBy]=@CurrentUsersID where [SiteContentID]=@PKID and [Status]=2
end
end
IF @Error = 0 BEGIN
EXEC USP_ADDUPDATE_SITECONTENTFOLDERS @PKID, @Categories;
SET @Error = @@ERROR;
END
IF @Error = 0
COMMIT TRANSACTION spAddUpdate_SiteContent;
ELSE
ROLLBACK TRANSACTION spAddUpdate_SiteContent;