⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 01.00.10.sqldataprovider

📁 SharpNuke源代码
💻 SQLDATAPROVIDER
📖 第 1 页 / 共 2 页
字号:
/************************************************************/
/*****              Upgrade Script 1.0.10                *****/
/************************************************************/

IF (SELECT COL_LENGTH('[dbo].ModuleEvents', 'AltText')) IS NULL
  ALTER TABLE [dbo].ModuleEvents ADD AltText nvarchar(50) NULL 
GO

if exists (select * from [dbo].sysobjects where id = object_id(N'[dbo].AddModuleEvent') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  drop procedure [dbo].AddModuleEvent
GO

create procedure [dbo].AddModuleEvent

@ModuleID    int,
@Description nvarchar(2000),
@DateTime    datetime,
@Title       nvarchar(100),
@ExpireDate  datetime = null,
@UserName    nvarchar(200),
@Every       int,
@Period      char(1),
@IconFile    nvarchar(256),
@AltText     nvarchar(50)
as

insert ModuleEvents ( 
  ModuleID,
  Description,
  DateTime,
  Title,
  ExpireDate,
  CreatedByUser,
  CreatedDate,
  Every,
  Period,
  IconFile,
  AltText
)
values (
  @ModuleID,
  @Description,
  @DateTime,
  @Title,
  @ExpireDate,
  @UserName,
  getdate(),
  @Every,
  @Period,
  @IconFile,
  @AltText
)
GO

if exists (select * from [dbo].sysobjects where id = object_id(N'[dbo].GetModuleEvents') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  drop procedure [dbo].GetModuleEvents
GO

create procedure [dbo].GetModuleEvents

@ModuleID int,
@StartDate datetime = null,
@EndDate datetime = null

as

declare @MaxWidth int

if @StartDate is null
begin
  select @MaxWidth = max(Width)
  from   ModuleEvents
  left outer join Files on ModuleEvents.IconFile = Files.FileName
  where  ModuleID = @ModuleID
  and    (ExpireDate > getdate() or ExpireDate is null)

  select ItemID,
         Description,
         DateTime,
         Title,
         ExpireDate,
         CreatedByUser,
         CreatedDate,
         IconFile,
         AltText,
         'MaxWidth' = @MaxWidth
  from   ModuleEvents
  where  ModuleID = @ModuleID
  and    (ExpireDate > getdate() or ExpireDate is null)
  order by DateTime
end
else
begin
  select ItemID,
         Description,
         DateTime,
         Title,
         ExpireDate,
         CreatedByUser,
         CreatedDate,
         Every,
         Period,
         IconFile,
         AltText
  from   ModuleEvents
  where  ModuleID = @ModuleID
  and    ( (Period is null and (DateTime >= @StartDate and DateTime <= @EndDate)) or Period is not null )
  order by DateTime
end

GO

if exists (select * from [dbo].sysobjects where id = object_id(N'[dbo].GetSingleModuleEvent') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  drop procedure [dbo].GetSingleModuleEvent
GO

create procedure [dbo].GetSingleModuleEvent

@ItemID   int,
@ModuleId int

as

select ItemID,
       Description,
       DateTime,
       Title,
       ExpireDate,
       'CreatedByUser' = FirstName + ' ' + LastName,
       ModuleEvents.CreatedDate,
       Every,
       Period,
       IconFile,
       AltText
from   ModuleEvents
left outer join Users on ModuleEvents.CreatedByUser = Users.UserId
where  ItemID = @ItemID
and    ModuleId = @ModuleId

GO

if exists (select * from [dbo].sysobjects where id = object_id(N'[dbo].UpdateModuleEvent') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  drop procedure [dbo].UpdateModuleEvent
GO

create procedure [dbo].UpdateModuleEvent

@ItemId      int,
@Description nvarchar(2000),
@DateTime    datetime,
@Title       nvarchar(100),
@ExpireDate  datetime = null,
@UserName    nvarchar(200),
@Every       int,
@Period      char(1),
@IconFile    nvarchar(256),
@AltText     nvarchar(50)

as

update ModuleEvents
set    Description = @Description,
       DateTime = @DateTime,
       Title = @Title,
       ExpireDate = @ExpireDate,
       CreatedByUser = @UserName,
       CreatedDate = getdate(),
       Every = @Every,
       Period = @Period,
       IconFile = @IconFile,
       AltText = @AltText
where  ItemId = @ItemId
GO

update ModuleSettings 
set SettingValue = '<table cellpadding="2" cellspacing="0" summary="Module Design Table" width="100%"[COLOR][BORDER]><tr><td[ALIGN]>[MODULE]</td></tr></table>'
where SettingName = 'container'
GO

ALTER TABLE [dbo].UserDefinedData
	DROP CONSTRAINT FK_UserDefinedData_UserDefinedRows
GO

ALTER TABLE [dbo].UserDefinedData WITH NOCHECK ADD CONSTRAINT
	FK_UserDefinedData_UserDefinedRows FOREIGN KEY
	(
	UserDefinedRowId
	) REFERENCES [dbo].UserDefinedRows
	(
	UserDefinedRowId
	) ON DELETE CASCADE
	 NOT FOR REPLICATION

GO

if exists (select * from [dbo].sysobjects where id = object_id(N'[dbo].GetUserDefinedRows') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  drop procedure [dbo].GetUserDefinedRows
GO

create procedure [dbo].GetUserDefinedRows 

@ModuleId int 

as 

select UserDefinedRows.UserDefinedRowId, 
       UserDefinedFields.FieldTitle, 
       'FieldValue' = 
         Case charindex('http:', UserDefinedData.FieldValue) 
           When 0 Then
             Case charindex('@', UserDefinedData.FieldValue) 
               When 0 Then 
                 UserDefinedData.FieldValue 
               Else 
                 '<a href=mailto:' + UserDefinedData.FieldValue + '>' + UserDefinedData.FieldValue + '</a>' 
               End 
           Else 
             '<a href=' + UserDefinedData.FieldValue + '>' + UserDefinedData.FieldValue + '</a>' 
         End 
from   UserDefinedRows
left outer join UserDefinedData on UserDefinedRows.UserDefinedRowId = UserDefinedData.UserDefinedRowId
inner join UserDefinedFields on UserDefinedData.UserDefinedFieldId = UserDefinedFields.UserDefinedFieldId 
where  UserDefinedRows.ModuleId = @ModuleId
order by UserDefinedRows.UserDefinedRowId

GO

if exists (select * from [dbo].sysobjects where id = object_id(N'[dbo].UpdateClicks') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  drop procedure [dbo].UpdateClicks
GO

create   procedure [dbo].UpdateClicks

@TableName nvarchar(50),
@KeyField  nvarchar(50),
@ItemId    int,
@UserId    int = null

as

/* 
The following if...then ensures that 1) the TableName evaluates to a UserTable
and 2) that the KeyField is an actual column in the named table.  This check
is necessary to prevent SQL Injection attacks.  The ItemID is not subject
to attack since it must be an integer value.
*/
if (OBJECTPROPERTY(object_id(@TableName) , N'IsUserTable') = 1) and (COl_LENGTH(@TableName, @KeyField) > 0)
begin

	declare @SQL nvarchar(200)
	
	select @SQL = 'update ' + @TableName + ' set Clicks = Clicks + 1 where ' + @KeyField + ' = ' + convert(varchar,@ItemId)
	
	EXEC sp_executesql @SQL
	
	insert into ClickLog (
	  TableName,
	  ItemId,
	  DateTime,
	  UserId
	)
	values (
	  @TableName,
	  @ItemId,
	  getdate(),
	  @UserId
	)

end
GO

IF NOT EXISTS(SELECT 1 FROM [dbo].HostSettings WHERE SettingName = 'DisablePageTitleVersion')
  INSERT INTO [dbo].HostSettings VALUES ('DisablePageTitleVersion', 'N')
GO

IF (SELECT COL_LENGTH('[dbo].Tabs', 'DisableLink')) IS NULL
  ALTER TABLE [dbo].Tabs ADD DisableLink bit NOT NULL DEFAULT (0)
GO

if exists (select * from [dbo].sysobjects where id = object_id(N'[dbo].[AddTab]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  drop procedure [dbo].[AddTab]
GO

CREATE procedure [dbo].AddTab

@PortalID           int,
@TabName            nvarchar(50),
@ShowMobile         bit,
@MobileTabName      nvarchar(50),
@AuthorizedRoles    nvarchar (256),
@LeftPaneWidth      nvarchar(5),
@RightPaneWidth     nvarchar(5),
@IsVisible          bit,
@DisableLink        bit,
@ParentId           int,
@IconFile           nvarchar(100),
@AdministratorRoles nvarchar (256),
@TabID              int OUTPUT

as

if @ParentId is not null
begin
  select @IsVisible = 1
end

insert into Tabs (
    PortalID,
    TabName,
    ShowMobile,
    MobileTabName,
    AuthorizedRoles,
    LeftPaneWidth,
    RightPaneWidth,
    IsVisible,
    DisableLink,
    ParentId,
    IconFile,
    AdministratorRoles
)
values (
    @PortalID,
    @TabName,
    @ShowMobile,
    @MobileTabName,
    @AuthorizedRoles,
    @LeftPaneWidth,
    @RightPaneWidth,
    @IsVisible,
    @DisableLink,
    @ParentId,
    @IconFile,
    @AdministratorRoles
)

select @TabID = @@IDENTITY

GO


if exists (select * from [dbo].sysobjects where id = object_id(N'[dbo].[UpdateTab]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  drop procedure [dbo].[UpdateTab]
GO

CREATE procedure [dbo].UpdateTab

@TabID              int,
@TabName            nvarchar(50),
@ShowMobile         bit,
@MobileTabName      nvarchar(50),
@AuthorizedRoles    nvarchar(256),
@LeftPaneWidth      nvarchar(5),
@RightPaneWidth     nvarchar(5),
@IsVisible          bit,
@DisableLink        bit,
@ParentId           int,
@IconFile           nvarchar(100),
@AdministratorRoles nvarchar(256)

as

declare @PortalID int

select @PortalID = PortalID
from   Tabs
where  TabID = @TabID

if (exists ( select 1 from Tabs where ParentId = @TabId )) or (@ParentId is not null)
begin
  select @IsVisible = 1
end

update Tabs
set    TabName = @TabName,
       ShowMobile = @ShowMobile,
       MobileTabName = @MobileTabName,
       AuthorizedRoles = @AuthorizedRoles,
       LeftPaneWidth = @LeftPaneWidth,
       RightPaneWidth = @RightPaneWidth,
       IsVisible = @IsVisible,
       DisableLink = @DisableLink,
       ParentId = @ParentId,
       IconFile = @IconFile,
       AdministratorRoles = @AdministratorRoles
where  TabID = @TabID
GO

if exists (select * from [dbo].sysobjects where id = object_id(N'[dbo].[GetPortalSettings]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[GetPortalSettings]
GO

CREATE procedure [dbo].GetPortalSettings

@PortalAlias nvarchar(200),
@TabID       int

as

declare @PortalID int
declare @VerifyTabID int

/* convert PortalAlias to PortalID */

select @PortalID = null

select @PortalID = PortalID
from   Portals
where  PortalAlias = @PortalAlias

if @PortalID is null
begin
  select @PortalID = min(PortalID)
  from   Portals
  where  PortalAlias like '%' + @PortalAlias + '%' /* multiple alias may be specified seperated by commas */
end

select @VerifyTabID = null

/* verify the TabID belongs to the portal */
if @TabID <> 0
begin
  select @VerifyTabID = Tabs.TabID
  from   Tabs
  left outer join Portals on Tabs.PortalID = Portals.PortalID
  where  TabId = @TabId
  and    ( Portals.PortalID = @PortalID or Tabs.PortalId is null )
end
else
begin
  select @VerifyTabID = null
end

/* get the TabID if none provided */
if @VerifyTabID is null
begin
  select @TabID = Tabs.TabID
  from Tabs
  inner join Portals on Tabs.PortalID = Portals.PortalID
  where Portals.PortalID = @PortalID
  and Tabs.TabOrder = 1  
end

/* First, get Out Params */
select Portals.PortalAlias,
       Portals.PortalID,
       Portals.GUID,
       Portals.PortalName,
       Portals.LogoFile,
       Portals.FooterText,
       Portals.ExpiryDate,
       Portals.UserRegistration,
       Portals.BannerAdvertising,
       Portals.Currency,
       Portals.AdministratorId,
       Users.Email,
       Portals.HostFee,
       Portals.HostSpace,
       Portals.AdministratorRoleId,
       Portals.RegisteredRoleId,
       Portals.Description,
       Portals.KeyWords,
       Portals.BackgroundFile,
       Portals.SiteLogHistory,
       'AdminTabId' = ( select TabID from Tabs where PortalId = @PortalId and TabName = 'Admin' ),
       'SuperUserId' = ( select UserID from Users where IsSuperUser = 1 ),
       'SuperTabId' = ( select TabID from Tabs where PortalId is null and ParentId is null ),
       Tabs.TabID,
       Tabs.TabOrder,
       Tabs.TabName,
       Tabs.MobileTabName,
       Tabs.AuthorizedRoles,
       Tabs.AdministratorRoles,
       Tabs.ShowMobile,
       Tabs.LeftPaneWidth,
       Tabs.RightPaneWidth,
       Tabs.IsVisible,
       Tabs.DisableLink,
       'ParentId' = isnull(Tabs.ParentID,-1),
       Tabs.Level,
       Tabs.IconFile,
       'AdminTabIcon' = ( select AdminTabIcon from ModuleDefinitions where ModuleDefinitions.FriendlyName = Tabs.TabName ),
       'HasChildren' = case when exists (select 1 from Tabs T2 where T2.ParentId = Tabs.TabId) then 'true' else 'false' end
from   Tabs
inner join Portals on Portals.PortalID = @PortalID
inner join Users on Portals.AdministratorId = Users.UserId
where  TabID = @TabID

/* Get Tabs list */
select TabName,
       AuthorizedRoles,
       AdministratorRoles,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -