|
create table {databaseOwner}MDO_PageRating
(
PageID int identity primary key,
PortalID int,
PageGuid nvarchar(256)
);
GO
create procedure {databaseOwner}MDO_PageRating_EnsurePage
@PortalID int,
@PageGuid nvarchar(max),
@PageID int out
as
begin
select @PageID = PageID from MDO_PageRating
where PageGuid = @PageGuid and PortalID = @PortalID
if @PageID is null begin
insert {databaseOwner}MDO_PageRating(PortalID, PageGuid)
values(@PortalID, @PageGuid);
set @PageID = SCOPE_IDENTITY();
end;
end;
GO
create table {databaseOwner}MDO_PageRating_Rate
(
RateID int identity primary key,
PageID int constraint MDO_PageOfRating foreign key references MDO_PageRating(PageID)
on delete cascade on update cascade,
Value float,
Cookie uniqueidentifier
);
GO
create procedure {databaseOwner}[{objectQualifier}mdo_xslt_rate_page]
@PortalID int,
@PageGuid nvarchar(max),
@Value float,
@Cookie nvarchar(max)
as
begin
declare @PageID int;
exec {databaseOwner}MDO_PageRating_EnsurePage @PortalID, @PageGuid, @PageID out;
delete MDO_PageRating_Rate
where PageID = @PageID
and Cookie = @Cookie;
insert {databaseOwner}MDO_PageRating_Rate(PageID, Value, Cookie)
values(@PageID, @Value, @Cookie);
end;
GO
create procedure {databaseOwner}[{objectQualifier}mdo_xslt_page_rating]
@PortalID int,
@PageGuid nvarchar(max)
as
begin
select pr.* from {databaseOwner}MDO_PageRating_Rate pr
join {databaseOwner}MDO_PageRating p on p.PageID = pr.PageID
where p.PageGuid = @PageGuid
and p.PortalID = @PortalID;
select
SUM(StatCount) TotalVotes,
MAX(StatCount) Height,
SUM(StatValue * StatCount) / SUM(StatCount) Average
from (
select pr.Value StatValue, COUNT(*) StatCount
from {databaseOwner}MDO_PageRating_Rate pr
join {databaseOwner}MDO_PageRating p on p.PageID = pr.PageID
where p.PageGuid = @PageGuid
and p.PortalID = @PortalID
group by pr.Value) t;
end;
GO
create table {databaseOwner}MDO_PageRating_Comment
(
CommentID int identity primary key,
ParentID int,
PageID int constraint MDO_PageOfComment foreign key references MDO_PageRating(PageID)
on delete cascade on update cascade,
Comment nvarchar(max),
EMail nvarchar(128),
URL nvarchar(128),
Name nvarchar(128),
DTCreated datetime default getdate()
);
GO
create procedure {databaseOwner}[{objectQualifier}mdo_xslt_comment_page]
@PortalID int,
@PageGuid nvarchar(max),
@ParentID int,
@Comment nvarchar(max),
@Name nvarchar(max),
@EMail nvarchar(max),
@URL nvarchar(max)
as
begin
declare @PageID int;
exec {databaseOwner}MDO_PageRating_EnsurePage @PortalID, @PageGuid, @PageID out;
if @ParentID < 1 set @ParentID = null;
insert {databaseOwner}MDO_PageRating_Comment(ParentID,PageID,Comment,EMail,URL,Name)
values(@ParentID,@PageID,@Comment,@EMail,@URL,@Name);
end;
GO
create procedure {databaseOwner}[{objectQualifier}mdo_xslt_page_comments]
@PortalID int,
@PageGuid nvarchar(max)
as
begin
select c.* from {databaseOwner}MDO_PageRating_Comment c
join {databaseOwner}MDO_PageRating p on p.PageID = c.PageID
where p.PageGuid = @PageGuid
and p.PortalID = @PortalID;
end;
GO
create procedure {databaseOwner}[{objectQualifier}mdo_xslt_delete_page_comment]
@PortalID int,
@CommentID int
as
begin
delete {databaseOwner}MDO_PageRating_Comment
where CommentID = @CommentID
and PageID in (select PageID from {databaseOwner} MDO_PageRating where PortalID = @PortalID);
end;
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.