diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..913083b --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +Installs/NewsArticles.00.09.11/ +Installs/NewsArticles.00.10.00/ diff --git a/API/MetaWebLog/Handler.ashx.vb b/API/MetaWebLog/Handler.ashx.vb index 2cd328b..bd90454 100755 --- a/API/MetaWebLog/Handler.ashx.vb +++ b/API/MetaWebLog/Handler.ashx.vb @@ -23,7 +23,7 @@ Namespace Ventrian.NewsArticles.API.MetaWebLog Private ReadOnly Property PortalSettings() As PortalSettings Get - Return PortalController.GetCurrentPortalSettings() + Return PortalController.Instance.GetCurrentPortalSettings() End Get End Property @@ -108,8 +108,7 @@ Namespace Ventrian.NewsArticles.API.MetaWebLog Dim check As Boolean = False - Dim objModuleController As New ModuleController - Dim settings As Hashtable = objModuleController.GetModuleSettings(moduleId) + Dim settings As Hashtable = Common.GetModuleSettings(moduleId) If (user.IsSuperUser) Then Return True @@ -437,7 +436,7 @@ Namespace Ventrian.NewsArticles.API.MetaWebLog Throw New MetaException("01", "You do not have permission to post articles") End If - Dim objSettings As Hashtable = objModuleController.GetModuleSettings(objTabModule.ModuleID) + Dim objSettings As Hashtable = Common.GetModuleSettings(objTabModule.ModuleID) Dim objArticleSettings As New ArticleSettings(objSettings, PortalSettings, objTabModule) Dim objArticle As New ArticleInfo diff --git a/App_LocalResources/UploadFiles.ascx.resx b/App_LocalResources/UploadFiles.ascx.resx index 72086ee..cc05d2a 100755 --- a/App_LocalResources/UploadFiles.ascx.resx +++ b/App_LocalResources/UploadFiles.ascx.resx @@ -112,10 +112,10 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Are you sure you want to remove this file? @@ -144,4 +144,7 @@ Add Existing File + + Upload + \ No newline at end of file diff --git a/Base/NewsArticleModuleBase.vb b/Base/NewsArticleModuleBase.vb index 3b00ee9..476e493 100755 --- a/Base/NewsArticleModuleBase.vb +++ b/Base/NewsArticleModuleBase.vb @@ -16,6 +16,7 @@ Imports DotNetNuke.Common Imports DotNetNuke.Common.Utilities Imports DotNetNuke.Entities.Modules Imports DotNetNuke.Security +Imports DotNetNuke.Security.Permissions Imports DotNetNuke.Services.Localization Namespace Ventrian.NewsArticles.Base @@ -45,10 +46,8 @@ Namespace Ventrian.NewsArticles.Base Try _articleSettings = New ArticleSettings(Settings, PortalSettings, ModuleConfiguration) Catch - Dim objModuleController As New ModuleController() - - Dim objSettings As Hashtable = objModuleController.GetModuleSettings(ModuleId) - Dim objTabSettings As Hashtable = objModuleController.GetTabModuleSettings(TabModuleId) + Dim objSettings As Hashtable = ModuleConfiguration.ModuleSettings + Dim objTabSettings As Hashtable = ModuleConfiguration.TabModuleSettings For Each item As DictionaryEntry In objTabSettings If (objSettings.ContainsKey(item.Key) = False) Then @@ -57,7 +56,7 @@ Namespace Ventrian.NewsArticles.Base Next _articleSettings = New ArticleSettings(objSettings, PortalSettings, ModuleConfiguration) - objModuleController.UpdateModuleSetting(ModuleId, "ResetArticleSettings", "true") + ModuleController.Instance.UpdateModuleSetting(ModuleId, "ResetArticleSettings", "true") End Try End If Return _articleSettings @@ -226,25 +225,31 @@ Namespace Ventrian.NewsArticles.Base End If End Function - Protected Function StripHtml(ByVal html As String) As String - Const pattern As String = "<(.|\n)*?>" - Return Regex.Replace(html, pattern, String.Empty) + Public Function StripHtml(ByVal html As String) As String - End Function + Return StripHtml(html, False) + End Function - Private Function RoundToUnit(ByVal d As Double, ByVal unit As Double, ByVal roundDown As Boolean) As Double + Public Function StripHtml(ByVal html As String, ByVal cleanLineBreaks As Boolean) As String - If (roundDown) Then - Return Math.Round(Math.Round((d / unit) - 0.5, 0) * unit, 2) - Else - Return Math.Round(Math.Round((d / unit) + 0.5, 0) * unit, 2) - End If + Dim pattern As String = "<(.|\n)*?>" + Return Regex.Replace(html, pattern, String.Empty).Replace(System.Environment.NewLine, " ") - End Function + End Function + + Private Function RoundToUnit(ByVal d As Double, ByVal unit As Double, ByVal roundDown As Boolean) As Double + + If (roundDown) Then + Return Math.Round(Math.Round((d / unit) - 0.5, 0) * unit, 2) + Else + Return Math.Round(Math.Round((d / unit) + 0.5, 0) * unit, 2) + End If + + End Function - Protected Function GetRatingImage(ByVal objDataItem As Object) As String + Protected Function GetRatingImage(ByVal objDataItem As Object) As String Dim objArticle As ArticleInfo = CType(objDataItem, ArticleInfo) @@ -350,7 +355,7 @@ Namespace Ventrian.NewsArticles.Base ' Admin of Module ' - If (PortalSecurity.HasEditPermissions(objModule.ModulePermissions)) Then + If (ModulePermissionController.HasModuleAccess(SecurityAccessLevel.Edit, "EDIT" , objModule)) Then Return True diff --git a/Components/ArticleController.vb b/Components/ArticleController.vb index f007b05..3888247 100755 --- a/Components/ArticleController.vb +++ b/Components/ArticleController.vb @@ -30,7 +30,7 @@ Namespace Ventrian.NewsArticles Dim objArticles As New List(Of ArticleInfo) While dr.Read - objArticles.Add(CType(CBO.FillObject(dr, GetType(ArticleInfo), False), ArticleInfo)) + objArticles.Add(CBO.FillObject(Of ArticleInfo)(dr, False)) End While Dim nextResult As Boolean = dr.NextResult() @@ -124,7 +124,7 @@ Namespace Ventrian.NewsArticles Dim objArticle As ArticleInfo = CType(DataCache.GetCache(cacheKey), ArticleInfo) If (objArticle Is Nothing) Then - objArticle = CType(CBO.FillObject(DataProvider.Instance().GetArticle(articleID), GetType(ArticleInfo)), ArticleInfo) + objArticle = CBO.FillObject(Of ArticleInfo)(DataProvider.Instance().GetArticle(articleID)) If (objArticle Is Nothing) Then Return Nothing End If @@ -288,8 +288,7 @@ Namespace Ventrian.NewsArticles Public Function GetSearchItems(ByVal ModInfo As DotNetNuke.Entities.Modules.ModuleInfo) As DotNetNuke.Services.Search.SearchItemInfoCollection Implements DotNetNuke.Entities.Modules.ISearchable.GetSearchItems - Dim objModuleController As New ModuleController - Dim settings As Hashtable = objModuleController.GetModuleSettings(ModInfo.ModuleID) + Dim settings As Hashtable = Common.GetModuleSettings(ModInfo.ModuleID) settings = GetTabModuleSettings(ModInfo.TabModuleID, settings) Dim doSearch As Boolean = False diff --git a/Components/ArticleSettings.vb b/Components/ArticleSettings.vb index adf4728..9ecf85f 100755 --- a/Components/ArticleSettings.vb +++ b/Components/ArticleSettings.vb @@ -10,6 +10,7 @@ Imports DotNetNuke.Entities.Modules Imports DotNetNuke.Entities.Portals Imports DotNetNuke.Entities.Users Imports DotNetNuke.Security +Imports DotNetNuke.Security.Permissions Imports Ventrian.NewsArticles.Components.Types Namespace Ventrian.NewsArticles @@ -52,7 +53,7 @@ Namespace Ventrian.NewsArticles If Not roles Is Nothing Then Dim context As HttpContext = HttpContext.Current - Dim objUserInfo As UserInfo = UserController.GetCurrentUserInfo + Dim objUserInfo As UserInfo = UserController.Instance.GetCurrentUserInfo Dim role As String For Each role In roles.Split(New Char() {";"c}) @@ -116,7 +117,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property AuthorSelect() As AuthorSelectType Get If (Settings.Contains(ArticleConstants.AUTHOR_SELECT_TYPE)) Then - Return CType(System.Enum.Parse(GetType(AuthorSelectType), Settings(ArticleConstants.AUTHOR_SELECT_TYPE).ToString()), AuthorSelectType) + Return CType([Enum].Parse(GetType(AuthorSelectType), Settings(ArticleConstants.AUTHOR_SELECT_TYPE).ToString()), AuthorSelectType) Else Return AuthorSelectType.ByDropdown End If @@ -267,7 +268,7 @@ Namespace Ventrian.NewsArticles Get If (Settings.Contains(ArticleConstants.CATEGORY_SORT_SETTING)) Then Try - Return CType(System.Enum.Parse(GetType(CategorySortType), Settings(ArticleConstants.CATEGORY_SORT_SETTING).ToString()), CategorySortType) + Return CType([Enum].Parse(GetType(CategorySortType), Settings(ArticleConstants.CATEGORY_SORT_SETTING).ToString()), CategorySortType) Catch Return ArticleConstants.CATEGORY_SORT_SETTING_DEFAULT End Try @@ -615,7 +616,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property ImageThumbnailType() As ThumbnailType Get If (Settings.Contains(ArticleConstants.IMAGE_THUMBNAIL_SETTING)) Then - Return CType(System.Enum.Parse(GetType(ThumbnailType), Settings(ArticleConstants.IMAGE_THUMBNAIL_SETTING).ToString()), ThumbnailType) + Return CType([Enum].Parse(GetType(ThumbnailType), Settings(ArticleConstants.IMAGE_THUMBNAIL_SETTING).ToString()), ThumbnailType) Else Return ArticleConstants.DEFAULT_IMAGE_THUMBNAIL End If @@ -635,7 +636,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property MatchCategories() As MatchOperatorType Get If (Settings.Contains(ArticleConstants.MATCH_OPERATOR_SETTING)) Then - Return CType(System.Enum.Parse(GetType(MatchOperatorType), Settings(ArticleConstants.MATCH_OPERATOR_SETTING).ToString()), MatchOperatorType) + Return CType([Enum].Parse(GetType(MatchOperatorType), Settings(ArticleConstants.MATCH_OPERATOR_SETTING).ToString()), MatchOperatorType) Else Return MatchOperatorType.MatchAny End If @@ -701,7 +702,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property MenuPosition() As MenuPositionType Get If (Settings.Contains(ArticleConstants.MENU_POSITION_TYPE)) Then - Return CType(System.Enum.Parse(GetType(MenuPositionType), Settings(ArticleConstants.MENU_POSITION_TYPE).ToString()), MenuPositionType) + Return CType([Enum].Parse(GetType(MenuPositionType), Settings(ArticleConstants.MENU_POSITION_TYPE).ToString()), MenuPositionType) Else Return MenuPositionType.Top End If @@ -861,7 +862,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property SyndicationLinkType() As SyndicationLinkType Get If (Settings.Contains(ArticleConstants.SYNDICATION_LINK_TYPE)) Then - Return CType(System.Enum.Parse(GetType(SyndicationLinkType), Settings(ArticleConstants.SYNDICATION_LINK_TYPE).ToString()), SyndicationLinkType) + Return CType([Enum].Parse(GetType(SyndicationLinkType), Settings(ArticleConstants.SYNDICATION_LINK_TYPE).ToString()), SyndicationLinkType) Else Return SyndicationLinkType.Article End If @@ -871,7 +872,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property SyndicationEnclosureType() As SyndicationEnclosureType Get If (Settings.Contains(ArticleConstants.SYNDICATION_ENCLOSURE_TYPE)) Then - Return CType(System.Enum.Parse(GetType(SyndicationEnclosureType), Settings(ArticleConstants.SYNDICATION_ENCLOSURE_TYPE).ToString()), SyndicationEnclosureType) + Return CType([Enum].Parse(GetType(SyndicationEnclosureType), Settings(ArticleConstants.SYNDICATION_ENCLOSURE_TYPE).ToString()), SyndicationEnclosureType) Else Return SyndicationEnclosureType.Attachment End If @@ -952,7 +953,7 @@ Namespace Ventrian.NewsArticles Get If (Settings.Contains(ArticleConstants.SEO_URL_MODE_SETTING)) Then Try - Return CType(System.Enum.Parse(GetType(UrlModeType), Settings(ArticleConstants.SEO_URL_MODE_SETTING).ToString()), UrlModeType) + Return CType([Enum].Parse(GetType(UrlModeType), Settings(ArticleConstants.SEO_URL_MODE_SETTING).ToString()), UrlModeType) Catch Return UrlModeType.Shorterned End Try @@ -996,7 +997,7 @@ Namespace Ventrian.NewsArticles Get If (_settings.Contains(ArticleConstants.IMAGE_WATERMARK_IMAGE_POSITION_SETTING)) Then Try - Return CType(System.Enum.Parse(GetType(WatermarkPosition), _settings(ArticleConstants.IMAGE_WATERMARK_IMAGE_POSITION_SETTING).ToString()), WatermarkPosition) + Return CType([Enum].Parse(GetType(WatermarkPosition), _settings(ArticleConstants.IMAGE_WATERMARK_IMAGE_POSITION_SETTING).ToString()), WatermarkPosition) Catch Return ArticleConstants.IMAGE_WATERMARK_IMAGE_POSITION_SETTING_DEFAULT End Try @@ -1087,7 +1088,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsRateable() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated) Then + If (HttpContext.Current.Request.IsAuthenticated) Then Return EnableRatingsAuthenticated Else Return EnableRatingsAnonymous @@ -1128,7 +1129,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property DisplayMode() As DisplayType Get If (Settings.Contains(ArticleConstants.DISPLAY_MODE)) Then - Return CType(System.Enum.Parse(GetType(DisplayType), Settings(ArticleConstants.DISPLAY_MODE).ToString()), DisplayType) + Return CType([Enum].Parse(GetType(DisplayType), Settings(ArticleConstants.DISPLAY_MODE).ToString()), DisplayType) Else Return DisplayType.FullName End If @@ -1138,7 +1139,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property RelatedMode() As RelatedType Get If (Settings.Contains(ArticleConstants.RELATED_MODE)) Then - Return CType(System.Enum.Parse(GetType(RelatedType), Settings(ArticleConstants.RELATED_MODE).ToString()), RelatedType) + Return CType([Enum].Parse(GetType(RelatedType), Settings(ArticleConstants.RELATED_MODE).ToString()), RelatedType) Else Return RelatedType.MatchCategoriesAnyTagsAny End If @@ -1174,7 +1175,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property TitleReplacement() As TitleReplacementType Get If (Settings.Contains(ArticleConstants.TITLE_REPLACEMENT_TYPE)) Then - Return CType(System.Enum.Parse(GetType(TitleReplacementType), Settings(ArticleConstants.TITLE_REPLACEMENT_TYPE).ToString()), TitleReplacementType) + Return CType([Enum].Parse(GetType(TitleReplacementType), Settings(ArticleConstants.TITLE_REPLACEMENT_TYPE).ToString()), TitleReplacementType) Else Return TitleReplacementType.Dash End If @@ -1204,7 +1205,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property TextEditorSummaryMode() As TextEditorModeType Get If (Settings.Contains(ArticleConstants.TEXT_EDITOR_SUMMARY_MODE)) Then - Return CType(System.Enum.Parse(GetType(TextEditorModeType), Settings(ArticleConstants.TEXT_EDITOR_SUMMARY_MODE).ToString()), TextEditorModeType) + Return CType([Enum].Parse(GetType(TextEditorModeType), Settings(ArticleConstants.TEXT_EDITOR_SUMMARY_MODE).ToString()), TextEditorModeType) Else Return TextEditorModeType.Rich End If @@ -1267,17 +1268,14 @@ Namespace Ventrian.NewsArticles If (IsNumeric(Settings(ArticleConstants.SERVER_TIMEZONE).ToString())) Then Return Convert.ToInt32(Settings(ArticleConstants.SERVER_TIMEZONE).ToString()) Else - Return _portalSettings.TimeZoneOffset + Return _portalSettings.TimeZone.GetUtcOffset(DateTime.Now).TotalHours End If Else - Return _portalSettings.TimeZoneOffset + Return _portalSettings.TimeZone.GetUtcOffset(DateTime.Now).TotalHours End If End Get End Property - - - Public ReadOnly Property TemplatePath() As String Get Return _portalSettings.HomeDirectoryMapPath & "DnnForge - NewsArticles/Templates/" & Template & "/" @@ -1324,7 +1322,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsCategoriesEnabled() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If @@ -1338,7 +1336,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsExcerptEnabled() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If @@ -1352,7 +1350,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsImagesEnabled() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If @@ -1366,7 +1364,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsFilesEnabled() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If @@ -1380,7 +1378,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsLinkEnabled() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If @@ -1394,7 +1392,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsFeaturedEnabled() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If @@ -1408,7 +1406,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsSecureEnabled() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If @@ -1422,7 +1420,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsPublishEnabled() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If @@ -1436,7 +1434,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsExpiryEnabled() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If @@ -1450,7 +1448,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsMetaEnabled() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If @@ -1467,7 +1465,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsCustomEnabled() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If @@ -1484,7 +1482,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsAutoApprover() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If @@ -1502,7 +1500,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsAutoApproverComment() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If @@ -1520,7 +1518,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsAutoFeatured() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If @@ -1528,7 +1526,7 @@ Namespace Ventrian.NewsArticles For Each role As String In Settings(ArticleConstants.PERMISSION_AUTO_FEATURE_SETTING).ToString().Split(New Char() {";"c}) If (role <> "") Then - If (UserController.GetCurrentUserInfo.IsInRole(role)) Then + If (UserController.Instance.GetCurrentUserInfo.IsInRole(role)) Then Return True End If End If @@ -1542,7 +1540,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsAutoSecured() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If @@ -1550,7 +1548,7 @@ Namespace Ventrian.NewsArticles For Each role As String In Settings(ArticleConstants.PERMISSION_AUTO_SECURE_SETTING).ToString().Split(New Char() {";"c}) If (role <> "") Then - If (UserController.GetCurrentUserInfo.IsInRole(role)) Then + If (UserController.Instance.GetCurrentUserInfo.IsInRole(role)) Then Return True End If End If @@ -1564,7 +1562,7 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsSubmitter() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If @@ -1582,14 +1580,14 @@ Namespace Ventrian.NewsArticles Public ReadOnly Property IsAdmin() As Boolean Get - If (System.Web.HttpContext.Current.Request.IsAuthenticated = False) Then + If (HttpContext.Current.Request.IsAuthenticated = False) Then Return False End If - Dim blnHasModuleEditPermissions As Boolean = PortalSecurity.IsInRoles(_moduleConfiguration.AuthorizedEditRoles) + Dim blnHasModuleEditPermissions As Boolean = ModulePermissionController.CanAdminModule(_moduleConfiguration) If (blnHasModuleEditPermissions = False) Then - blnHasModuleEditPermissions = PortalSecurity.IsInRoles(_portalSettings.ActiveTab.AdministratorRoles) + blnHasModuleEditPermissions = ModulePermissionController.CanEditModuleContent(_moduleConfiguration) End If If (blnHasModuleEditPermissions = False) Then diff --git a/Components/CategoryController.vb b/Components/CategoryController.vb index d547203..3108d40 100755 --- a/Components/CategoryController.vb +++ b/Components/CategoryController.vb @@ -194,7 +194,7 @@ Namespace Ventrian.NewsArticles End If Next - Return CType(CBO.FillObject(DataProvider.Instance().GetCategory(categoryID), GetType(CategoryInfo)), CategoryInfo) + Return CBO.FillObject(Of CategoryInfo)(DataProvider.Instance().GetCategory(categoryID)) End Function diff --git a/Components/CommentController.vb b/Components/CommentController.vb index b355b9c..b6e701d 100755 --- a/Components/CommentController.vb +++ b/Components/CommentController.vb @@ -56,7 +56,7 @@ Namespace Ventrian.NewsArticles Public Function GetComment(ByVal commentID As Integer) As CommentInfo - Return CType(CBO.FillObject(DataProvider.Instance().GetComment(commentID), GetType(CommentInfo)), CommentInfo) + Return CBO.FillObject(Of CommentInfo)(DataProvider.Instance().GetComment(commentID)) End Function diff --git a/Components/Common.vb b/Components/Common.vb index b3b028a..e1233cd 100755 --- a/Components/Common.vb +++ b/Components/Common.vb @@ -39,6 +39,17 @@ Namespace Ventrian.NewsArticles End Sub + Friend Shared Function GetModuleInfo(moduleId As Integer, optional tabId As integer = -1) As ModuleInfo + Dim mdlInfo As ModuleInfo = ModuleController.Instance.GetModule(moduleID, tabId, False) + return mdlInfo + End Function + Friend Shared Function GetModuleSettings(moduleId As integer) As Hashtable + return GetModuleInfo(moduleId).ModuleSettings + End Function + Friend Shared Function GetTabModuleSettings(moduleId As integer, tabId As integer) As Hashtable + return GetModuleInfo(moduleId, tabId).ModuleSettings + End Function + #End Region #Region " Public Shared Methods " @@ -178,7 +189,7 @@ Namespace Ventrian.NewsArticles If Host.UseFriendlyUrls Then Dim strURL As String = ApplicationURL(objTab.TabID) - Dim settings As PortalSettings = PortalController.GetCurrentPortalSettings + Dim settings As PortalSettings = PortalController.Instance.GetCurrentPortalSettings If (articleSettings.LaunchLinks) Then strURL = strURL & "&ctl=ArticleView" @@ -320,7 +331,7 @@ Namespace Ventrian.NewsArticles If HostController.Instance.GetString("UseFriendlyUrls") = "Y" Then Dim strURL As String = ApplicationURL(objTab.TabID) - Dim settings As PortalSettings = PortalController.GetCurrentPortalSettings + Dim settings As PortalSettings = PortalController.Instance.GetCurrentPortalSettings If (articleSettings.LaunchLinks) Then strURL = strURL & "&ctl=ArticleView" @@ -476,14 +487,13 @@ Namespace Ventrian.NewsArticles Dim objModulesFound As New List(Of ModuleInfo) - Dim objDesktopModuleController As New DesktopModuleController - Dim objDesktopModuleInfo As DesktopModuleInfo = objDesktopModuleController.GetDesktopModuleByModuleName("DnnForge - NewsArticles") + Dim objDesktopModuleInfo As DesktopModuleInfo = DesktopModuleController.GetDesktopModuleByModuleName("DnnForge - NewsArticles", portalID) If Not (objDesktopModuleInfo Is Nothing) Then Dim objTabController As New TabController() - Dim objTabs As ArrayList = objTabController.GetTabs(portalID) - For Each objTab As DotNetNuke.Entities.Tabs.TabInfo In objTabs + Dim objTabs As TabCollection = objTabController.GetTabsByPortal(portalID) + For Each objTab As DotNetNuke.Entities.Tabs.TabInfo In objTabs.Values If Not (objTab Is Nothing) Then If (objTab.IsDeleted = False) Then Dim objModules As New ModuleController @@ -519,10 +529,10 @@ Namespace Ventrian.NewsArticles Public Shared Function GetAuthorLink(ByVal tabID As Integer, ByVal moduleID As Integer, ByVal authorID As Integer, ByVal username As String, ByVal launchLinks As Boolean, ByVal articleSettings As ArticleSettings) As String - Dim objTab As TabInfo = PortalController.GetCurrentPortalSettings.ActiveTab - If (tabID <> PortalController.GetCurrentPortalSettings.ActiveTab.TabID) Then + Dim objTab As TabInfo = PortalController.Instance.GetCurrentPortalSettings.ActiveTab + If (tabID <> PortalController.Instance.GetCurrentPortalSettings.ActiveTab.TabID) Then Dim objTabController As New TabController - objTab = objTabController.GetTab(tabID, PortalController.GetCurrentPortalSettings.PortalId, False) + objTab = objTabController.GetTab(tabID, PortalController.Instance.GetCurrentPortalSettings.PortalId, False) End If Return GetAuthorLink(tabID, moduleID, authorID, username, launchLinks, objTab, articleSettings) @@ -543,7 +553,7 @@ Namespace Ventrian.NewsArticles strURL = strURL & "&authorID=" & authorID.ToString() ' TODO: Remove at a later date when minimum version raised. - If Localization.GetEnabledLocales.Count > 1 AndAlso LocalizationUtil.UseLanguageInUrl Then + If LocaleController.Instance.GetLocales(PortalSettings.Current.PortalId).Count > 1 AndAlso LocalizationUtil.UseLanguageInUrl Then strURL += "&language=" & Thread.CurrentThread.CurrentCulture.Name End If @@ -563,7 +573,7 @@ Namespace Ventrian.NewsArticles End If End If - Return FriendlyUrl(targetTab, strURL, Common.FormatTitle("", articleSettings), PortalController.GetCurrentPortalSettings) + Return FriendlyUrl(targetTab, strURL, Common.FormatTitle("", articleSettings), PortalController.Instance.GetCurrentPortalSettings) Else @@ -575,10 +585,10 @@ Namespace Ventrian.NewsArticles Public Shared Function GetCategoryLink(ByVal tabID As Integer, ByVal moduleID As Integer, ByVal categoryID As String, ByVal title As String, ByVal launchLinks As Boolean, ByVal articleSettings As ArticleSettings) As String - Dim objTab As TabInfo = PortalController.GetCurrentPortalSettings.ActiveTab - If (tabID <> PortalController.GetCurrentPortalSettings.ActiveTab.TabID) Then + Dim objTab As TabInfo = PortalController.Instance.GetCurrentPortalSettings.ActiveTab + If (tabID <> PortalController.Instance.GetCurrentPortalSettings.ActiveTab.TabID) Then Dim objTabController As New TabController - objTab = objTabController.GetTab(tabID, PortalController.GetCurrentPortalSettings.PortalId, False) + objTab = objTabController.GetTab(tabID, PortalController.Instance.GetCurrentPortalSettings.PortalId, False) End If Return GetCategoryLink(tabID, moduleID, categoryID, title, launchLinks, objTab, articleSettings) @@ -586,10 +596,10 @@ Namespace Ventrian.NewsArticles Public Shared Function GetCategoryLink(ByVal tabID As Integer, ByVal moduleID As Integer, ByVal categoryID As String, ByVal title As String, ByVal launchLinks As Boolean, ByVal targetTab As TabInfo, ByVal articleSettings As ArticleSettings) As String - If DotNetNuke.Entities.Host.HostSettings.GetHostSetting("UseFriendlyUrls") = "Y" Then - + If Host.UseFriendlyUrls Then + Dim strURL As String = ApplicationURL(tabID) - Dim settings As PortalSettings = PortalController.GetCurrentPortalSettings + Dim settings As PortalSettings = PortalController.Instance.GetCurrentPortalSettings If (launchLinks) Then strURL = strURL & "&ctl=CategoryView" @@ -600,7 +610,7 @@ Namespace Ventrian.NewsArticles strURL = strURL & "&categoryId=" & categoryID ' TODO: Remove at a later date when minimum version raised. - If Localization.GetEnabledLocales.Count > 1 AndAlso LocalizationUtil.UseLanguageInUrl Then + If LocaleController.Instance.GetLocales(settings.PortalId).Count > 1 AndAlso LocalizationUtil.UseLanguageInUrl Then strURL += "&language=" & Thread.CurrentThread.CurrentCulture.Name End If @@ -771,6 +781,22 @@ Namespace Ventrian.NewsArticles Return Regex.Replace(HTML, pattern, String.Empty) End Function + public Shared Function JoinHashTables(ParamArray ht As Hashtable()) As Hashtable + dim retval as New Hashtable + + For Each objHt As Hashtable In ht + For Each key As Object In objHt.Keys + If retval.ContainsKey(key) Then + retval(key) = objHt(key) + Else + retval.Add(key, objHt(key)) + End If + Next + Next + return retval + End Function + + #End Region End Class diff --git a/Components/ContentSharingInfo.vb b/Components/ContentSharingInfo.vb index bf55364..f550efe 100755 --- a/Components/ContentSharingInfo.vb +++ b/Components/ContentSharingInfo.vb @@ -6,6 +6,7 @@ Imports System Imports System.Data +Imports System.Linq Imports DotNetNuke Imports DotNetNuke.Common.Utilities @@ -48,10 +49,10 @@ Namespace Ventrian.NewsArticles _portalTitle = objPortal.PortalName Dim o As New PortalAliasController - Dim portalAliases As ArrayList = o.GetPortalAliasArrayByPortalID(_linkedPortalID) + Dim portalAliases As IEnumerable(Of PortalAliasInfo) = PortalAliasController.Instance.GetPortalAliasesByPortalId(_linkedPortalID) If (portalAliases.Count > 0) Then - _portalTitle = DotNetNuke.Common.AddHTTP(CType(portalAliases(0), PortalAliasInfo).HTTPAlias) + _portalTitle = DotNetNuke.Common.AddHTTP(portalAliases(0).HTTPAlias) End If End If diff --git a/Components/Controllers/PageController.vb b/Components/Controllers/PageController.vb index 9e4ff43..23a2e55 100755 --- a/Components/Controllers/PageController.vb +++ b/Components/Controllers/PageController.vb @@ -20,7 +20,7 @@ Namespace Ventrian.NewsArticles Public Function GetPage(ByVal pageId As Integer) As PageInfo - Return CType(CBO.FillObject(DataProvider.Instance().GetPage(pageId), GetType(PageInfo)), PageInfo) + Return CBO.FillObject(Of PageInfo)(DataProvider.Instance().GetPage(pageId)) End Function diff --git a/Components/CustomFields/CustomFieldController.vb b/Components/CustomFields/CustomFieldController.vb index ad1cbbe..7d8bd05 100755 --- a/Components/CustomFields/CustomFieldController.vb +++ b/Components/CustomFields/CustomFieldController.vb @@ -14,7 +14,7 @@ Namespace Ventrian.NewsArticles.Components.CustomFields Public Function [Get](ByVal customFieldID As Integer) As CustomFieldInfo - Return CType(CBO.FillObject(DataProvider.Instance().GetCustomField(customFieldID), GetType(CustomFieldInfo)), CustomFieldInfo) + Return CBO.FillObject(Of CustomFieldInfo)(DataProvider.Instance().GetCustomField(customFieldID)) End Function diff --git a/Components/EmailTemplateController.vb b/Components/EmailTemplateController.vb index b5a7d9f..86023bf 100755 --- a/Components/EmailTemplateController.vb +++ b/Components/EmailTemplateController.vb @@ -31,7 +31,7 @@ Namespace Ventrian.NewsArticles formatted = formatted.Replace("[EMAIL]", objArticle.AuthorEmail) formatted = formatted.Replace("[DISPLAYNAME]", objArticle.AuthorDisplayName) - Dim settings As PortalSettings = PortalController.GetCurrentPortalSettings() + Dim settings As PortalSettings = PortalController.Instance.GetCurrentPortalSettings() formatted = formatted.Replace("[PORTALNAME]", settings.PortalName) formatted = formatted.Replace("[CREATEDATE]", objArticle.CreatedDate.ToString("d") & " " & objArticle.CreatedDate.ToString("t")) @@ -67,7 +67,7 @@ Namespace Ventrian.NewsArticles formatted = formatted.Replace("[DISPLAYNAME]", objComment.AuthorDisplayName) End If - Dim settings As PortalSettings = PortalController.GetCurrentPortalSettings() + Dim settings As PortalSettings = PortalController.Instance.GetCurrentPortalSettings() formatted = formatted.Replace("[PORTALNAME]", settings.PortalName) formatted = formatted.Replace("[POSTDATE]", DateTime.Now.ToShortDateString & " " & DateTime.Now.ToShortTimeString) @@ -83,8 +83,8 @@ Namespace Ventrian.NewsArticles Public Function GetApproverDistributionList(ByVal moduleID As Integer) As String - Dim settings As PortalSettings = PortalController.GetCurrentPortalSettings() - Dim moduleSettings As Hashtable = PortalSettings.GetModuleSettings(moduleID) + Dim settings As PortalSettings = PortalSettings.Current + Dim moduleSettings As Hashtable = Common.GetModuleSettings(moduleID) Dim distributionList As String = "" If (moduleSettings.Contains(ArticleConstants.PERMISSION_APPROVAL_SETTING)) Then @@ -99,8 +99,8 @@ Namespace Ventrian.NewsArticles Dim objRole As RoleInfo = objRoleController.GetRoleByName(settings.PortalId, role) If Not (objRole Is Nothing) Then - Dim objUsers As ArrayList = objRoleController.GetUserRolesByRoleName(settings.PortalId, objRole.RoleName) - For Each objUser As UserRoleInfo In objUsers + Dim lstUsers As List(Of UserInfo) = RoleController.Instance.GetUsersByRole(settings.PortalId, objRole.RoleName) + For Each objUser As UserInfo In lstUsers If (userList.Contains(objUser.UserID) = False) Then Dim objUserController As UserController = New UserController Dim objSelectedUser As UserInfo = objUserController.GetUser(settings.PortalId, objUser.UserID) @@ -135,13 +135,13 @@ Namespace Ventrian.NewsArticles Public Function [Get](ByVal templateID As Integer) As EmailTemplateInfo - Return CType(CBO.FillObject(DataProvider.Instance().GetEmailTemplate(templateID), GetType(EmailTemplateInfo)), EmailTemplateInfo) + Return CBO.FillObject(Of EmailTemplateInfo)(DataProvider.Instance().GetEmailTemplate(templateID)) End Function Public Function [Get](ByVal moduleID As Integer, ByVal type As EmailTemplateType) As EmailTemplateInfo - Dim objEmailTemplate As EmailTemplateInfo = CType(CBO.FillObject(DataProvider.Instance().GetEmailTemplateByName(moduleID, type.ToString()), GetType(EmailTemplateInfo)), EmailTemplateInfo) + Dim objEmailTemplate As EmailTemplateInfo = CBO.FillObject(of EmailTemplateInfo)(DataProvider.Instance().GetEmailTemplateByName(moduleID, type.ToString())) If (objEmailTemplate Is Nothing) Then @@ -250,7 +250,7 @@ Namespace Ventrian.NewsArticles Public Sub SendFormattedEmail(ByVal moduleID As Integer, ByVal link As String, ByVal objArticle As ArticleInfo, ByVal type As EmailTemplateType, ByVal sendTo As String, ByVal articleSettings As ArticleSettings) - Dim settings As PortalSettings = PortalController.GetCurrentPortalSettings() + Dim settings As PortalSettings = PortalController.Instance.GetCurrentPortalSettings() Dim subject As String = "" Dim template As String = "" @@ -296,7 +296,7 @@ Namespace Ventrian.NewsArticles Public Sub SendFormattedEmail(ByVal moduleID As Integer, ByVal link As String, ByVal objArticle As ArticleInfo, ByVal objComment As CommentInfo, ByVal type As EmailTemplateType, ByVal articleSettings As ArticleSettings) - Dim settings As PortalSettings = PortalController.GetCurrentPortalSettings() + Dim settings As PortalSettings = PortalController.Instance.GetCurrentPortalSettings() Dim sendTo As String = "" @@ -308,7 +308,7 @@ Namespace Ventrian.NewsArticles Dim objUser As UserInfo = objUserController.GetUser(settings.PortalId, objArticle.AuthorID) If Not (objUser Is Nothing) Then - sendTo = objUser.Membership.Email + sendTo = objUser.Email SendFormattedEmail(moduleID, link, objArticle, objComment, EmailTemplateType.CommentNotification, articleSettings, sendTo) End If @@ -321,7 +321,7 @@ Namespace Ventrian.NewsArticles Dim objUser As UserInfo = objUserController.GetUser(settings.PortalId, objComment.UserID) If Not (objUser Is Nothing) Then - sendTo = objUser.Membership.Email + sendTo = objUser.Email SendFormattedEmail(moduleID, link, objArticle, objComment, EmailTemplateType.CommentApproved, articleSettings, sendTo) End If Else @@ -336,7 +336,7 @@ Namespace Ventrian.NewsArticles Dim objUser As UserInfo = objUserController.GetUser(settings.PortalId, objArticle.AuthorID) If Not (objUser Is Nothing) Then - sendTo = objUser.Membership.Email + sendTo = objUser.Email SendFormattedEmail(moduleID, link, objArticle, objComment, EmailTemplateType.CommentRequiringApproval, articleSettings, sendTo) End If @@ -351,7 +351,7 @@ Namespace Ventrian.NewsArticles Public Sub SendFormattedEmail(ByVal moduleID As Integer, ByVal link As String, ByVal objArticle As ArticleInfo, ByVal objComment As CommentInfo, ByVal type As EmailTemplateType, ByVal articleSettings As ArticleSettings, ByVal email As String) - Dim settings As PortalSettings = PortalController.GetCurrentPortalSettings() + Dim settings As PortalSettings = PortalController.Instance.GetCurrentPortalSettings() Dim subject As String = "" Dim template As String = "" diff --git a/Components/Handout/HandoutController.vb b/Components/Handout/HandoutController.vb index 6586525..80a2ce8 100755 --- a/Components/Handout/HandoutController.vb +++ b/Components/Handout/HandoutController.vb @@ -27,7 +27,7 @@ Namespace Ventrian.NewsArticles Public Function GetHandout(ByVal handoutID As Integer) As HandoutInfo - Dim objHandout As HandoutInfo = CType(CBO.FillObject(DataProvider.Instance().GetHandout(handoutID), GetType(HandoutInfo)), HandoutInfo) + Dim objHandout As HandoutInfo = CBO.FillObject(Of HandoutInfo)(DataProvider.Instance().GetHandout(handoutID)) objHandout.Articles = CBO.FillCollection(Of HandoutArticle)(DataProvider.Instance().GetHandoutArticleList(handoutID)) diff --git a/Components/ImageController.vb b/Components/ImageController.vb index f951782..02c999b 100755 --- a/Components/ImageController.vb +++ b/Components/ImageController.vb @@ -8,7 +8,7 @@ Namespace Ventrian.NewsArticles Public Function [Get](ByVal imageID As Integer) As ImageInfo - Return CType(CBO.FillObject(DataProvider.Instance().GetImage(imageID), GetType(ImageInfo)), ImageInfo) + Return CBO.FillObject(Of ImageInfo)(DataProvider.Instance().GetImage(imageID)) End Function diff --git a/Components/Import/FeedController.vb b/Components/Import/FeedController.vb index 52529c5..8a7a9d8 100755 --- a/Components/Import/FeedController.vb +++ b/Components/Import/FeedController.vb @@ -8,7 +8,7 @@ Namespace Ventrian.NewsArticles.Import Public Function [Get](ByVal feedID As Integer) As FeedInfo - Return CType(CBO.FillObject(DataProvider.Instance().GetFeed(feedID), GetType(FeedInfo)), FeedInfo) + Return CBO.FillObject(Of FeedInfo)(DataProvider.Instance().GetFeed(feedID)) End Function diff --git a/Components/LatestArticleController.vb b/Components/LatestArticleController.vb index 64fa536..8639b1d 100755 --- a/Components/LatestArticleController.vb +++ b/Components/LatestArticleController.vb @@ -10,7 +10,7 @@ Namespace Ventrian.NewsArticles Public Function ExportModule(ByVal ModuleID As Integer) As String Implements IPortable.ExportModule Dim objModuleController As New ModuleController - Dim settings As Hashtable = objModuleController.GetModuleSettings(ModuleID) + Dim settings As Hashtable = Common.GetModuleSettings(ModuleID) Dim objLatestLayoutController As New LatestLayoutController() diff --git a/Components/Layout/LatestLayoutController.vb b/Components/Layout/LatestLayoutController.vb index 590dbd0..8474bfa 100755 --- a/Components/Layout/LatestLayoutController.vb +++ b/Components/Layout/LatestLayoutController.vb @@ -1,6 +1,7 @@ Imports System.IO Imports DotNetNuke.Common.Utilities +Imports DotNetNuke.Services.Cache Namespace Ventrian.NewsArticles @@ -129,7 +130,7 @@ Namespace Ventrian.NewsArticles objLayout.Template = File.ReadAllText(filePath) objLayout.Tokens = objLayout.Template.Split(delimiter) - DataCache.SetCache(cacheKey, objLayout, New CacheDependency(filePath)) + DataCache.SetCache(cacheKey, objLayout, New DNNCacheDependency(filePath)) End If diff --git a/Components/Layout/LayoutController.vb b/Components/Layout/LayoutController.vb index 504f4f5..5466716 100755 --- a/Components/Layout/LayoutController.vb +++ b/Components/Layout/LayoutController.vb @@ -26,6 +26,7 @@ Imports Ventrian.NewsArticles.Base Imports DotNetNuke.Web.Client.ClientResourceManagement Imports DotNetNuke.Web.Client Imports DotNetNuke.Services.Cache +Imports DotNetNuke.Services.FileSystem Namespace Ventrian.NewsArticles @@ -134,7 +135,7 @@ Namespace Ventrian.NewsArticles Private ReadOnly Property UserId() As Integer Get - Return UserController.GetCurrentUserInfo().UserID + Return UserController.Instance.GetCurrentUserInfo().UserID End Get End Property @@ -321,8 +322,7 @@ Namespace Ventrian.NewsArticles Return imageUrl Else If (imageUrl.ToLower().StartsWith("fileid=")) Then - Dim objFileController As DotNetNuke.Services.FileSystem.FileController = New DotNetNuke.Services.FileSystem.FileController - Dim objFile As DotNetNuke.Services.FileSystem.FileInfo = objFileController.GetFileById(Convert.ToInt32(UrlUtils.GetParameterValue(imageUrl)), PortalSettings.PortalId) + Dim objFile As DotNetNuke.Services.FileSystem.FileInfo = FileManager.Instance.GetFile(Convert.ToInt32(UrlUtils.GetParameterValue(imageUrl))) If Not (objFile Is Nothing) Then If (objFile.StorageLocation = 1) Then ' Secure Url @@ -1773,7 +1773,7 @@ Namespace Ventrian.NewsArticles Dim isAuthor As Boolean = False If (Request.IsAuthenticated) Then - Dim objUser As UserInfo = UserController.GetCurrentUserInfo() + Dim objUser As UserInfo = UserController.Instance.GetCurrentUserInfo() If (objUser IsNot Nothing) Then If (objUser.UserID = objArticle.AuthorID) Then isAuthor = True @@ -2799,7 +2799,7 @@ Namespace Ventrian.NewsArticles Dim objLiteral As New Literal objLiteral.Text = profilePropertyValue Dim objListController As New ListController - Dim objListEntryInfoCollection As ListEntryInfoCollection = objListController.GetListEntryInfoCollection(profilePropertyName) + Dim objListEntryInfoCollection As IEnumerable(Of ListEntryInfo) = objListController.GetListEntryInfoItems(profilePropertyName) For Each objListEntryInfo As ListEntryInfo In objListEntryInfoCollection If objListEntryInfo.Value = profilePropertyValue Then objLiteral.Text = objListEntryInfo.Text @@ -4357,7 +4357,7 @@ Namespace Ventrian.NewsArticles Dim objLiteral As New Literal objLiteral.Text = profilePropertyValue Dim objListController As New ListController - Dim objListEntryInfoCollection As ListEntryInfoCollection = objListController.GetListEntryInfoCollection(profilePropertyName) + Dim objListEntryInfoCollection As IEnumerable(Of ListEntryInfo) = objListController.GetListEntryInfoItems(profilePropertyName) For Each objListEntryInfo As ListEntryInfo In objListEntryInfoCollection If objListEntryInfo.Value = profilePropertyValue Then objLiteral.Text = objListEntryInfo.Text diff --git a/Components/Layout/TokenProcessor.vb b/Components/Layout/TokenProcessor.vb index 6330cfe..f651b76 100755 --- a/Components/Layout/TokenProcessor.vb +++ b/Components/Layout/TokenProcessor.vb @@ -13,360 +13,371 @@ Imports Ventrian.NewsArticles.Base Namespace Ventrian.NewsArticles - Public Class TokenProcessor + Public Class TokenProcessor #Region " Private Methods " - Private Shared Function GetModuleLink(ByVal key As String, ByVal moduleContext As NewsArticleModuleBase) As String - Return Common.GetModuleLink(moduleContext.TabId, moduleContext.ModuleId, key, moduleContext.ArticleSettings) - End Function + Private Shared Function GetModuleLink(ByVal key As String, ByVal moduleContext As NewsArticleModuleBase) As String + If moduleContext IsNot Nothing AndAlso + moduleContext.ModuleConfiguration IsNot Nothing AndAlso + Not String.IsNullOrEmpty(moduleContext.ModuleConfiguration.CultureCode) AndAlso + moduleContext.ModuleConfiguration.CultureCode.Trim() <> "" Then + + Return Common.GetModuleLink(moduleContext.TabId, moduleContext.ModuleId, key, moduleContext.ArticleSettings, "language=" + moduleContext.ModuleConfiguration.CultureCode) + + Else + + Return Common.GetModuleLink(moduleContext.TabId, moduleContext.ModuleId, key, moduleContext.ArticleSettings) + + End If + End Function #End Region #Region " Process Menu " - Public Shared Sub ProcessMenu(ByRef placeHolder As ControlCollection, ByRef moduleContext As NewsArticleModuleBase, ByVal selectedMenu As MenuOptionType) + Public Shared Sub ProcessMenu(ByRef placeHolder As ControlCollection, ByRef moduleContext As NewsArticleModuleBase, ByVal selectedMenu As MenuOptionType) - Dim objLayoutController As New LayoutController(moduleContext) - Dim objLayout As LayoutInfo = LayoutController.GetLayout(moduleContext, LayoutType.Menu_Item_Html) + Dim objLayoutController As New LayoutController(moduleContext) + Dim objLayout As LayoutInfo = LayoutController.GetLayout(moduleContext, LayoutType.Menu_Item_Html) - For iPtr As Integer = 0 To objLayout.Tokens.Length - 1 Step 2 - - placeHolder.Add(New LiteralControl(objLayoutController.ProcessImages(objLayout.Tokens(iPtr).ToString()))) - - If iPtr < objLayout.Tokens.Length - 1 Then - ProcessMenuItem(objLayout.Tokens(iPtr + 1), placeHolder, objLayoutController, moduleContext, iPtr, objLayout.Tokens, selectedMenu) - End If - - Next - - End Sub - - Public Shared Sub ProcessMenuItem(ByVal token As String, ByRef objPlaceHolder As ControlCollection, ByVal objLayoutController As LayoutController, ByVal moduleContext As NewsArticleModuleBase, ByRef iPtr As Integer, ByVal templateArray As String(), ByVal selectedMenu As MenuOptionType) - - 'Dim path As String = objPage.TemplateSourceDirectory & "/DesktopModules/DnnForge - NewsArticles/" & Localization.LocalResourceDirectory & "/" & Localization.LocalSharedResourceFile - 'path = "~" & path.Substring(path.IndexOf("/DesktopModules/"), path.Length - path.IndexOf("/DesktopModules/")) - - Dim path As String = "~/DesktopModules/DnnForge - NewsArticles/" & Localization.LocalResourceDirectory & "/" & Localization.LocalSharedResourceFile - - Select Case token - - Case "ADMINLINK" - Dim objLiteral As New Literal - - Dim parameters As New List(Of String) - parameters.Add("mid=" & moduleContext.ModuleId) - - If (moduleContext.ArticleSettings.AuthorUserIDFilter) Then - If (moduleContext.ArticleSettings.AuthorUserIDParam <> "") Then - If (HttpContext.Current.Request(moduleContext.ArticleSettings.AuthorUserIDParam) <> "") Then - parameters.Add(moduleContext.ArticleSettings.AuthorUserIDParam & "=" & HttpContext.Current.Request(moduleContext.ArticleSettings.AuthorUserIDParam)) - End If - End If - End If - - If (moduleContext.ArticleSettings.AuthorUsernameFilter) Then - If (moduleContext.ArticleSettings.AuthorUsernameParam <> "") Then - If (HttpContext.Current.Request(moduleContext.ArticleSettings.AuthorUsernameParam) <> "") Then - parameters.Add(moduleContext.ArticleSettings.AuthorUsernameParam & "=" & HttpContext.Current.Request(moduleContext.ArticleSettings.AuthorUsernameParam)) - End If - End If - End If - - objLiteral.Text = NavigateURL(moduleContext.TabId, "AdminOptions", parameters.ToArray()) - objPlaceHolder.Add(objLiteral) - - Case "ARCHIVESLINK" - Dim objLiteral As New Literal - objLiteral.Text = GetModuleLink("Archives", moduleContext) - objPlaceHolder.Add(objLiteral) - - Case "APPROVEARTICLESLINK" - Dim objLiteral As New Literal - objLiteral.Text = GetModuleLink("ApproveArticles", moduleContext) - objPlaceHolder.Add(objLiteral) - - Case "APPROVECOMMENTSLINK" - Dim objLiteral As New Literal - objLiteral.Text = GetModuleLink("ApproveComments", moduleContext) - objPlaceHolder.Add(objLiteral) - - Case "CATEGORIESLINK" - Dim objLiteral As New Literal - objLiteral.Text = GetModuleLink("Archives", moduleContext) - objPlaceHolder.Add(objLiteral) - - Case "CURRENTARTICLESLINK" - Dim objLiteral As New Literal - objLiteral.Text = GetModuleLink("", moduleContext) - objPlaceHolder.Add(objLiteral) - - Case "HASCOMMENTSENABLED" - If (moduleContext.ArticleSettings.IsCommentsEnabled = False Or moduleContext.ArticleSettings.IsCommentModerationEnabled = False) Then - While (iPtr < templateArray.Length - 1) - If (templateArray(iPtr + 1) = "/HASCOMMENTSENABLED") Then - Exit While - End If - iPtr = iPtr + 1 - End While - End If - - Case "/HASCOMMENTSENABLED" - ' Do Nothing - - Case "ISADMIN" - If (moduleContext.ArticleSettings.IsAdmin = False) Then - While (iPtr < templateArray.Length - 1) - If (templateArray(iPtr + 1) = "/ISADMIN") Then - Exit While - End If - iPtr = iPtr + 1 - End While - End If - - Case "/ISADMIN" - ' Do Nothing - - Case "ISAPPROVER" - If (moduleContext.ArticleSettings.IsApprover = False) Then - While (iPtr < templateArray.Length - 1) - If (templateArray(iPtr + 1) = "/ISAPPROVER") Then - Exit While - End If - iPtr = iPtr + 1 - End While - End If - - Case "/ISAPPROVER" - ' Do Nothing - - Case "ISSELECTEDADMIN" - If (selectedMenu <> MenuOptionType.AdminOptions) Then - While (iPtr < templateArray.Length - 1) - If (templateArray(iPtr + 1) = "/ISSELECTEDADMIN") Then - Exit While - End If - iPtr = iPtr + 1 - End While - End If - - Case "/ISSELECTEDADMIN" - ' Do Nothing - - Case "ISSELECTEDAPPROVEARTICLES" - If (selectedMenu <> MenuOptionType.ApproveArticles) Then - While (iPtr < templateArray.Length - 1) - If (templateArray(iPtr + 1) = "/ISSELECTEDAPPROVEARTICLES") Then - Exit While - End If - iPtr = iPtr + 1 - End While - End If - - Case "/ISSELECTEDAPPROVEARTICLES" - ' Do Nothing - - Case "ISSELECTEDAPPROVECOMMENTS" - If (selectedMenu <> MenuOptionType.ApproveComments) Then - While (iPtr < templateArray.Length - 1) - If (templateArray(iPtr + 1) = "/ISSELECTEDAPPROVECOMMENTS") Then - Exit While - End If - iPtr = iPtr + 1 - End While - End If - - Case "/ISSELECTEDAPPROVECOMMENTS" - ' Do Nothing - - Case "ISSELECTEDCATEGORIES" - If (selectedMenu <> MenuOptionType.Categories) Then - While (iPtr < templateArray.Length - 1) - If (templateArray(iPtr + 1) = "/ISSELECTEDCATEGORIES") Then - Exit While - End If - iPtr = iPtr + 1 - End While - End If - - Case "/ISSELECTEDCATEGORIES" - ' Do Nothing - - Case "ISSELECTEDCURRENTARTICLES" - If (selectedMenu <> MenuOptionType.CurrentArticles) Then - While (iPtr < templateArray.Length - 1) - If (templateArray(iPtr + 1) = "/ISSELECTEDCURRENTARTICLES") Then - Exit While - End If - iPtr = iPtr + 1 - End While - End If - - Case "/ISSELECTEDCURRENTARTICLES" - ' Do Nothing - - Case "ISSELECTEDMYARTICLES" - If (selectedMenu <> MenuOptionType.MyArticles) Then - While (iPtr < templateArray.Length - 1) - If (templateArray(iPtr + 1) = "/ISSELECTEDMYARTICLES") Then - Exit While - End If - iPtr = iPtr + 1 - End While - End If - - Case "/ISSELECTEDMYARTICLES" - ' Do Nothing - - Case "ISSELECTEDSEARCH" - If (selectedMenu <> MenuOptionType.Search) Then - While (iPtr < templateArray.Length - 1) - If (templateArray(iPtr + 1) = "/ISSELECTEDSEARCH") Then - Exit While - End If - iPtr = iPtr + 1 - End While - End If - - Case "/ISSELECTEDSEARCH" - ' Do Nothing - - Case "ISSELECTEDSYNDICATION" - If (selectedMenu <> MenuOptionType.Syndication) Then - While (iPtr < templateArray.Length - 1) - If (templateArray(iPtr + 1) = "/ISSELECTEDSYNDICATION") Then - Exit While - End If - iPtr = iPtr + 1 - End While - End If - - Case "/ISSELECTEDSYNDICATION" - ' Do Nothing - - Case "ISSELECTEDSUBMITARTICLE" - If (selectedMenu <> MenuOptionType.SubmitArticle) Then - While (iPtr < templateArray.Length - 1) - If (templateArray(iPtr + 1) = "/ISSELECTEDSUBMITARTICLE") Then - Exit While - End If - iPtr = iPtr + 1 - End While - End If - - Case "/ISSELECTEDSUBMITARTICLE" - ' Do Nothing - - Case "ISSYNDICATIONENABLED" - If (moduleContext.ArticleSettings.IsSyndicationEnabled = False) Then - While (iPtr < templateArray.Length - 1) - If (templateArray(iPtr + 1) = "/ISSYNDICATIONENABLED") Then - Exit While - End If - iPtr = iPtr + 1 - End While - End If - - Case "/ISSYNDICATIONENABLED" - ' Do Nothing - - Case "ISSUBMITTER" - If (moduleContext.ArticleSettings.IsSubmitter = False) Then - While (iPtr < templateArray.Length - 1) - If (templateArray(iPtr + 1) = "/ISSUBMITTER") Then - Exit While - End If - iPtr = iPtr + 1 - End While - End If - - Case "/ISSUBMITTER" - ' Do Nothing - - Case "MYARTICLESLINK" - Dim objLiteral As New Literal - objLiteral.Text = GetModuleLink("MyArticles", moduleContext) - objPlaceHolder.Add(objLiteral) - - Case "RSSLATESTLINK" - Dim objLiteral As New Literal - Dim authorIDParam As String = "" - If (moduleContext.ArticleSettings.AuthorUserIDFilter) Then - If (moduleContext.ArticleSettings.AuthorUserIDParam <> "") Then - If (HttpContext.Current.Request(moduleContext.ArticleSettings.AuthorUserIDParam) <> "") Then - authorIDParam = "&AuthorID=" & HttpContext.Current.Request(moduleContext.ArticleSettings.AuthorUserIDParam) - End If - End If - End If - - If (moduleContext.ArticleSettings.AuthorUsernameFilter) Then - If (moduleContext.ArticleSettings.AuthorUsernameParam <> "") Then - If (HttpContext.Current.Request(moduleContext.ArticleSettings.AuthorUsernameParam) <> "") Then - Try - Dim objUser As Entities.Users.UserInfo = Entities.Users.UserController.GetUserByName(PortalController.GetCurrentPortalSettings().PortalId, HttpContext.Current.Request.QueryString(moduleContext.ArticleSettings.AuthorUsernameParam)) - If (objUser IsNot Nothing) Then - authorIDParam = "&AuthorID=" & objUser.UserID.ToString() - End If - Catch - End Try - End If - End If - End If - objLiteral.Text = ArticleUtilities.ResolveUrl("~/DesktopModules/DnnForge%20-%20NewsArticles/Rss.aspx") & "?TabID=" & moduleContext.TabId & "&ModuleID=" & moduleContext.ModuleId & "&MaxCount=25" & authorIDParam - objPlaceHolder.Add(objLiteral) - - Case "SEARCHLINK" - Dim objLiteral As New Literal - objLiteral.Text = GetModuleLink("Search", moduleContext) - objPlaceHolder.Add(objLiteral) - - Case "SUBMITARTICLELINK" - Dim objLiteral As New Literal - If (moduleContext.ArticleSettings.LaunchLinks) Then - objLiteral.Text = GetModuleLink("Edit", moduleContext) - Else - objLiteral.Text = GetModuleLink("SubmitNews", moduleContext) - End If - objPlaceHolder.Add(objLiteral) - - Case "SYNDICATIONLINK" - Dim objLiteral As New Literal - objLiteral.Text = GetModuleLink("Syndication", moduleContext) - objPlaceHolder.Add(objLiteral) - - Case Else - Dim isRendered As Boolean = False - - If (templateArray(iPtr + 1).ToUpper().StartsWith("RESX:")) Then - Dim key As String = templateArray(iPtr + 1).Substring(5, templateArray(iPtr + 1).Length - 5) - Dim objLiteral As New Literal - Try - objLiteral.Text = Localization.GetString(key & ".Text", path) - If (objLiteral.Text = "") Then - objLiteral.Text = templateArray(iPtr + 1).Substring(5, templateArray(iPtr + 1).Length - 5) - End If - Catch - objLiteral.Text = templateArray(iPtr + 1).Substring(5, templateArray(iPtr + 1).Length - 5) - End Try - objLiteral.EnableViewState = False - objPlaceHolder.Add(objLiteral) - isRendered = True - End If - - If (isRendered = False) Then - Dim objLiteralOther As New Literal - objLiteralOther.Text = "[" & templateArray(iPtr + 1) & "]" - objLiteralOther.EnableViewState = False - objPlaceHolder.Add(objLiteralOther) - End If - - End Select - - End Sub + For iPtr As Integer = 0 To objLayout.Tokens.Length - 1 Step 2 + + placeHolder.Add(New LiteralControl(objLayoutController.ProcessImages(objLayout.Tokens(iPtr).ToString()))) + + If iPtr < objLayout.Tokens.Length - 1 Then + ProcessMenuItem(objLayout.Tokens(iPtr + 1), placeHolder, objLayoutController, moduleContext, iPtr, objLayout.Tokens, selectedMenu) + End If + + Next + + End Sub + + Public Shared Sub ProcessMenuItem(ByVal token As String, ByRef objPlaceHolder As ControlCollection, ByVal objLayoutController As LayoutController, ByVal moduleContext As NewsArticleModuleBase, ByRef iPtr As Integer, ByVal templateArray As String(), ByVal selectedMenu As MenuOptionType) + + 'Dim path As String = objPage.TemplateSourceDirectory & "/DesktopModules/DnnForge - NewsArticles/" & Localization.LocalResourceDirectory & "/" & Localization.LocalSharedResourceFile + 'path = "~" & path.Substring(path.IndexOf("/DesktopModules/"), path.Length - path.IndexOf("/DesktopModules/")) + + Dim path As String = "~/DesktopModules/DnnForge - NewsArticles/" & Localization.LocalResourceDirectory & "/" & Localization.LocalSharedResourceFile + + Select Case token + + Case "ADMINLINK" + Dim objLiteral As New Literal + + Dim parameters As New List(Of String) + parameters.Add("mid=" & moduleContext.ModuleId) + + If (moduleContext.ArticleSettings.AuthorUserIDFilter) Then + If (moduleContext.ArticleSettings.AuthorUserIDParam <> "") Then + If (HttpContext.Current.Request(moduleContext.ArticleSettings.AuthorUserIDParam) <> "") Then + parameters.Add(moduleContext.ArticleSettings.AuthorUserIDParam & "=" & HttpContext.Current.Request(moduleContext.ArticleSettings.AuthorUserIDParam)) + End If + End If + End If + + If (moduleContext.ArticleSettings.AuthorUsernameFilter) Then + If (moduleContext.ArticleSettings.AuthorUsernameParam <> "") Then + If (HttpContext.Current.Request(moduleContext.ArticleSettings.AuthorUsernameParam) <> "") Then + parameters.Add(moduleContext.ArticleSettings.AuthorUsernameParam & "=" & HttpContext.Current.Request(moduleContext.ArticleSettings.AuthorUsernameParam)) + End If + End If + End If + + objLiteral.Text = NavigateURL(moduleContext.TabId, "AdminOptions", parameters.ToArray()) + objPlaceHolder.Add(objLiteral) + + Case "ARCHIVESLINK" + Dim objLiteral As New Literal + objLiteral.Text = GetModuleLink("Archives", moduleContext) + objPlaceHolder.Add(objLiteral) + + Case "APPROVEARTICLESLINK" + Dim objLiteral As New Literal + objLiteral.Text = GetModuleLink("ApproveArticles", moduleContext) + objPlaceHolder.Add(objLiteral) + + Case "APPROVECOMMENTSLINK" + Dim objLiteral As New Literal + objLiteral.Text = GetModuleLink("ApproveComments", moduleContext) + objPlaceHolder.Add(objLiteral) + + Case "CATEGORIESLINK" + Dim objLiteral As New Literal + objLiteral.Text = GetModuleLink("Archives", moduleContext) + objPlaceHolder.Add(objLiteral) + + Case "CURRENTARTICLESLINK" + Dim objLiteral As New Literal + objLiteral.Text = GetModuleLink("", moduleContext) + objPlaceHolder.Add(objLiteral) + + Case "HASCOMMENTSENABLED" + If (moduleContext.ArticleSettings.IsCommentsEnabled = False Or moduleContext.ArticleSettings.IsCommentModerationEnabled = False) Then + While (iPtr < templateArray.Length - 1) + If (templateArray(iPtr + 1) = "/HASCOMMENTSENABLED") Then + Exit While + End If + iPtr = iPtr + 1 + End While + End If + + Case "/HASCOMMENTSENABLED" + ' Do Nothing + + Case "ISADMIN" + If (moduleContext.ArticleSettings.IsAdmin = False) Then + While (iPtr < templateArray.Length - 1) + If (templateArray(iPtr + 1) = "/ISADMIN") Then + Exit While + End If + iPtr = iPtr + 1 + End While + End If + + Case "/ISADMIN" + ' Do Nothing + + Case "ISAPPROVER" + If (moduleContext.ArticleSettings.IsApprover = False) Then + While (iPtr < templateArray.Length - 1) + If (templateArray(iPtr + 1) = "/ISAPPROVER") Then + Exit While + End If + iPtr = iPtr + 1 + End While + End If + + Case "/ISAPPROVER" + ' Do Nothing + + Case "ISSELECTEDADMIN" + If (selectedMenu <> MenuOptionType.AdminOptions) Then + While (iPtr < templateArray.Length - 1) + If (templateArray(iPtr + 1) = "/ISSELECTEDADMIN") Then + Exit While + End If + iPtr = iPtr + 1 + End While + End If + + Case "/ISSELECTEDADMIN" + ' Do Nothing + + Case "ISSELECTEDAPPROVEARTICLES" + If (selectedMenu <> MenuOptionType.ApproveArticles) Then + While (iPtr < templateArray.Length - 1) + If (templateArray(iPtr + 1) = "/ISSELECTEDAPPROVEARTICLES") Then + Exit While + End If + iPtr = iPtr + 1 + End While + End If + + Case "/ISSELECTEDAPPROVEARTICLES" + ' Do Nothing + + Case "ISSELECTEDAPPROVECOMMENTS" + If (selectedMenu <> MenuOptionType.ApproveComments) Then + While (iPtr < templateArray.Length - 1) + If (templateArray(iPtr + 1) = "/ISSELECTEDAPPROVECOMMENTS") Then + Exit While + End If + iPtr = iPtr + 1 + End While + End If + + Case "/ISSELECTEDAPPROVECOMMENTS" + ' Do Nothing + + Case "ISSELECTEDCATEGORIES" + If (selectedMenu <> MenuOptionType.Categories) Then + While (iPtr < templateArray.Length - 1) + If (templateArray(iPtr + 1) = "/ISSELECTEDCATEGORIES") Then + Exit While + End If + iPtr = iPtr + 1 + End While + End If + + Case "/ISSELECTEDCATEGORIES" + ' Do Nothing + + Case "ISSELECTEDCURRENTARTICLES" + If (selectedMenu <> MenuOptionType.CurrentArticles) Then + While (iPtr < templateArray.Length - 1) + If (templateArray(iPtr + 1) = "/ISSELECTEDCURRENTARTICLES") Then + Exit While + End If + iPtr = iPtr + 1 + End While + End If + + Case "/ISSELECTEDCURRENTARTICLES" + ' Do Nothing + + Case "ISSELECTEDMYARTICLES" + If (selectedMenu <> MenuOptionType.MyArticles) Then + While (iPtr < templateArray.Length - 1) + If (templateArray(iPtr + 1) = "/ISSELECTEDMYARTICLES") Then + Exit While + End If + iPtr = iPtr + 1 + End While + End If + + Case "/ISSELECTEDMYARTICLES" + ' Do Nothing + + Case "ISSELECTEDSEARCH" + If (selectedMenu <> MenuOptionType.Search) Then + While (iPtr < templateArray.Length - 1) + If (templateArray(iPtr + 1) = "/ISSELECTEDSEARCH") Then + Exit While + End If + iPtr = iPtr + 1 + End While + End If + + Case "/ISSELECTEDSEARCH" + ' Do Nothing + + Case "ISSELECTEDSYNDICATION" + If (selectedMenu <> MenuOptionType.Syndication) Then + While (iPtr < templateArray.Length - 1) + If (templateArray(iPtr + 1) = "/ISSELECTEDSYNDICATION") Then + Exit While + End If + iPtr = iPtr + 1 + End While + End If + + Case "/ISSELECTEDSYNDICATION" + ' Do Nothing + + Case "ISSELECTEDSUBMITARTICLE" + If (selectedMenu <> MenuOptionType.SubmitArticle) Then + While (iPtr < templateArray.Length - 1) + If (templateArray(iPtr + 1) = "/ISSELECTEDSUBMITARTICLE") Then + Exit While + End If + iPtr = iPtr + 1 + End While + End If + + Case "/ISSELECTEDSUBMITARTICLE" + ' Do Nothing + + Case "ISSYNDICATIONENABLED" + If (moduleContext.ArticleSettings.IsSyndicationEnabled = False) Then + While (iPtr < templateArray.Length - 1) + If (templateArray(iPtr + 1) = "/ISSYNDICATIONENABLED") Then + Exit While + End If + iPtr = iPtr + 1 + End While + End If + + Case "/ISSYNDICATIONENABLED" + ' Do Nothing + + Case "ISSUBMITTER" + If (moduleContext.ArticleSettings.IsSubmitter = False) Then + While (iPtr < templateArray.Length - 1) + If (templateArray(iPtr + 1) = "/ISSUBMITTER") Then + Exit While + End If + iPtr = iPtr + 1 + End While + End If + + Case "/ISSUBMITTER" + ' Do Nothing + + Case "MYARTICLESLINK" + Dim objLiteral As New Literal + objLiteral.Text = GetModuleLink("MyArticles", moduleContext) + objPlaceHolder.Add(objLiteral) + + Case "RSSLATESTLINK" + Dim objLiteral As New Literal + Dim authorIDParam As String = "" + If (moduleContext.ArticleSettings.AuthorUserIDFilter) Then + If (moduleContext.ArticleSettings.AuthorUserIDParam <> "") Then + If (HttpContext.Current.Request(moduleContext.ArticleSettings.AuthorUserIDParam) <> "") Then + authorIDParam = "&AuthorID=" & HttpContext.Current.Request(moduleContext.ArticleSettings.AuthorUserIDParam) + End If + End If + End If + + If (moduleContext.ArticleSettings.AuthorUsernameFilter) Then + If (moduleContext.ArticleSettings.AuthorUsernameParam <> "") Then + If (HttpContext.Current.Request(moduleContext.ArticleSettings.AuthorUsernameParam) <> "") Then + Try + Dim objUser As Entities.Users.UserInfo = Entities.Users.UserController.GetUserByName(PortalController.Instance.GetCurrentPortalSettings().PortalId, HttpContext.Current.Request.QueryString(moduleContext.ArticleSettings.AuthorUsernameParam)) + If (objUser IsNot Nothing) Then + authorIDParam = "&AuthorID=" & objUser.UserID.ToString() + End If + Catch + End Try + End If + End If + End If + objLiteral.Text = ArticleUtilities.ResolveUrl("~/DesktopModules/DnnForge%20-%20NewsArticles/Rss.aspx") & "?TabID=" & moduleContext.TabId & "&ModuleID=" & moduleContext.ModuleId & "&MaxCount=25" & authorIDParam + objPlaceHolder.Add(objLiteral) + + Case "SEARCHLINK" + Dim objLiteral As New Literal + objLiteral.Text = GetModuleLink("Search", moduleContext) + objPlaceHolder.Add(objLiteral) + + Case "SUBMITARTICLELINK" + Dim objLiteral As New Literal + If (moduleContext.ArticleSettings.LaunchLinks) Then + objLiteral.Text = GetModuleLink("Edit", moduleContext) + Else + objLiteral.Text = GetModuleLink("SubmitNews", moduleContext) + End If + objPlaceHolder.Add(objLiteral) + + Case "SYNDICATIONLINK" + Dim objLiteral As New Literal + objLiteral.Text = GetModuleLink("Syndication", moduleContext) + objPlaceHolder.Add(objLiteral) + + Case Else + Dim isRendered As Boolean = False + + If (templateArray(iPtr + 1).ToUpper().StartsWith("RESX:")) Then + Dim key As String = templateArray(iPtr + 1).Substring(5, templateArray(iPtr + 1).Length - 5) + Dim objLiteral As New Literal + Try + objLiteral.Text = Localization.GetString(key & ".Text", path) + If (objLiteral.Text = "") Then + objLiteral.Text = templateArray(iPtr + 1).Substring(5, templateArray(iPtr + 1).Length - 5) + End If + Catch + objLiteral.Text = templateArray(iPtr + 1).Substring(5, templateArray(iPtr + 1).Length - 5) + End Try + objLiteral.EnableViewState = False + objPlaceHolder.Add(objLiteral) + isRendered = True + End If + + If (isRendered = False) Then + Dim objLiteralOther As New Literal + objLiteralOther.Text = "[" & templateArray(iPtr + 1) & "]" + objLiteralOther.EnableViewState = False + objPlaceHolder.Add(objLiteralOther) + End If + + End Select + + End Sub #End Region - End Class + End Class End Namespace diff --git a/Components/MirrorArticleController.vb b/Components/MirrorArticleController.vb index fc5fcd0..0be606a 100755 --- a/Components/MirrorArticleController.vb +++ b/Components/MirrorArticleController.vb @@ -24,7 +24,7 @@ Namespace Ventrian.NewsArticles Public Function GetMirrorArticle(ByVal articleID As Integer) As MirrorArticleInfo - Return CType(CBO.FillObject(DataProvider.Instance().GetMirrorArticle(articleID), GetType(MirrorArticleInfo)), MirrorArticleInfo) + Return CBO.FillObject(Of MirrorArticleInfo)(DataProvider.Instance().GetMirrorArticle(articleID)) End Function diff --git a/Components/MirrorArticleInfo.vb b/Components/MirrorArticleInfo.vb index 3a647b1..24cab50 100755 --- a/Components/MirrorArticleInfo.vb +++ b/Components/MirrorArticleInfo.vb @@ -6,6 +6,7 @@ Imports System Imports System.Data +Imports System.Linq Imports DotNetNuke Imports DotNetNuke.Common.Utilities @@ -83,11 +84,10 @@ Namespace Ventrian.NewsArticles If (objPortal IsNot Nothing) Then _portalName = objPortal.PortalName - Dim o As New PortalAliasController - Dim portalAliases As ArrayList = o.GetPortalAliasArrayByPortalID(_linkedPortalID) + Dim portalAliases As IEnumerable(Of PortalAliasInfo) = PortalAliasController.Instance.GetPortalAliasesByPortalId(_linkedPortalID) If (portalAliases.Count > 0) Then - _portalName = DotNetNuke.Common.AddHTTP(CType(portalAliases(0), PortalAliasInfo).HTTPAlias) + _portalName = DotNetNuke.Common.AddHTTP(portalAliases(0).HTTPAlias) End If End If End If diff --git a/Components/RatingController.vb b/Components/RatingController.vb index 621344c..bb59a1c 100755 --- a/Components/RatingController.vb +++ b/Components/RatingController.vb @@ -56,7 +56,7 @@ Namespace Ventrian.NewsArticles Dim objRating As RatingInfo = CType(DataCache.GetCache(cacheKey), RatingInfo) If (objRating Is Nothing) Then - objRating = CType(CBO.FillObject(DataProvider.Instance().GetRating(articleID, userID), GetType(RatingInfo)), RatingInfo) + objRating = CBO.FillObject(Of RatingInfo)(DataProvider.Instance().GetRating(articleID, userID)) If (objRating IsNot Nothing) Then DataCache.SetCache(cacheKey, objRating) Else @@ -77,7 +77,7 @@ Namespace Ventrian.NewsArticles Dim objRating As RatingInfo = CType(DataCache.GetCache(cacheKey), RatingInfo) If (objRating Is Nothing) Then - objRating = CType(CBO.FillObject(DataProvider.Instance().GetRatingByID(ratingID), GetType(RatingInfo)), RatingInfo) + objRating = CBO.FillObject(Of RatingInfo)(DataProvider.Instance().GetRatingByID(ratingID)) DataCache.SetCache(cacheKey, objRating) End If diff --git a/Components/TagController.vb b/Components/TagController.vb index 6a7c587..5e24869 100755 --- a/Components/TagController.vb +++ b/Components/TagController.vb @@ -30,7 +30,7 @@ Namespace Ventrian.NewsArticles Public Function [Get](ByVal tagID As Integer) As TagInfo - Return CType(CBO.FillObject(DataProvider.Instance().GetTag(tagID), GetType(TagInfo)), TagInfo) + Return CBO.FillObject(Of TagInfo)(DataProvider.Instance().GetTag(tagID)) End Function @@ -39,7 +39,7 @@ Namespace Ventrian.NewsArticles Dim objTag As TagInfo = CType(DataCache.GetCache("Tag-" & moduleID.ToString() & "-" & nameLowered), TagInfo) If (objTag Is Nothing) Then - objTag = CType(CBO.FillObject(DataProvider.Instance().GetTagByName(moduleID, nameLowered), GetType(TagInfo)), TagInfo) + objTag = CBO.FillObject(Of TagInfo)(DataProvider.Instance().GetTagByName(moduleID, nameLowered)) If Not (objTag Is Nothing) Then DataCache.SetCache("Tag-" & moduleID.ToString() & "-" & nameLowered, objTag) End If @@ -57,7 +57,7 @@ Namespace Ventrian.NewsArticles Public Function Add(ByVal objTag As TagInfo) As Integer - Return CType(DataProvider.Instance().AddTag(objTag.ModuleID, objTag.Name, objTag.NameLowered), Integer) + Return DataProvider.Instance().AddTag(objTag.ModuleID, objTag.Name, objTag.NameLowered) End Function diff --git a/Components/TemplateController.vb b/Components/TemplateController.vb index 965d82a..9adccab 100755 --- a/Components/TemplateController.vb +++ b/Components/TemplateController.vb @@ -11,6 +11,7 @@ Imports System.Xml Imports DotNetNuke.Common.Utilities Imports DotNetNuke.Entities.Portals +Imports DotNetNuke.Services.Cache Namespace Ventrian.NewsArticles @@ -64,8 +65,8 @@ Namespace Ventrian.NewsArticles objTemplate.Tokens = objTemplate.Template.Split(delimiter) - DataCache.SetCache(cacheKey, objTemplate, New CacheDependency(path)) - DataCache.SetCache(cacheKeyXml, objTemplate, New CacheDependency(pathXml)) + DataCache.SetCache(cacheKey, objTemplate, New DNNCacheDependency(path)) + DataCache.SetCache(cacheKeyXml, objTemplate, New DNNCacheDependency(pathXml)) End If Return objTemplate diff --git a/Components/UserTime.vb b/Components/UserTime.vb index f03ba72..64eb344 100755 --- a/Components/UserTime.vb +++ b/Components/UserTime.vb @@ -23,16 +23,12 @@ Namespace Ventrian.NewsArticles Public Function ConvertToUserTime(ByVal dt As DateTime, ByVal ClientTimeZone As Double) As DateTime - Dim _portalSettings As PortalSettings = PortalController.GetCurrentPortalSettings - Return dt.AddMinutes(ClientTimeZone) End Function Public Function ConvertToServerTime(ByVal dt As DateTime, ByVal ClientTimeZone As Double) As DateTime - Dim _portalSettings As PortalSettings = PortalController.GetCurrentPortalSettings - Return dt.AddMinutes(ClientTimeZone * -1) @@ -42,8 +38,8 @@ Namespace Ventrian.NewsArticles Get - Dim objUserInfo As UserInfo = UserController.GetCurrentUserInfo - Return FromClientToServerFactor(objUserInfo.Profile.TimeZone, serverTimeZoneOffet) + Dim objUserInfo As UserInfo = UserController.Instance.GetCurrentUserInfo + Return FromClientToServerFactor(objUserInfo.Profile.PreferredTimeZone.GetUtcOffset(DateTime.Now).TotalHours, serverTimeZoneOffet) End Get @@ -53,8 +49,8 @@ Namespace Ventrian.NewsArticles Get - Dim _portalSettings As PortalSettings = PortalController.GetCurrentPortalSettings - Return FromClientToServerFactor(_portalSettings.TimeZoneOffset, serverTimeZoneOffet) + Dim _portalSettings As PortalSettings = PortalController.Instance.GetCurrentPortalSettings + Return FromClientToServerFactor(_portalSettings.TimeZone.GetUtcOffset(DateTime.Now).TotalHours, serverTimeZoneOffet) End Get @@ -65,9 +61,9 @@ Namespace Ventrian.NewsArticles Get - Dim objUser As UserInfo = UserController.GetCurrentUserInfo() - Dim _portalSettings As PortalSettings = PortalController.GetCurrentPortalSettings - Return FromServerToClientFactor(objUser.Profile.TimeZone, _portalSettings.TimeZoneOffset) + Dim objUser As UserInfo = UserController.Instance.GetCurrentUserInfo() + Dim _portalSettings As PortalSettings = PortalController.Instance.GetCurrentPortalSettings + Return FromServerToClientFactor(objUser.Profile.PreferredTimeZone.GetUtcOffset(DateTime.Now).TotalHours, _portalSettings.TimeZone.GetUtcOffset(DateTime.Now).TotalHours) End Get diff --git a/Components/Utility/LocalizationUtil.vb b/Components/Utility/LocalizationUtil.vb index 5f47a1e..bb42592 100755 --- a/Components/Utility/LocalizationUtil.vb +++ b/Components/Utility/LocalizationUtil.vb @@ -6,10 +6,13 @@ Imports System.IO Imports System.Xml +Imports DotNetNuke.Application Imports DotNetNuke.Common Imports DotNetNuke.Common.Utilities +Imports DotNetNuke.Entities.Host Imports DotNetNuke.Entities.Portals +Imports DotNetNuke.Services.Cache Imports DotNetNuke.Services.Localization Namespace Ventrian.NewsArticles.Components.Utility @@ -24,51 +27,48 @@ Namespace Ventrian.NewsArticles.Components.Utility #Region " Public Methods " - Private Shared Function GetHostSettingAsBoolean(ByVal key As String, ByVal defaultValue As Boolean) As Boolean - Dim retValue As Boolean = defaultValue - Try - Dim setting As String = DotNetNuke.Entities.Host.HostSettings.GetHostSetting(key) - If String.IsNullOrEmpty(setting) = False Then - retValue = (setting.ToUpperInvariant().StartsWith("Y") OrElse setting.ToUpperInvariant = "TRUE") - End If - Catch ex As Exception - 'we just want to trap the error as we may not be installed so there will be no Settings - End Try - Return retValue - End Function - - Private Shared Function GetPortalSettingAsBoolean(ByVal portalID As Integer, ByVal key As String, ByVal defaultValue As Boolean) As Boolean - Dim retValue As Boolean = defaultValue - Try - Dim setting As String = DotNetNuke.Entities.Portals.PortalSettings.GetSiteSetting(portalID, key) - If String.IsNullOrEmpty(setting) = False Then - retValue = (setting.ToUpperInvariant().StartsWith("Y") OrElse setting.ToUpperInvariant = "TRUE") - End If - Catch ex As Exception - 'we just want to trap the error as we may not be installed so there will be no Settings - End Try - Return retValue - End Function + 'Private Shared Function GetHostSettingAsBoolean(ByVal key As String, ByVal defaultValue As Boolean) As Boolean + ' Dim retValue As Boolean = defaultValue + ' Try + ' Dim setting As String = DotNetNuke.Entities.Host.HostSettings.GetHostSetting(key) + ' If String.IsNullOrEmpty(setting) = False Then + ' retValue = (setting.ToUpperInvariant().StartsWith("Y") OrElse setting.ToUpperInvariant = "TRUE") + ' End If + ' Catch ex As Exception + ' 'we just want to trap the error as we may not be installed so there will be no Settings + ' End Try + ' Return retValue + 'End Function + + 'Private Shared Function GetPortalSettingAsBoolean(ByVal portalID As Integer, ByVal key As String, ByVal defaultValue As Boolean) As Boolean + ' Dim retValue As Boolean = defaultValue + ' Try + ' Dim setting As String = DotNetNuke.Entities.Portals.PortalSettings.GetSiteSetting(portalID, key) + ' If String.IsNullOrEmpty(setting) = False Then + ' retValue = (setting.ToUpperInvariant().StartsWith("Y") OrElse setting.ToUpperInvariant = "TRUE") + ' End If + ' Catch ex As Exception + ' 'we just want to trap the error as we may not be installed so there will be no Settings + ' End Try + ' Return retValue + 'End Function Public Shared Function UseLanguageInUrl() As Boolean - Dim hostSetting As String = DotNetNuke.Entities.Host.HostSettings.GetHostSetting("EnableUrlLanguage") - If (hostSetting <> "") Then - Return GetHostSettingAsBoolean("EnableUrlLanguage", True) + If (Host.EnableUrlLanguage) Then + Return Host.EnableUrlLanguage End If - Dim objSettings As PortalSettings = PortalController.GetCurrentPortalSettings() - Dim portalSetting As String = DotNetNuke.Entities.Portals.PortalSettings.GetSiteSetting(objSettings.PortalId, "EnableUrlLanguage") - If (portalSetting <> "") Then - Return GetPortalSettingAsBoolean(objSettings.PortalId, "EnableUrlLanguage", True) + If (PortalSettings.Current.EnableUrlLanguage) Then + Return PortalSettings.Current.EnableUrlLanguage End If If (File.Exists(HttpContext.Current.Server.MapPath(Localization.ApplicationResourceDirectory + "/Locales.xml")) = False) Then - Return GetHostSettingAsBoolean("EnableUrlLanguage", True) + Return Host.EnableUrlLanguage End If Dim cacheKey As String = "" - Dim objPortalSettings As PortalSettings = PortalController.GetCurrentPortalSettings() + Dim objPortalSettings As PortalSettings = PortalController.Instance.GetCurrentPortalSettings() Dim useLanguage As Boolean = False ' check default host setting @@ -82,7 +82,7 @@ Namespace Ventrian.NewsArticles.Components.Utility _strUseLanguageInUrlDefault = languageInUrl.Attributes("enabled").InnerText Else Try - Dim version As Integer = Convert.ToInt32(PortalController.GetCurrentPortalSettings().Version.Replace(".", "")) + Dim version As Integer = Convert.ToInt32(DotNetNukeContext.Current.Application.Version.ToString().Replace(".", "")) If (version >= 490) Then _strUseLanguageInUrlDefault = "true" Else @@ -114,8 +114,8 @@ Namespace Ventrian.NewsArticles.Components.Utility If bXmlLoaded AndAlso Not xmlLocales.SelectSingleNode("//locales/languageInUrl") Is Nothing Then useLanguage = Boolean.Parse(xmlLocales.SelectSingleNode("//locales/languageInUrl").Attributes("enabled").InnerText) End If - If Globals.PerformanceSetting <> Globals.PerformanceSettings.NoCaching Then - Dim dp As New CacheDependency(FilePath) + If Host.PerformanceSetting <> Globals.PerformanceSettings.NoCaching Then + Dim dp As New DNNCacheDependency(FilePath) DataCache.SetCache(cacheKey, useLanguage, dp) End If Else diff --git a/Controls/PostComment.ascx.vb b/Controls/PostComment.ascx.vb index 3bb13c5..1603f4d 100755 --- a/Controls/PostComment.ascx.vb +++ b/Controls/PostComment.ascx.vb @@ -13,7 +13,7 @@ Namespace Ventrian.NewsArticles.Controls #Region " Private Properties " - Private ReadOnly Property ArticleModuleBase() As NewsArticleModuleBase + Private Overloads ReadOnly Property ArticleModuleBase() As NewsArticleModuleBase Get If (TypeOf Parent.Parent Is NewsArticleModuleBase) Then Return CType(Parent.Parent, NewsArticleModuleBase) diff --git a/Controls/SWFUploaderFiles.ashx.vb b/Controls/SWFUploaderFiles.ashx.vb index 0443e62..ddf5471 100755 --- a/Controls/SWFUploaderFiles.ashx.vb +++ b/Controls/SWFUploaderFiles.ashx.vb @@ -165,105 +165,25 @@ Namespace Ventrian.NewsArticles.Controls Dim objFilePosted As HttpPostedFile = _context.Request.Files("Filedata") - If Not (objFilePosted Is Nothing) Then + If Not (objFilePosted Is Nothing) Then - Dim objPortalController As New PortalController() - If (objPortalController.HasSpaceAvailable(_portalID, objFilePosted.ContentLength) = False) Then - _context.Response.Write("-1") - _context.Response.End() - End If + Dim objPortalController As New PortalController() + If (objPortalController.HasSpaceAvailable(_portalID, objFilePosted.ContentLength) = False) Then + _context.Response.Write("-1") + _context.Response.End() + End If - Dim username As String = _context.User.Identity.Name + Dim username As String = _context.User.Identity.Name - If (_articleID <> Null.NullInteger) Then - FileProvider.Instance().AddFile(_articleID, _moduleID, objFilePosted) - Else - FileProvider.Instance().AddFile(_fileGuid, _moduleID, objFilePosted) - End If + If (_articleID <> Null.NullInteger) Then + FileProvider.Instance().AddFile(_articleID, _moduleID, objFilePosted) + Else + FileProvider.Instance().AddFile(_fileGuid, _moduleID, objFilePosted) + End If - 'Dim objFile As New FileInfo - - 'objFile.ArticleID = _articleID - 'If (_articleID = Null.NullInteger) Then - ' objFile.FileGuid = _fileGuid - 'End If - 'objFile.FileName = objFilePosted.FileName - 'objFile.SortOrder = 0 - - 'Dim filesList As List(Of FileInfo) = objFileController.GetFileList(_articleID, _fileGuid) - - 'If (filesList.Count > 0) Then - ' objFile.SortOrder = CType(filesList(filesList.Count - 1), FileInfo).SortOrder + 1 - 'End If - - 'Dim objPortalSettings As PortalSettings = PortalController.GetCurrentPortalSettings() - - 'Dim folder As String = "" - 'If (ArticleSettings.DefaultFilesFolder <> Null.NullInteger) Then - ' Dim objFolderController As New FolderController - ' Dim objFolder As FolderInfo = objFolderController.GetFolderInfo(_portalID, ArticleSettings.DefaultFilesFolder) - ' If (objFolder IsNot Nothing) Then - ' folder = objFolder.FolderPath - ' End If - 'End If - - 'objFile.Folder = folder - 'objFile.ContentType = objFilePosted.ContentType - - 'If (objFile.FileName.Split("."c).Length > 0) Then - ' objFile.Extension = objFile.FileName.Split("."c)(objFile.FileName.Split("."c).Length - 1) - - ' If (objFile.Extension.ToLower() = "jpg") Then - ' objFile.ContentType = "image/jpeg" - ' End If - ' If (objFile.Extension.ToLower() = "gif") Then - ' objFile.ContentType = "image/gif" - ' End If - ' If (objFile.Extension.ToLower() = "txt") Then - ' objFile.ContentType = "text/plain" - ' End If - ' If (objFile.Extension.ToLower() = "html") Then - ' objFile.ContentType = "text/html" - ' End If - ' If (objFile.Extension.ToLower() = "mp3") Then - ' objFile.ContentType = "audio/mpeg" - ' End If - - 'End If - 'objFile.Title = objFile.FileName.Replace("." & objFile.Extension, "") - - 'Dim filePath As String = objPortalSettings.HomeDirectoryMapPath & folder.Replace("/", "\") - - 'If Not (Directory.Exists(filePath)) Then - ' Directory.CreateDirectory(filePath) - 'End If - - 'If (File.Exists(filePath & objFile.FileName)) Then - ' For i As Integer = 1 To 100 - ' If (File.Exists(filePath & i.ToString() & "_" & objFile.FileName) = False) Then - ' objFile.FileName = i.ToString() & "_" & objFile.FileName - ' Exit For - ' End If - ' Next - 'End If - - 'objFile.Size = objFilePosted.ContentLength - 'objFilePosted.SaveAs(filePath & objFile.FileName) - - 'objFile.FileID = objFileController.Add(objFile) - - 'If (_articleID <> Null.NullInteger) Then - ' Dim objArticleController As New ArticleController - ' Dim objArticle As ArticleInfo = objArticleController.GetArticle(_articleID) - ' If (objArticle IsNot Nothing) Then - ' objArticle.FileCount = objArticle.FileCount + 1 - ' objArticleController.UpdateArticle(objArticle) - ' End If - 'End If - - End If + End If - _context.Response.Write("0") + _context.Response.Write("0") _context.Response.End() End Sub diff --git a/Controls/UploadFiles.ascx b/Controls/UploadFiles.ascx index 1a36b8f..9275b03 100755 --- a/Controls/UploadFiles.ascx +++ b/Controls/UploadFiles.ascx @@ -1,183 +1,109 @@ <%@ Control Language="vb" AutoEventWireup="false" CodeBehind="UploadFiles.ascx.vb" Inherits="Ventrian.NewsArticles.Controls.UploadFiles" %> <%@ Register TagPrefix="Ventrian" Assembly="Ventrian.NewsArticles" Namespace="Ventrian.NewsArticles.Components.WebControls" %> - <%@ Register TagPrefix="dnn" TagName="SectionHead" Src="~/controls/SectionHeadControl.ascx" %> <%@ Register TagPrefix="dnn" TagName="Label" Src="~/controls/LabelControl.ascx" %> <%@ Register TagPrefix="dnn" TagName="URL" Src="~/controls/URLControl.ascx" %> - -
- - + +
- + - - - -
- +
- - - - - - -
- - - - - - - - - -
 
- -
-
- -
-
-
-
-
- - - - - -
- - - - - -

 
-
-
-
- - - - - -
- - - - - <%#DataBinder.Eval(Container.DataItem, "Title")%> - -
- - - - -
- - - <%#DataBinder.Eval(Container.DataItem, "Title")%> - -
- -
- - -
-
-
-
-
-
- + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + +
+
+ + + + + + + + +
+ +
+
+
+
+ + + + + +
+ + + + + <%#DataBinder.Eval(Container.DataItem, "Title")%> + +
+ + + + +
+ + + <%#DataBinder.Eval(Container.DataItem, "Title")%> + +
+ +
+ + +
+
+
+ +
+
+ + + + diff --git a/Controls/UploadFiles.ascx.designer.vb b/Controls/UploadFiles.ascx.designer.vb index 57b9571..8c2c43d 100755 --- a/Controls/UploadFiles.ascx.designer.vb +++ b/Controls/UploadFiles.ascx.designer.vb @@ -11,9 +11,9 @@ Option Strict On Option Explicit On Namespace Ventrian.NewsArticles.Controls - + Partial Public Class UploadFiles - + ''' '''litModuleID control. ''' @@ -22,7 +22,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents litModuleID As Global.System.Web.UI.WebControls.Literal - + ''' '''litTabModuleID control. ''' @@ -31,7 +31,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents litTabModuleID As Global.System.Web.UI.WebControls.Literal - + ''' '''litTicketID control. ''' @@ -40,7 +40,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents litTicketID As Global.System.Web.UI.WebControls.Literal - + ''' '''litArticleGuid control. ''' @@ -49,16 +49,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents litArticleGuid As Global.System.Web.UI.WebControls.Literal - - ''' - '''lblSelectFiles control. - ''' - ''' - '''Auto-generated field. - '''To modify move field declaration from designer file to code-behind file. - ''' - Protected WithEvents lblSelectFiles As Global.System.Web.UI.WebControls.Label - + ''' '''dshFiles control. ''' @@ -67,7 +58,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshFiles As DotNetNuke.UI.UserControls.SectionHeadControl - + ''' '''tblFiles control. ''' @@ -76,7 +67,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblFiles As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''lblFilesHelp control. ''' @@ -85,16 +76,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lblFilesHelp As Global.System.Web.UI.WebControls.Label - - ''' - '''phFiles control. - ''' - ''' - '''Auto-generated field. - '''To modify move field declaration from designer file to code-behind file. - ''' - Protected WithEvents phFiles As Global.System.Web.UI.WebControls.PlaceHolder - + ''' '''trUpload control. ''' @@ -103,7 +85,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents trUpload As Global.System.Web.UI.HtmlControls.HtmlTableCell - + ''' '''dshUploadFiles control. ''' @@ -112,7 +94,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshUploadFiles As DotNetNuke.UI.UserControls.SectionHeadControl - + ''' '''tblUploadFiles control. ''' @@ -121,7 +103,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblUploadFiles As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plFolder control. ''' @@ -130,7 +112,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plFolder As Global.System.Web.UI.UserControl - + ''' '''drpUploadFilesFolder control. ''' @@ -139,7 +121,34 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents drpUploadFilesFolder As Global.System.Web.UI.WebControls.DropDownList - + + ''' + '''Label1 control. + ''' + ''' + '''Auto-generated field. + '''To modify move field declaration from designer file to code-behind file. + ''' + Protected WithEvents Label1 As Global.System.Web.UI.UserControl + + ''' + '''fupFile control. + ''' + ''' + '''Auto-generated field. + '''To modify move field declaration from designer file to code-behind file. + ''' + Protected WithEvents fupFile As Global.System.Web.UI.WebControls.FileUpload + + ''' + '''btUpload control. + ''' + ''' + '''Auto-generated field. + '''To modify move field declaration from designer file to code-behind file. + ''' + Protected WithEvents btUpload As Global.System.Web.UI.WebControls.Button + ''' '''trExisting control. ''' @@ -148,7 +157,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents trExisting As Global.System.Web.UI.HtmlControls.HtmlTableCell - + ''' '''dshExistingFiles control. ''' @@ -157,7 +166,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshExistingFiles As DotNetNuke.UI.UserControls.SectionHeadControl - + ''' '''tblExistingFiles control. ''' @@ -166,7 +175,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblExistingFiles As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''ctlFile control. ''' @@ -175,7 +184,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents ctlFile As DotNetNuke.UI.UserControls.UrlControl - + ''' '''cmdAddExistingFile control. ''' @@ -184,7 +193,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents cmdAddExistingFile As Global.System.Web.UI.WebControls.LinkButton - + ''' '''dshSelectedFiles control. ''' @@ -193,7 +202,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshSelectedFiles As DotNetNuke.UI.UserControls.SectionHeadControl - + ''' '''tblSelectedFiles control. ''' @@ -202,7 +211,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblSelectedFiles As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''dlFiles control. ''' @@ -211,7 +220,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dlFiles As Global.System.Web.UI.WebControls.DataList - + ''' '''lblNoFiles control. ''' @@ -220,7 +229,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lblNoFiles As Global.System.Web.UI.WebControls.Label - + ''' '''cmdRefreshFiles control. ''' diff --git a/Controls/UploadFiles.ascx.vb b/Controls/UploadFiles.ascx.vb index 515c067..6b55bc5 100755 --- a/Controls/UploadFiles.ascx.vb +++ b/Controls/UploadFiles.ascx.vb @@ -1,508 +1,485 @@ -Imports DotNetNuke.Common.Utilities +Imports System +Imports DotNetNuke.Common.Utilities Imports DotNetNuke.Services.Exceptions -Imports DotNetNuke.Services.FileSystem Imports DotNetNuke.Security Imports Ventrian.NewsArticles.Base +Imports DotNetNuke.Entities.Portals +Imports DotNetNuke.Security.Permissions +Imports DotNetNuke.Services.FileSystem Namespace Ventrian.NewsArticles.Controls - Partial Public Class UploadFiles - Inherits NewsArticleControlBase + Partial Public Class UploadFiles + Inherits NewsArticleControlBase #Region " Private Members " - Private _articleID As Integer = Null.NullInteger + Private _articleID As Integer = Null.NullInteger - Private _filesInit As Boolean = False - Private _objFiles As List(Of FileInfo) + Private _filesInit As Boolean = False + Private _objFiles As List(Of FileInfo) #End Region #Region " Private Properties " - Private ReadOnly Property ArticleModuleBase() As NewsArticleModuleBase - Get - Return CType(Parent.Parent.Parent.Parent.Parent, NewsArticleModuleBase) - End Get - End Property + Private ReadOnly Property ArticleModuleBase() As NewsArticleModuleBase + Get + Return CType(Parent.Parent.Parent.Parent.Parent, NewsArticleModuleBase) + End Get + End Property - Private ReadOnly Property ArticleSettings() As ArticleSettings - Get - Return ArticleModuleBase.ArticleSettings - End Get - End Property + Private ReadOnly Property ArticleSettings() As ArticleSettings + Get + Return ArticleModuleBase.ArticleSettings + End Get + End Property #End Region #Region " Public Properties " - Public Property ArticleGuid() As Integer - Get - If (_articleID = Null.NullInteger) Then - If (litArticleGuid.Text = Null.NullString) Then - litArticleGuid.Text = (GetRandom(1, 100000) * -1).ToString() - End If - Return Convert.ToInt32(litArticleGuid.Text) - End If - Return _articleID - End Get - Set(ByVal value As Integer) - litArticleGuid.Text = value - End Set - End Property - - Public ReadOnly Property AttachedFiles() As List(Of FileInfo) - Get - - If (_filesInit = False) Then - '_objFiles = objFileController.GetFileList(_articleID, ArticleGuid) - If (_articleID = Null.NullInteger) Then - _objFiles = FileProvider.Instance().GetFiles(ArticleGuid) - Else - _objFiles = FileProvider.Instance().GetFiles(_articleID) - End If - _filesInit = True - End If - - Return _objFiles - - End Get - End Property + Public Property ArticleGuid() As Integer + Get + If (_articleID = Null.NullInteger) Then + If (litArticleGuid.Text = Null.NullString) Then + litArticleGuid.Text = (GetRandom(1, 100000) * -1).ToString() + End If + Return Convert.ToInt32(litArticleGuid.Text) + End If + Return _articleID + End Get + Set(ByVal value As Integer) + litArticleGuid.Text = value + End Set + End Property + + Public ReadOnly Property AttachedFiles() As List(Of FileInfo) + Get + + If (_filesInit = False) Then + '_objFiles = objFileController.GetFileList(_articleID, ArticleGuid) + If (_articleID = Null.NullInteger) Then + _objFiles = FileProvider.Instance().GetFiles(ArticleGuid) + Else + _objFiles = FileProvider.Instance().GetFiles(_articleID) + End If + _filesInit = True + End If + + Return _objFiles + + End Get + End Property #End Region #Region " Private Methods " - Private Sub BindFiles() + Private Sub BindFiles() - dlFiles.DataSource = AttachedFiles - dlFiles.DataBind() + dlFiles.DataSource = AttachedFiles + dlFiles.DataBind() - dlFiles.Visible = (dlFiles.Items.Count > 0) - lblNoFiles.Visible = (dlFiles.Items.Count = 0) + dlFiles.Visible = (dlFiles.Items.Count > 0) + lblNoFiles.Visible = (dlFiles.Items.Count = 0) - End Sub + End Sub - Private Sub BindFolders() + Private Sub BindFolders() - Dim ReadRoles As String = Null.NullString - Dim WriteRoles As String = Null.NullString + Dim ReadRoles As String = Null.NullString + Dim WriteRoles As String = Null.NullString - drpUploadFilesFolder.Items.Clear() + drpUploadFilesFolder.Items.Clear() - Dim folders As ArrayList = FileSystemUtils.GetFolders(ArticleModuleBase.PortalId) - For Each folder As FolderInfo In folders - Dim FolderItem As New ListItem() - If folder.FolderPath = Null.NullString Then - FolderItem.Text = ArticleModuleBase.GetSharedResource("Root") - ReadRoles = FileSystemUtils.GetRoles("", ArticleModuleBase.PortalId, "READ") - WriteRoles = FileSystemUtils.GetRoles("", ArticleModuleBase.PortalId, "WRITE") - Else - FolderItem.Text = folder.FolderPath - ReadRoles = FileSystemUtils.GetRoles(FolderItem.Text, ArticleModuleBase.PortalId, "READ") - WriteRoles = FileSystemUtils.GetRoles(FolderItem.Text, ArticleModuleBase.PortalId, "WRITE") - End If - FolderItem.Value = folder.FolderID + Dim folders As List(Of IFolderInfo) = FolderManager.Instance.GetFolders(ArticleModuleBase.PortalId, False) + For Each folder As DotNetNuke.Services.FileSystem.FolderInfo In folders + If Not folder.IsProtected Then + Dim FolderItem As New ListItem() + If folder.FolderPath = Null.NullString Then + FolderItem.Text = ArticleModuleBase.GetSharedResource("Root") + ReadRoles = FolderPermissionController.GetFolderPermissionsCollectionByFolder(ArticleModuleBase.PortalId, "").ToString("READ") + WriteRoles = FolderPermissionController.GetFolderPermissionsCollectionByFolder(ArticleModuleBase.PortalId, "").ToString("WRITE") + Else + FolderItem.Text = folder.FolderPath + ReadRoles = FolderPermissionController.GetFolderPermissionsCollectionByFolder(ArticleModuleBase.PortalId, FolderItem.Text).ToString("READ") + WriteRoles = FolderPermissionController.GetFolderPermissionsCollectionByFolder(ArticleModuleBase.PortalId, FolderItem.Text).ToString("WRITE") + End If + FolderItem.Value = folder.FolderID - If PortalSecurity.IsInRoles(ReadRoles) OrElse PortalSecurity.IsInRoles(WriteRoles) Then - drpUploadFilesFolder.Items.Add(FolderItem) + If PortalSecurity.IsInRoles(ReadRoles) OrElse PortalSecurity.IsInRoles(WriteRoles) Then + drpUploadFilesFolder.Items.Add(FolderItem) + End If End If Next If (drpUploadFilesFolder.Items.FindByValue(ArticleSettings.DefaultFilesFolder.ToString()) IsNot Nothing) Then - drpUploadFilesFolder.SelectedValue = ArticleSettings.DefaultFilesFolder.ToString() - End If - - End Sub - - Protected Function GetArticleID() As String - - Return _articleID.ToString() - - End Function + drpUploadFilesFolder.SelectedValue = ArticleSettings.DefaultFilesFolder.ToString() + End If - Protected Function GetMaximumFileSize() As String + End Sub - Return "20480" + Protected Function GetArticleID() As String - End Function + Return _articleID.ToString() - Protected Function GetPostBackReference() As String + End Function - Return Page.ClientScript.GetPostBackEventReference(cmdRefreshFiles, "Refresh") + Protected Function GetMaximumFileSize() As String - End Function + Return "20480" - Private Function GetRandom(ByVal Min As Integer, ByVal Max As Integer) As Integer - Dim Generator As System.Random = New System.Random() - Return Generator.Next(Min, Max) - End Function + End Function - Public Function GetResourceKey(ByVal key As String) As String + Private Function GetRandom(ByVal Min As Integer, ByVal Max As Integer) As Integer + Dim Generator As System.Random = New System.Random() + Return Generator.Next(Min, Max) + End Function - Dim path As String = "~/DesktopModules/DnnForge - NewsArticles/App_LocalResources/UploadFiles.ascx.resx" - Return DotNetNuke.Services.Localization.Localization.GetString(key, path) + Public Function GetResourceKey(ByVal key As String) As String - End Function + Dim path As String = "~/DesktopModules/DnnForge - NewsArticles/App_LocalResources/UploadFiles.ascx.resx" + Return DotNetNuke.Services.Localization.Localization.GetString(key, path) - Protected Function GetUploadUrl() As String + End Function - Dim link As String = Page.ResolveUrl("~/DesktopModules/DnnForge%20-%20NewsArticles/Controls/SWFUploaderFiles.ashx?PortalID=" & ArticleModuleBase.PortalId.ToString()) + Private Sub ReadQueryString() - If (link.ToLower().StartsWith("http")) Then - Return link - Else - If (Request.Url.Port = 80) Then - Return DotNetNuke.Common.AddHTTP(Request.Url.Host & link) - Else - Return DotNetNuke.Common.AddHTTP(Request.Url.Host & ":" & Request.Url.Port.ToString() & link) - End If - End If - - End Function - - Private Sub ReadQueryString() - - If (ArticleSettings.UrlModeType = Components.Types.UrlModeType.Shorterned) Then - Try - If (IsNumeric(Request(ArticleSettings.ShortenedID))) Then - _articleID = Convert.ToInt32(Request(ArticleSettings.ShortenedID)) - End If - Catch - End Try - End If + If (ArticleSettings.UrlModeType = Components.Types.UrlModeType.Shorterned) Then + Try + If (IsNumeric(Request(ArticleSettings.ShortenedID))) Then + _articleID = Convert.ToInt32(Request(ArticleSettings.ShortenedID)) + End If + Catch + End Try + End If - If (IsNumeric(Request("ArticleID"))) Then - _articleID = Convert.ToInt32(Request("ArticleID")) - End If + If (IsNumeric(Request("ArticleID"))) Then + _articleID = Convert.ToInt32(Request("ArticleID")) + End If - End Sub + End Sub - Private Sub RegisterScripts() + Private Sub RegisterScripts() - DotNetNuke.Framework.jQuery.RequestRegistration() + DotNetNuke.Framework.JavaScriptLibraries.JavaScript.RequestRegistration(DotNetNuke.Framework.JavaScriptLibraries.CommonJs.jQuery) - 'If (HttpContext.Current.Items("jquery_registered") Is Nothing And HttpContext.Current.Items("jQueryRequested") Is Nothing) Then - ' If (HttpContext.Current.Items("PropertyAgent-jQuery-ScriptsRegistered") Is Nothing And HttpContext.Current.Items("SimpleGallery-ScriptsRegistered") Is Nothing And HttpContext.Current.Items("NewsArticles-ScriptsRegistered") Is Nothing) Then - ' Dim objCSS As System.Web.UI.Control = Page.FindControl("CSS") + End Sub - ' If Not (objCSS Is Nothing) Then - ' Dim litLink As New Literal - ' litLink.Text = "" & vbCrLf _ - ' & "" & vbCrLf - ' objCSS.Controls.Add(litLink) - ' End If - ' HttpContext.Current.Items.Add("NewsArticles-ScriptsRegistered", "true") - ' End If - 'End If + Private Sub SetLocalization() - End Sub + dshFiles.Text = GetResourceKey("Files") + lblFilesHelp.Text = GetResourceKey("FilesHelp") - Private Sub SetLocalization() + dshExistingFiles.Text = GetResourceKey("SelectExisting") + dshUploadFiles.Text = GetResourceKey("UploadFiles") + dshSelectedFiles.Text = GetResourceKey("SelectedFiles") - dshFiles.Text = GetResourceKey("Files") - lblFilesHelp.Text = GetResourceKey("FilesHelp") + lblNoFiles.Text = GetResourceKey("NoFiles") - dshExistingFiles.Text = GetResourceKey("SelectExisting") - dshUploadFiles.Text = GetResourceKey("UploadFiles") - dshSelectedFiles.Text = GetResourceKey("SelectedFiles") + cmdAddExistingFile.Text = GetResourceKey("cmdAddExistingFile") - lblNoFiles.Text = GetResourceKey("NoFiles") + btUpload.Text = GetResourceKey("Upload") - cmdAddExistingFile.Text = GetResourceKey("cmdAddExistingFile") - - End Sub + End Sub #End Region #Region " Public Methods " - Public Sub UpdateFiles(ByVal articleID As Integer) + Public Sub UpdateFiles(ByVal articleID As Integer) - For Each objFile As FileInfo In AttachedFiles - objFile.ArticleID = articleID - FileProvider.Instance().UpdateFile(objFile) - ' objFileController.Update(objFile) - Next + For Each objFile As FileInfo In AttachedFiles + objFile.ArticleID = articleID + FileProvider.Instance().UpdateFile(objFile) + Next - End Sub + End Sub #End Region #Region " Event Handlers " - Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load + Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load - Try + Try + ReadQueryString() + SetLocalization() - ReadQueryString() - SetLocalization() + If (ArticleSettings.IsFilesEnabled = False) Then + Me.Visible = False + Return + End If - 'trUpload.Visible = ArticleSettings.EnableImagesUpload - 'trExisting.Visible = ArticleSettings.EnablePortalImages + If (IsPostBack = False) Then - 'phFiles.Visible = (trUpload.Visible Or trExisting.Visible) + litModuleID.Text = Me.ArticleModuleBase.ModuleId.ToString() + litTabModuleID.Text = Me.ArticleModuleBase.TabModuleId.ToString() - If (ArticleSettings.IsFilesEnabled = False) Then - Me.Visible = False - Return - End If + If (Request.IsAuthenticated) Then + litTicketID.Text = Request.Cookies(System.Web.Security.FormsAuthentication.FormsCookieName()).Value + End If + litArticleGuid.Text = ArticleGuid.ToString() - If (IsPostBack = False) Then + BindFolders() + BindFiles() + End If - lblSelectFiles.Text = GetResourceKey("SelectFiles") - litModuleID.Text = Me.ArticleModuleBase.ModuleId.ToString() - litTabModuleID.Text = Me.ArticleModuleBase.TabModuleId.ToString() + Catch exc As Exception 'Module failed to load + ProcessModuleLoadException(Me, exc) + End Try - If (Request.IsAuthenticated) Then - litTicketID.Text = Request.Cookies(System.Web.Security.FormsAuthentication.FormsCookieName()).Value - End If - litArticleGuid.Text = ArticleGuid.ToString() + End Sub - BindFolders() - BindFiles() - End If + Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender - Catch exc As Exception 'Module failed to load - ProcessModuleLoadException(Me, exc) - End Try + Try - End Sub + RegisterScripts() - Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender + Catch exc As Exception 'Module failed to load + ProcessModuleLoadException(Me, exc) + End Try - Try + End Sub - RegisterScripts() + Protected Sub cmdRefreshPhotos_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdRefreshFiles.Click - Catch exc As Exception 'Module failed to load - ProcessModuleLoadException(Me, exc) - End Try + Try - End Sub + BindFiles() - Protected Sub cmdRefreshPhotos_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdRefreshFiles.Click + Catch exc As Exception 'Module failed to load + ProcessModuleLoadException(Me, exc) + End Try - Try + End Sub - BindFiles() - Catch exc As Exception 'Module failed to load - ProcessModuleLoadException(Me, exc) - End Try + Private Sub dlFiles_OnItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlFiles.ItemDataBound - End Sub + Try + If (e.Item.ItemType = Web.UI.WebControls.ListItemType.Item Or e.Item.ItemType = Web.UI.WebControls.ListItemType.AlternatingItem) Then - Private Sub dlFiles_OnItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlFiles.ItemDataBound + Dim objFile As FileInfo = CType(e.Item.DataItem, FileInfo) - Try + Dim btnEdit As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnEdit"), System.Web.UI.WebControls.ImageButton) + Dim btnDelete As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnDelete"), System.Web.UI.WebControls.ImageButton) + Dim btnUp As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnUp"), System.Web.UI.WebControls.ImageButton) + Dim btnDown As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnDown"), System.Web.UI.WebControls.ImageButton) - If (e.Item.ItemType = Web.UI.WebControls.ListItemType.Item Or e.Item.ItemType = Web.UI.WebControls.ListItemType.AlternatingItem) Then + If Not (btnDelete Is Nothing) Then + btnDelete.Attributes.Add("onClick", "javascript:return confirm('" & GetResourceKey("DeleteFile") & "');") - Dim objFile As FileInfo = CType(e.Item.DataItem, FileInfo) + If Not (objFile Is Nothing) Then + btnDelete.CommandArgument = objFile.FileID.ToString() + End If - Dim btnEdit As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnEdit"), System.Web.UI.WebControls.ImageButton) - Dim btnDelete As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnDelete"), System.Web.UI.WebControls.ImageButton) - Dim btnUp As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnUp"), System.Web.UI.WebControls.ImageButton) - Dim btnDown As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnDown"), System.Web.UI.WebControls.ImageButton) + End If - If Not (btnDelete Is Nothing) Then - btnDelete.Attributes.Add("onClick", "javascript:return confirm('" & GetResourceKey("DeleteFile") & "');") + If Not (btnEdit Is Nothing) Then - If Not (objFile Is Nothing) Then - btnDelete.CommandArgument = objFile.FileID.ToString() - End If + If Not (objFile Is Nothing) Then + btnEdit.CommandArgument = objFile.FileID.ToString() + End If - End If + End If - If Not (btnEdit Is Nothing) Then + If Not (btnUp Is Nothing And btnDown Is Nothing) Then - If Not (objFile Is Nothing) Then - btnEdit.CommandArgument = objFile.FileID.ToString() - End If + If (objFile.FileID = CType(AttachedFiles(0), FileInfo).FileID) Then + btnUp.Visible = False + End If - End If + If (objFile.FileID = CType(AttachedFiles(AttachedFiles.Count - 1), FileInfo).FileID) Then + btnDown.Visible = False + End If - If Not (btnUp Is Nothing And btnDown Is Nothing) Then + btnUp.CommandArgument = objFile.FileID.ToString() + btnUp.CommandName = "Up" + btnUp.CausesValidation = False - If (objFile.FileID = CType(AttachedFiles(0), FileInfo).FileID) Then - btnUp.Visible = False - End If + btnDown.CommandArgument = objFile.FileID.ToString() + btnDown.CommandName = "Down" + btnDown.CausesValidation = False - If (objFile.FileID = CType(AttachedFiles(AttachedFiles.Count - 1), FileInfo).FileID) Then - btnDown.Visible = False - End If + End If - btnUp.CommandArgument = objFile.FileID.ToString() - btnUp.CommandName = "Up" - btnUp.CausesValidation = False + End If - btnDown.CommandArgument = objFile.FileID.ToString() - btnDown.CommandName = "Down" - btnDown.CausesValidation = False + Catch exc As Exception 'Module failed to load + ProcessModuleLoadException(Me, exc) + End Try - End If + End Sub - End If + Private Sub dlFiles_OnItemCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles dlFiles.ItemCommand - Catch exc As Exception 'Module failed to load - ProcessModuleLoadException(Me, exc) - End Try + Try - End Sub + If (e.CommandName = "Delete") Then - Private Sub dlFiles_OnItemCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles dlFiles.ItemCommand + Dim objFile As FileInfo = FileProvider.Instance().GetFile(Convert.ToInt32(e.CommandArgument)) - Try + If Not (objFile Is Nothing) Then + FileProvider.Instance().DeleteFile(_articleID, Convert.ToInt32(e.CommandArgument)) + End If - If (e.CommandName = "Delete") Then + End If - Dim objFile As FileInfo = FileProvider.Instance().GetFile(Convert.ToInt32(e.CommandArgument)) + If (e.CommandName = "Edit") Then - If Not (objFile Is Nothing) Then - 'Dim objPortalSettings As PortalSettings = PortalController.GetCurrentPortalSettings() - 'Dim filePath As String = objPortalSettings.HomeDirectoryMapPath & objFile.Folder & objFile.FileName - 'If (File.Exists(filePath)) Then - ' File.Delete(filePath) - 'End If - FileProvider.Instance().DeleteFile(_articleID, Convert.ToInt32(e.CommandArgument)) - ' objFileController.Delete(Convert.ToInt32(e.CommandArgument)) - End If + dlFiles.EditItemIndex = e.Item.ItemIndex - End If + End If - If (e.CommandName = "Edit") Then + If (e.CommandName = "Up") Then - dlFiles.EditItemIndex = e.Item.ItemIndex + Dim fileID As Integer = Convert.ToInt32(e.CommandArgument) - End If + For i As Integer = 0 To AttachedFiles.Count - 1 + Dim objFile As FileInfo = CType(AttachedFiles(i), FileInfo) + If (fileID = objFile.FileID) Then - If (e.CommandName = "Up") Then + Dim objFileToSwap As FileInfo = CType(AttachedFiles(i - 1), FileInfo) - Dim fileID As Integer = Convert.ToInt32(e.CommandArgument) + Dim sortOrder As Integer = objFile.SortOrder + Dim sortOrderPrevious As Integer = objFileToSwap.SortOrder - For i As Integer = 0 To AttachedFiles.Count - 1 - Dim objFile As FileInfo = CType(AttachedFiles(i), FileInfo) - If (fileID = objFile.FileID) Then + objFile.SortOrder = sortOrderPrevious + objFileToSwap.SortOrder = sortOrder - Dim objFileToSwap As FileInfo = CType(AttachedFiles(i - 1), FileInfo) + FileProvider.Instance().UpdateFile(objFile) + FileProvider.Instance().UpdateFile(objFileToSwap) - Dim sortOrder As Integer = objFile.SortOrder - Dim sortOrderPrevious As Integer = objFileToSwap.SortOrder + End If + Next - objFile.SortOrder = sortOrderPrevious - objFileToSwap.SortOrder = sortOrder + End If - FileProvider.Instance().UpdateFile(objFile) - FileProvider.Instance().UpdateFile(objFileToSwap) + If (e.CommandName = "Down") Then - End If - Next + Dim fileID As Integer = Convert.ToInt32(e.CommandArgument) - End If + For i As Integer = 0 To AttachedFiles.Count - 1 + Dim objFile As FileInfo = CType(AttachedFiles(i), FileInfo) + If (fileID = objFile.FileID) Then + Dim objFileToSwap As FileInfo = CType(AttachedFiles(i + 1), FileInfo) - If (e.CommandName = "Down") Then + Dim sortOrder As Integer = objFile.SortOrder + Dim sortOrderNext As Integer = objFileToSwap.SortOrder - Dim fileID As Integer = Convert.ToInt32(e.CommandArgument) + objFile.SortOrder = sortOrderNext + objFileToSwap.SortOrder = sortOrder - For i As Integer = 0 To AttachedFiles.Count - 1 - Dim objFile As FileInfo = CType(AttachedFiles(i), FileInfo) - If (fileID = objFile.FileID) Then - Dim objFileToSwap As FileInfo = CType(AttachedFiles(i + 1), FileInfo) + FileProvider.Instance().UpdateFile(objFile) + FileProvider.Instance().UpdateFile(objFileToSwap) + End If + Next - Dim sortOrder As Integer = objFile.SortOrder - Dim sortOrderNext As Integer = objFileToSwap.SortOrder + End If - objFile.SortOrder = sortOrderNext - objFileToSwap.SortOrder = sortOrder + If (e.CommandName = "Cancel") Then - FileProvider.Instance().UpdateFile(objFile) - FileProvider.Instance().UpdateFile(objFileToSwap) - End If - Next + dlFiles.EditItemIndex = -1 - End If + End If - If (e.CommandName = "Cancel") Then + If (e.CommandName = "Update") Then - dlFiles.EditItemIndex = -1 + Dim txtTitle As TextBox = CType(e.Item.FindControl("txtTitle"), TextBox) - End If + Dim objFile As FileInfo = FileProvider.Instance().GetFile(Convert.ToInt32(dlFiles.DataKeys(e.Item.ItemIndex))) - If (e.CommandName = "Update") Then + If Not (objFile Is Nothing) Then + objFile.Title = txtTitle.Text + FileProvider.Instance().UpdateFile(objFile) + End If - Dim txtTitle As TextBox = CType(e.Item.FindControl("txtTitle"), TextBox) + dlFiles.EditItemIndex = -1 - Dim objFile As FileInfo = FileProvider.Instance().GetFile(Convert.ToInt32(dlFiles.DataKeys(e.Item.ItemIndex))) + End If - If Not (objFile Is Nothing) Then - objFile.Title = txtTitle.Text - FileProvider.Instance().UpdateFile(objFile) - End If + _filesInit = False + BindFiles() - dlFiles.EditItemIndex = -1 + Catch exc As Exception 'Module failed to load + ProcessModuleLoadException(Me, exc) + End Try - End If + End Sub - _filesInit = False - BindFiles() + Protected Sub cmdAddExistingFile_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdAddExistingFile.Click - Catch exc As Exception 'Module failed to load - ProcessModuleLoadException(Me, exc) - End Try + Try - End Sub + If (ctlFile.Url <> "") Then + If (ctlFile.Url.ToLower().StartsWith("fileid=")) Then + If (IsNumeric(ctlFile.Url.ToLower().Replace("fileid=", ""))) Then + Dim fileID As Integer = Convert.ToInt32(ctlFile.Url.ToLower().Replace("fileid=", "")) + Dim objDnnFile As DotNetNuke.Services.FileSystem.FileInfo = FileManager.Instance.GetFile(fileID, True) + If (objDnnFile IsNot Nothing) Then - Protected Sub cmdAddExistingFile_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdAddExistingFile.Click + Dim objFileController As New FileController - Try + Dim objFile As New FileInfo - If (ctlFile.Url <> "") Then - If (ctlFile.Url.ToLower().StartsWith("fileid=")) Then - If (IsNumeric(ctlFile.Url.ToLower().Replace("fileid=", ""))) Then - Dim fileID As Integer = Convert.ToInt32(ctlFile.Url.ToLower().Replace("fileid=", "")) - Dim objDnnFileController As New DotNetNuke.Services.FileSystem.FileController - Dim objDnnFile As DotNetNuke.Services.FileSystem.FileInfo = objDnnFileController.GetFileById(fileID, ArticleModuleBase.PortalId) - If (objDnnFile IsNot Nothing) Then + objFile.ArticleID = _articleID + If (_articleID = Null.NullInteger) Then + objFile.ArticleID = ArticleGuid + End If + objFile.FileName = objDnnFile.FileName + objFile.ContentType = objDnnFile.ContentType + objFile.SortOrder = 0 + Dim filesList As List(Of FileInfo) = objFileController.GetFileList(_articleID, ArticleGuid) + If (filesList.Count > 0) Then + objFile.SortOrder = CType(filesList(filesList.Count - 1), FileInfo).SortOrder + 1 + End If + objFile.Folder = objDnnFile.Folder + objFile.Extension = objDnnFile.Extension + objFile.Size = objDnnFile.Size + objFile.Title = objFile.FileName.Replace("." & objFile.Extension, "") - Dim objFileController As New FileController + objFileController.Add(objFile) + BindFiles() - Dim objFile As New FileInfo + End If + End If + End If + End If - objFile.ArticleID = _articleID - If (_articleID = Null.NullInteger) Then - objFile.ArticleID = ArticleGuid - End If - objFile.FileName = objDnnFile.FileName - objFile.ContentType = objDnnFile.ContentType - objFile.SortOrder = 0 - Dim filesList As List(Of FileInfo) = objFileController.GetFileList(_articleID, ArticleGuid) - If (filesList.Count > 0) Then - objFile.SortOrder = CType(filesList(filesList.Count - 1), FileInfo).SortOrder + 1 - End If - objFile.Folder = objDnnFile.Folder - objFile.Extension = objDnnFile.Extension - objFile.Size = objDnnFile.Size - objFile.Title = objFile.FileName.Replace("." & objFile.Extension, "") + Catch exc As Exception 'Module failed to load + ProcessModuleLoadException(Me, exc) + End Try - objFileController.Add(objFile) - BindFiles() + End Sub - End If - End If - End If - End If + Protected Sub btUpload_Click(sender As Object, e As EventArgs) + Dim objFileController As New FileController + Dim objPortalController As New PortalController() + + For Each file As HttpPostedFile In fupFile.PostedFiles + If objPortalController.HasSpaceAvailable(ArticleModuleBase.PortalId, file.ContentLength) Then + + Dim folderId As Integer = Integer.Parse(drpUploadFilesFolder.SelectedValue) + If (_articleID <> Null.NullInteger) Then + FileProvider.Instance().AddFile(_articleID, ArticleModuleBase.ModuleId, folderId, file) + Else + FileProvider.Instance().AddFile(ArticleGuid, ArticleModuleBase.ModuleId, folderId, file) + End If + End If + Next - Catch exc As Exception 'Module failed to load - ProcessModuleLoadException(Me, exc) - End Try + DotNetNuke.Services.FileSystem.FolderManager.Instance.Synchronize(PortalController.Instance.GetCurrentPortalSettings().PortalId, drpUploadFilesFolder.SelectedItem.Text, True, True) - End Sub + BindFiles() + End Sub #End Region - End Class + End Class End Namespace \ No newline at end of file diff --git a/Controls/UploadImages.ascx b/Controls/UploadImages.ascx index 109b0ea..57c65dd 100755 --- a/Controls/UploadImages.ascx +++ b/Controls/UploadImages.ascx @@ -1,197 +1,134 @@ <%@ Control Language="vb" AutoEventWireup="false" CodeBehind="UploadImages.ascx.vb" Inherits="Ventrian.NewsArticles.Controls.UploadImages" %> <%@ Register TagPrefix="Ventrian" Assembly="Ventrian.NewsArticles" Namespace="Ventrian.NewsArticles.Components.WebControls" %> - <%@ Register TagPrefix="dnn" TagName="SectionHead" Src="~/controls/SectionHeadControl.ascx" %> <%@ Register TagPrefix="dnn" TagName="Label" Src="~/controls/LabelControl.ascx" %> <%@ Register TagPrefix="dnn" TagName="URL" Src="~/controls/URLControl.ascx" %> - -
- + + - -
-
- - - - - - -
- - - - - - - - - -
 
- -
-
- -
-
-
-
-
- - - - - -
- - - - - -

 
-
-
-
- - - - - -
- - - - Photo
- - <%#DataBinder.Eval(Container.DataItem, "Title")%> - -
- - - - - - -
- - Photo
- -
- -
- - -
-
-
-
-
- -
- - - - - - -
-
-
- + + + + + + +
+ + + + + + + + + + + + + + + + +
+ +  
+ +
+ +
+ + +
+
+ + + + + + + + +
+ +
+
+
+
+ + + + + +
+ + + + Photo
+ + <%#DataBinder.Eval(Container.DataItem, "Title")%> + +
+ + + + + + +
+ + Photo
+ +
+ +
+ + +
+
+
+ +
+
+
+ +
+ + + + + + +
+ + +
+
+ + + diff --git a/Controls/UploadImages.ascx.designer.vb b/Controls/UploadImages.ascx.designer.vb index d3bcf32..dc3dd99 100755 --- a/Controls/UploadImages.ascx.designer.vb +++ b/Controls/UploadImages.ascx.designer.vb @@ -11,9 +11,9 @@ Option Strict On Option Explicit On Namespace Ventrian.NewsArticles.Controls - + Partial Public Class UploadImages - + ''' '''litModuleID control. ''' @@ -22,7 +22,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents litModuleID As Global.System.Web.UI.WebControls.Literal - + ''' '''litTabModuleID control. ''' @@ -31,7 +31,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents litTabModuleID As Global.System.Web.UI.WebControls.Literal - + ''' '''litTicketID control. ''' @@ -40,7 +40,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents litTicketID As Global.System.Web.UI.WebControls.Literal - + ''' '''litArticleGuid control. ''' @@ -49,16 +49,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents litArticleGuid As Global.System.Web.UI.WebControls.Literal - - ''' - '''lblSelectImages control. - ''' - ''' - '''Auto-generated field. - '''To modify move field declaration from designer file to code-behind file. - ''' - Protected WithEvents lblSelectImages As Global.System.Web.UI.WebControls.Label - + ''' '''dshImages control. ''' @@ -67,7 +58,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshImages As DotNetNuke.UI.UserControls.SectionHeadControl - + ''' '''tblImages control. ''' @@ -76,7 +67,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblImages As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''lblImagesHelp control. ''' @@ -85,7 +76,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lblImagesHelp As Global.System.Web.UI.WebControls.Label - + ''' '''phImages control. ''' @@ -94,7 +85,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents phImages As Global.System.Web.UI.WebControls.PlaceHolder - + ''' '''trUpload control. ''' @@ -103,7 +94,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents trUpload As Global.System.Web.UI.HtmlControls.HtmlTableCell - + ''' '''dshUploadImages control. ''' @@ -112,7 +103,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshUploadImages As DotNetNuke.UI.UserControls.SectionHeadControl - + ''' '''tblUploadImages control. ''' @@ -121,7 +112,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblUploadImages As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plFolder control. ''' @@ -130,7 +121,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plFolder As Global.System.Web.UI.UserControl - + ''' '''drpUploadImageFolder control. ''' @@ -139,7 +130,34 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents drpUploadImageFolder As Global.System.Web.UI.WebControls.DropDownList - + + ''' + '''Label1 control. + ''' + ''' + '''Auto-generated field. + '''To modify move field declaration from designer file to code-behind file. + ''' + Protected WithEvents Label1 As Global.System.Web.UI.UserControl + + ''' + '''fupFile control. + ''' + ''' + '''Auto-generated field. + '''To modify move field declaration from designer file to code-behind file. + ''' + Protected WithEvents fupFile As Global.System.Web.UI.WebControls.FileUpload + + ''' + '''btUpload control. + ''' + ''' + '''Auto-generated field. + '''To modify move field declaration from designer file to code-behind file. + ''' + Protected WithEvents btUpload As Global.System.Web.UI.WebControls.Button + ''' '''trExisting control. ''' @@ -148,7 +166,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents trExisting As Global.System.Web.UI.HtmlControls.HtmlTableCell - + ''' '''dshExistingImages control. ''' @@ -157,7 +175,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshExistingImages As DotNetNuke.UI.UserControls.SectionHeadControl - + ''' '''tblExistingImages control. ''' @@ -166,7 +184,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblExistingImages As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''ctlImage control. ''' @@ -175,6 +193,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents ctlImage As DotNetNuke.UI.UserControls.UrlControl + ''' '''cmdAddExistingImage control. ''' @@ -183,7 +202,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents cmdAddExistingImage As Global.System.Web.UI.WebControls.LinkButton - + ''' '''dshSelectedImages control. ''' @@ -192,7 +211,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshSelectedImages As DotNetNuke.UI.UserControls.SectionHeadControl - + ''' '''tblSelectedImages control. ''' @@ -201,7 +220,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblSelectedImages As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''dlImages control. ''' @@ -210,7 +229,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dlImages As Global.System.Web.UI.WebControls.DataList - + ''' '''lblNoImages control. ''' @@ -219,7 +238,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lblNoImages As Global.System.Web.UI.WebControls.Label - + ''' '''phExternalImage control. ''' @@ -228,7 +247,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents phExternalImage As Global.System.Web.UI.WebControls.PlaceHolder - + ''' '''dshExternalImage control. ''' @@ -237,7 +256,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshExternalImage As DotNetNuke.UI.UserControls.SectionHeadControl - + ''' '''tblExternalImage control. ''' @@ -246,7 +265,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblExternalImage As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plImageUrl control. ''' @@ -255,7 +274,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plImageUrl As Global.System.Web.UI.UserControl - + ''' '''txtImageExternal control. ''' @@ -264,7 +283,7 @@ Namespace Ventrian.NewsArticles.Controls '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtImageExternal As Global.System.Web.UI.WebControls.TextBox - + ''' '''cmdRefreshPhotos control. ''' diff --git a/Controls/UploadImages.ascx.vb b/Controls/UploadImages.ascx.vb index 223b4ae..2f2946c 100755 --- a/Controls/UploadImages.ascx.vb +++ b/Controls/UploadImages.ascx.vb @@ -1,606 +1,803 @@ -Imports System.IO +Imports System +Imports System.IO Imports DotNetNuke.Common.Utilities Imports DotNetNuke.Entities.Portals Imports DotNetNuke.Services.Exceptions Imports DotNetNuke.Services.Localization -Imports DotNetNuke.Services.FileSystem Imports DotNetNuke.Security Imports Ventrian.NewsArticles.Base +Imports System.Drawing +Imports System.Drawing.Drawing2D +Imports System.Drawing.Imaging +Imports DotNetNuke.Security.Permissions +Imports DotNetNuke.Services.FileSystem Namespace Ventrian.NewsArticles.Controls - Partial Public Class UploadImages - Inherits NewsArticleControlBase + Partial Public Class UploadImages + Inherits NewsArticleControlBase #Region " Private Members " - Private _articleID As Integer = Null.NullInteger + Private _articleID As Integer = Null.NullInteger - Private _imagesInit As Boolean = False - Private _objImages As List(Of ImageInfo) + Private _imagesInit As Boolean = False + Private _objImages As List(Of ImageInfo) #End Region #Region " Private Properties " - Private ReadOnly Property ArticleModuleBase() As NewsArticleModuleBase - Get - Return CType(Parent.Parent.Parent.Parent.Parent, NewsArticleModuleBase) - End Get - End Property + Private ReadOnly Property ArticleModuleBase() As NewsArticleModuleBase + Get + Return CType(Parent.Parent.Parent.Parent.Parent, NewsArticleModuleBase) + End Get + End Property - Private ReadOnly Property ArticleSettings() As ArticleSettings - Get - Return ArticleModuleBase.ArticleSettings - End Get - End Property + Private ReadOnly Property ArticleSettings() As ArticleSettings + Get + Return ArticleModuleBase.ArticleSettings + End Get + End Property #End Region #Region " Public Properties " - Public Property ArticleGuid() As String - Get - If (_articleID = Null.NullInteger) Then - If (litArticleGuid.Text = Null.NullString) Then - litArticleGuid.Text = Guid.NewGuid.ToString() - End If - End If - Return litArticleGuid.Text - End Get - Set(ByVal value As String) - litArticleGuid.Text = value - End Set - End Property - - Public ReadOnly Property AttachedImages() As List(Of ImageInfo) - Get - - If (_imagesInit = False) Then - Dim objImageController As New ImageController - _objImages = objImageController.GetImageList(_articleID, ArticleGuid) - _imagesInit = True - End If + Public Property ArticleGuid() As String + Get + If (_articleID = Null.NullInteger) Then + If (litArticleGuid.Text = Null.NullString) Then + litArticleGuid.Text = Guid.NewGuid.ToString() + End If + End If + Return litArticleGuid.Text + End Get + Set(ByVal value As String) + litArticleGuid.Text = value + End Set + End Property + + Public ReadOnly Property AttachedImages() As List(Of ImageInfo) + Get + + If (_imagesInit = False) Then + Dim objImageController As New ImageController + _objImages = objImageController.GetImageList(_articleID, ArticleGuid) + _imagesInit = True + End If + + Return _objImages + + End Get + End Property + + Public Property ImageExternalUrl() As String + Get + Return txtImageExternal.Text + End Get + Set(ByVal value As String) + txtImageExternal.Text = value + End Set + End Property - Return _objImages +#End Region - End Get - End Property +#Region " Private Methods " - Public Property ImageExternalUrl() As String - Get - Return txtImageExternal.Text - End Get - Set(ByVal value As String) - txtImageExternal.Text = value - End Set - End Property + Private Sub BindFolders() + + Dim ReadRoles As String = Null.NullString + Dim WriteRoles As String = Null.NullString + + drpUploadImageFolder.Items.Clear() + + Dim folders As List(Of IFolderInfo) = FolderManager.Instance.GetFolders(ArticleModuleBase.PortalId, False) + For Each folder As DotNetNuke.Services.FileSystem.FolderInfo In folders + If Not folder.IsProtected Then + Dim FolderItem As New ListItem() + If folder.FolderPath = Null.NullString Then + FolderItem.Text = ArticleModuleBase.GetSharedResource("Root") + ReadRoles = FolderPermissionController.GetFolderPermissionsCollectionByFolder(ArticleModuleBase.PortalId, "").ToString("READ") + WriteRoles = FolderPermissionController.GetFolderPermissionsCollectionByFolder(ArticleModuleBase.PortalId, "").ToString("WRITE") + Else + FolderItem.Text = folder.FolderPath + ReadRoles = FolderPermissionController.GetFolderPermissionsCollectionByFolder(ArticleModuleBase.PortalId, FolderItem.Text).ToString("READ") + WriteRoles = FolderPermissionController.GetFolderPermissionsCollectionByFolder(ArticleModuleBase.PortalId, FolderItem.Text).ToString("WRITE") + End If + FolderItem.Value = folder.FolderID -#End Region + If PortalSecurity.IsInRoles(ReadRoles) OrElse PortalSecurity.IsInRoles(WriteRoles) Then + drpUploadImageFolder.Items.Add(FolderItem) + End If + End If + Next -#Region " Private Methods " + If (drpUploadImageFolder.Items.FindByValue(ArticleSettings.DefaultImagesFolder.ToString()) IsNot Nothing) Then + drpUploadImageFolder.SelectedValue = ArticleSettings.DefaultImagesFolder.ToString() + End If - Private Sub BindFolders() + End Sub - Dim ReadRoles As String = Null.NullString - Dim WriteRoles As String = Null.NullString + Private Sub BindImages() - drpUploadImageFolder.Items.Clear() + Dim objImageController As New ImageController() - Dim folders As ArrayList = FileSystemUtils.GetFolders(ArticleModuleBase.PortalId) - For Each folder As FolderInfo In folders - Dim FolderItem As New ListItem() - If folder.FolderPath = Null.NullString Then - FolderItem.Text = ArticleModuleBase.GetSharedResource("Root") - ReadRoles = FileSystemUtils.GetRoles("", ArticleModuleBase.PortalId, "READ") - WriteRoles = FileSystemUtils.GetRoles("", ArticleModuleBase.PortalId, "WRITE") - Else - FolderItem.Text = folder.FolderPath - ReadRoles = FileSystemUtils.GetRoles(FolderItem.Text, ArticleModuleBase.PortalId, "READ") - WriteRoles = FileSystemUtils.GetRoles(FolderItem.Text, ArticleModuleBase.PortalId, "WRITE") - End If - FolderItem.Value = folder.FolderID + dlImages.DataSource = AttachedImages + dlImages.DataBind() - If PortalSecurity.IsInRoles(ReadRoles) OrElse PortalSecurity.IsInRoles(WriteRoles) Then - drpUploadImageFolder.Items.Add(FolderItem) - End If - Next + dlImages.Visible = (dlImages.Items.Count > 0) + lblNoImages.Visible = (dlImages.Items.Count = 0) - If (drpUploadImageFolder.Items.FindByValue(ArticleSettings.DefaultImagesFolder.ToString()) IsNot Nothing) Then - drpUploadImageFolder.SelectedValue = ArticleSettings.DefaultImagesFolder.ToString() - End If + End Sub - End Sub + Protected Function GetArticleID() As String - Private Sub BindImages() + Return _articleID.ToString() - Dim objImageController As New ImageController() + End Function - dlImages.DataSource = AttachedImages - dlImages.DataBind() + Protected Function GetImageUrl(ByVal objImage As ImageInfo) As String - dlImages.Visible = (dlImages.Items.Count > 0) - lblNoImages.Visible = (dlImages.Items.Count = 0) + Dim thumbWidth As Integer = 150 + Dim thumbHeight As Integer = 150 - End Sub + Dim width As Integer + If (objImage.Width > thumbWidth) Then + width = thumbWidth + Else + width = objImage.Width + End If - Protected Function GetArticleID() As String + Dim height As Integer = Convert.ToInt32(objImage.Height / (objImage.Width / width)) + If (height > thumbHeight) Then + height = thumbHeight + width = Convert.ToInt32(objImage.Width / (objImage.Height / height)) + End If - Return _articleID.ToString() + Dim settings As PortalSettings = PortalController.Instance.GetCurrentPortalSettings() - End Function + Return Page.ResolveUrl("~/DesktopModules/DnnForge - NewsArticles/ImageHandler.ashx?Width=" & width.ToString() & "&Height=" & height.ToString() & "&HomeDirectory=" & Server.UrlEncode(settings.HomeDirectory) & "&FileName=" & Server.UrlEncode(objImage.Folder & objImage.FileName) & "&PortalID=" & settings.PortalId.ToString() & "&q=1") - Protected Function GetImageUrl(ByVal objImage As ImageInfo) As String + End Function - Dim thumbWidth As Integer = 150 - Dim thumbHeight As Integer = 150 + Protected Function GetMaximumFileSize() As String - Dim width As Integer - If (objImage.Width > thumbWidth) Then - width = thumbWidth - Else - width = objImage.Width - End If + Return "20480" - Dim height As Integer = Convert.ToInt32(objImage.Height / (objImage.Width / width)) - If (height > thumbHeight) Then - height = thumbHeight - width = Convert.ToInt32(objImage.Width / (objImage.Height / height)) - End If + End Function - Dim settings As PortalSettings = PortalController.GetCurrentPortalSettings() + Public Function GetResourceKey(ByVal key As String) As String - Return Page.ResolveUrl("~/DesktopModules/DnnForge - NewsArticles/ImageHandler.ashx?Width=" & width.ToString() & "&Height=" & height.ToString() & "&HomeDirectory=" & Server.UrlEncode(settings.HomeDirectory) & "&FileName=" & Server.UrlEncode(objImage.Folder & objImage.FileName) & "&PortalID=" & settings.PortalId.ToString() & "&q=1") + Dim path As String = "~/DesktopModules/DnnForge - NewsArticles/App_LocalResources/UploadImages.ascx.resx" + Return DotNetNuke.Services.Localization.Localization.GetString(key, path) - End Function + End Function - Protected Function GetMaximumFileSize() As String + Private Sub ReadQueryString() - Return "20480" + If (ArticleSettings.UrlModeType = Components.Types.UrlModeType.Shorterned) Then + Try + If (IsNumeric(Request(ArticleSettings.ShortenedID))) Then + _articleID = Convert.ToInt32(Request(ArticleSettings.ShortenedID)) + End If + Catch + End Try + End If - End Function + If (IsNumeric(Request("ArticleID"))) Then + _articleID = Convert.ToInt32(Request("ArticleID")) + End If - Protected Function GetPostBackReference() As String + End Sub - Return Page.ClientScript.GetPostBackEventReference(cmdRefreshPhotos, "Refresh") + Private Sub RegisterScripts() - End Function + DotNetNuke.Framework.JavaScriptLibraries.JavaScript.RequestRegistration(DotNetNuke.Framework.JavaScriptLibraries.CommonJs.jQuery) - Public Function GetResourceKey(ByVal key As String) As String + End Sub - Dim path As String = "~/DesktopModules/DnnForge - NewsArticles/App_LocalResources/UploadImages.ascx.resx" - Return DotNetNuke.Services.Localization.Localization.GetString(key, path) + Private Sub SetLocalization() - End Function + dshImages.Text = GetResourceKey("Images") + lblImagesHelp.Text = GetResourceKey("ImagesHelp") - Protected Function GetUploadUrl() As String + dshExistingImages.Text = GetResourceKey("SelectExisting") + dshUploadImages.Text = GetResourceKey("UploadImages") + dshSelectedImages.Text = GetResourceKey("SelectedImages") + dshExternalImage.Text = GetResourceKey("ExternalImage") - Dim link As String = Page.ResolveUrl("~/DesktopModules/DnnForge%20-%20NewsArticles/Controls/SWFUploader.ashx?PortalID=" & ArticleModuleBase.PortalId.ToString()) + lblNoImages.Text = GetResourceKey("NoImages") - If (link.ToLower().StartsWith("http")) Then - Return link - Else - If (Request.Url.Port = 80) Then - Return DotNetNuke.Common.AddHTTP(Request.Url.Host & link) - Else - Return DotNetNuke.Common.AddHTTP(Request.Url.Host & ":" & Request.Url.Port.ToString() & link) - End If - End If + btUpload.Text = GetResourceKey("Upload") - End Function + End Sub - Private Sub ReadQueryString() +#End Region - If (ArticleSettings.UrlModeType = Components.Types.UrlModeType.Shorterned) Then - Try - If (IsNumeric(Request(ArticleSettings.ShortenedID))) Then - _articleID = Convert.ToInt32(Request(ArticleSettings.ShortenedID)) - End If - Catch - End Try - End If +#Region " Public Methods " - If (IsNumeric(Request("ArticleID"))) Then - _articleID = Convert.ToInt32(Request("ArticleID")) - End If + Public Sub UpdateImages(ByVal articleID As Integer) - End Sub + Dim objImageController As New ImageController + For Each objImage As ImageInfo In AttachedImages + objImage.ArticleID = articleID + objImageController.Update(objImage) + Next - Private Sub RegisterScripts() + End Sub - DotNetNuke.Framework.jQuery.RequestRegistration() +#End Region - 'If (HttpContext.Current.Items("jquery_registered") Is Nothing And HttpContext.Current.Items("jQueryRequested") Is Nothing) Then - ' If (HttpContext.Current.Items("PropertyAgent-jQuery-ScriptsRegistered") Is Nothing And HttpContext.Current.Items("SimpleGallery-ScriptsRegistered") Is Nothing And HttpContext.Current.Items("NewsArticles-ScriptsRegistered") Is Nothing) Then - ' Dim objCSS As System.Web.UI.Control = Page.FindControl("CSS") +#Region " Event Handlers " - ' If Not (objCSS Is Nothing) Then - ' Dim litLink As New Literal - ' litLink.Text = "" & vbCrLf _ - ' & "" & vbCrLf - ' If (HttpContext.Current.Items("NewsArticles-ScriptsRegistered") IsNot Nothing) Then - ' objCSS.Controls.Add(litLink) - ' End If - ' End If - ' If (HttpContext.Current.Items("NewsArticles-ScriptsRegistered") IsNot Nothing) Then - ' HttpContext.Current.Items.Add("NewsArticles-ScriptsRegistered", "true") - ' End If - ' End If - 'End If + Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load - End Sub + Try + ReadQueryString() + SetLocalization() - Private Sub SetLocalization() + trUpload.Visible = ArticleSettings.EnableImagesUpload + trExisting.Visible = ArticleSettings.EnablePortalImages - dshImages.Text = GetResourceKey("Images") - lblImagesHelp.Text = GetResourceKey("ImagesHelp") + phImages.Visible = (trUpload.Visible Or trExisting.Visible) - dshExistingImages.Text = GetResourceKey("SelectExisting") - dshUploadImages.Text = GetResourceKey("UploadImages") - dshSelectedImages.Text = GetResourceKey("SelectedImages") - dshExternalImage.Text = GetResourceKey("ExternalImage") + phExternalImage.Visible = ArticleSettings.EnableExternalImages - lblNoImages.Text = GetResourceKey("NoImages") + If (ArticleSettings.IsImagesEnabled = False Or (trUpload.Visible = False And trExisting.Visible = False And phExternalImage.Visible = False)) Then + Me.Visible = False + Return + End If - End Sub + If (IsPostBack = False) Then + litModuleID.Text = Me.ArticleModuleBase.ModuleId.ToString() + litTabModuleID.Text = Me.ArticleModuleBase.TabModuleId.ToString() -#End Region + If (Request.IsAuthenticated) Then + litTicketID.Text = Request.Cookies(System.Web.Security.FormsAuthentication.FormsCookieName()).Value + End If + litArticleGuid.Text = ArticleGuid.ToString() -#Region " Public Methods " + BindFolders() + BindImages() + End If - Public Sub UpdateImages(ByVal articleID As Integer) + Catch exc As Exception 'Module failed to load + ProcessModuleLoadException(Me, exc) + End Try - Dim objImageController As New ImageController - For Each objImage As ImageInfo In AttachedImages - objImage.ArticleID = articleID - objImageController.Update(objImage) - Next + End Sub - End Sub + Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender -#End Region + Try -#Region " Event Handlers " + RegisterScripts() - Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load + Catch exc As Exception 'Module failed to load + ProcessModuleLoadException(Me, exc) + End Try - Try + End Sub - ReadQueryString() - SetLocalization() + Protected Sub cmdRefreshPhotos_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdRefreshPhotos.Click - trUpload.Visible = ArticleSettings.EnableImagesUpload - trExisting.Visible = ArticleSettings.EnablePortalImages + Try - phImages.Visible = (trUpload.Visible Or trExisting.Visible) + BindImages() - phExternalImage.Visible = ArticleSettings.EnableExternalImages + Catch exc As Exception 'Module failed to load + ProcessModuleLoadException(Me, exc) + End Try - If (ArticleSettings.IsImagesEnabled = False Or (trUpload.Visible = False And trExisting.Visible = False And phExternalImage.Visible = False)) Then - Me.Visible = False - Return - End If + End Sub - If (IsPostBack = False) Then - lblSelectImages.Text = GetResourceKey("SelectImages") - litModuleID.Text = Me.ArticleModuleBase.ModuleId.ToString() - litTabModuleID.Text = Me.ArticleModuleBase.TabModuleId.ToString() - If (Request.IsAuthenticated) Then - litTicketID.Text = Request.Cookies(System.Web.Security.FormsAuthentication.FormsCookieName()).Value - End If - litArticleGuid.Text = ArticleGuid.ToString() + Private Sub dlImages_OnItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlImages.ItemDataBound - BindFolders() - BindImages() - End If + Try - Catch exc As Exception 'Module failed to load - ProcessModuleLoadException(Me, exc) - End Try + If (e.Item.ItemType = Web.UI.WebControls.ListItemType.Item Or e.Item.ItemType = Web.UI.WebControls.ListItemType.AlternatingItem) Then - End Sub + Dim objImage As ImageInfo = CType(e.Item.DataItem, ImageInfo) - Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender + Dim btnEdit As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnEdit"), System.Web.UI.WebControls.ImageButton) + Dim btnDelete As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnDelete"), System.Web.UI.WebControls.ImageButton) + Dim btnTop As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnTop"), System.Web.UI.WebControls.ImageButton) + Dim btnUp As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnUp"), System.Web.UI.WebControls.ImageButton) + Dim btnDown As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnDown"), System.Web.UI.WebControls.ImageButton) + Dim btnBottom As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnBottom"), System.Web.UI.WebControls.ImageButton) - Try + If Not (btnDelete Is Nothing) Then + btnDelete.Attributes.Add("onClick", "javascript:return confirm('" & GetResourceKey("DeleteImage") & "');") - RegisterScripts() + If Not (objImage Is Nothing) Then + btnDelete.CommandArgument = objImage.ImageID.ToString() + End If - Catch exc As Exception 'Module failed to load - ProcessModuleLoadException(Me, exc) - End Try + End If - End Sub + If Not (btnEdit Is Nothing) Then - Protected Sub cmdRefreshPhotos_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdRefreshPhotos.Click + If Not (objImage Is Nothing) Then + btnEdit.CommandArgument = objImage.ImageID.ToString() + End If - Try + End If - BindImages() + If Not (btnUp Is Nothing And btnDown Is Nothing) Then - Catch exc As Exception 'Module failed to load - ProcessModuleLoadException(Me, exc) - End Try + If (objImage.ImageID = CType(AttachedImages(0), ImageInfo).ImageID) Then + btnUp.Visible = False + btnTop.Visible = False + End If - End Sub + If (objImage.ImageID = CType(AttachedImages(AttachedImages.Count - 1), ImageInfo).ImageID) Then + btnDown.Visible = False + btnBottom.Visible = False + End If + btnTop.CommandArgument = objImage.ImageID.ToString() + btnTop.CommandName = "Top" + btnTop.CausesValidation = False - Private Sub dlImages_OnItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlImages.ItemDataBound + btnUp.CommandArgument = objImage.ImageID.ToString() + btnUp.CommandName = "Up" + btnUp.CausesValidation = False - Try + btnDown.CommandArgument = objImage.ImageID.ToString() + btnDown.CommandName = "Down" + btnDown.CausesValidation = False - If (e.Item.ItemType = Web.UI.WebControls.ListItemType.Item Or e.Item.ItemType = Web.UI.WebControls.ListItemType.AlternatingItem) Then + btnBottom.CommandArgument = objImage.ImageID.ToString() + btnBottom.CommandName = "Bottom" + btnBottom.CausesValidation = False - Dim objImage As ImageInfo = CType(e.Item.DataItem, ImageInfo) + End If - Dim btnEdit As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnEdit"), System.Web.UI.WebControls.ImageButton) - Dim btnDelete As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnDelete"), System.Web.UI.WebControls.ImageButton) - Dim btnTop As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnTop"), System.Web.UI.WebControls.ImageButton) - Dim btnUp As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnUp"), System.Web.UI.WebControls.ImageButton) - Dim btnDown As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnDown"), System.Web.UI.WebControls.ImageButton) - Dim btnBottom As System.Web.UI.WebControls.ImageButton = CType(e.Item.FindControl("btnBottom"), System.Web.UI.WebControls.ImageButton) + End If - If Not (btnDelete Is Nothing) Then - btnDelete.Attributes.Add("onClick", "javascript:return confirm('" & GetResourceKey("DeleteImage") & "');") + Catch exc As Exception 'Module failed to load + ProcessModuleLoadException(Me, exc) + End Try - If Not (objImage Is Nothing) Then - btnDelete.CommandArgument = objImage.ImageID.ToString() - End If + End Sub - End If + Private Sub dlImages_OnItemCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles dlImages.ItemCommand - If Not (btnEdit Is Nothing) Then + Try - If Not (objImage Is Nothing) Then - btnEdit.CommandArgument = objImage.ImageID.ToString() - End If + Dim objImageController As New ImageController - End If + If (e.CommandName = "Delete") Then - If Not (btnUp Is Nothing And btnDown Is Nothing) Then + Dim objImage As ImageInfo = objImageController.Get(Convert.ToInt32(e.CommandArgument)) - If (objImage.ImageID = CType(AttachedImages(0), ImageInfo).ImageID) Then - btnUp.Visible = False - btnTop.Visible = False - End If + If Not (objImage Is Nothing) Then + objImageController.Delete(Convert.ToInt32(e.CommandArgument), _articleID, objImage.ImageGuid) + End If - If (objImage.ImageID = CType(AttachedImages(AttachedImages.Count - 1), ImageInfo).ImageID) Then - btnDown.Visible = False - btnBottom.Visible = False - End If + End If - btnTop.CommandArgument = objImage.ImageID.ToString() - btnTop.CommandName = "Top" - btnTop.CausesValidation = False + If (e.CommandName = "Edit") Then - btnUp.CommandArgument = objImage.ImageID.ToString() - btnUp.CommandName = "Up" - btnUp.CausesValidation = False + dlImages.EditItemIndex = e.Item.ItemIndex - btnDown.CommandArgument = objImage.ImageID.ToString() - btnDown.CommandName = "Down" - btnDown.CausesValidation = False + End If - btnBottom.CommandArgument = objImage.ImageID.ToString() - btnBottom.CommandName = "Bottom" - btnBottom.CausesValidation = False + If (e.CommandName = "Top") Then - End If + Dim imageID As Integer = Convert.ToInt32(e.CommandArgument) - End If + Dim objImagesSorted As New List(Of ImageInfo) - Catch exc As Exception 'Module failed to load - ProcessModuleLoadException(Me, exc) - End Try + For i As Integer = 0 To AttachedImages.Count - 1 + Dim objImage As ImageInfo = CType(AttachedImages(i), ImageInfo) + If (imageID = objImage.ImageID) Then + objImagesSorted.Insert(0, objImage) + Else + objImagesSorted.Add(objImage) + End If + Next - End Sub + Dim sortOrder As Integer = 0 + For Each objImage As ImageInfo In objImagesSorted + objImage.SortOrder = sortOrder + objImageController.Update(objImage) + sortOrder = sortOrder + 1 + Next - Private Sub dlImages_OnItemCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles dlImages.ItemCommand + End If - Try + If (e.CommandName = "Up") Then - Dim objImageController As New ImageController + Dim imageID As Integer = Convert.ToInt32(e.CommandArgument) - If (e.CommandName = "Delete") Then + For i As Integer = 0 To AttachedImages.Count - 1 + Dim objImage As ImageInfo = CType(AttachedImages(i), ImageInfo) + If (imageID = objImage.ImageID) Then - Dim objImage As ImageInfo = objImageController.Get(Convert.ToInt32(e.CommandArgument)) + Dim objImageToSwap As ImageInfo = CType(AttachedImages(i - 1), ImageInfo) - If Not (objImage Is Nothing) Then - objImageController.Delete(Convert.ToInt32(e.CommandArgument), _articleID, objImage.ImageGuid) - End If + Dim sortOrder As Integer = objImage.SortOrder + Dim sortOrderPrevious As Integer = objImageToSwap.SortOrder - End If + objImage.SortOrder = sortOrderPrevious + objImageToSwap.SortOrder = sortOrder - If (e.CommandName = "Edit") Then + objImageController.Update(objImage) + objImageController.Update(objImageToSwap) - dlImages.EditItemIndex = e.Item.ItemIndex + End If + Next - End If + End If - If (e.CommandName = "Top") Then + If (e.CommandName = "Down") Then - Dim imageID As Integer = Convert.ToInt32(e.CommandArgument) + Dim imageID As Integer = Convert.ToInt32(e.CommandArgument) - Dim objImagesSorted As New List(Of ImageInfo) + For i As Integer = 0 To AttachedImages.Count - 1 + Dim objImage As ImageInfo = CType(AttachedImages(i), ImageInfo) + If (imageID = objImage.ImageID) Then + Dim objImageToSwap As ImageInfo = CType(AttachedImages(i + 1), ImageInfo) - For i As Integer = 0 To AttachedImages.Count - 1 - Dim objImage As ImageInfo = CType(AttachedImages(i), ImageInfo) - If (imageID = objImage.ImageID) Then - objImagesSorted.Insert(0, objImage) - Else - objImagesSorted.Add(objImage) - End If - Next + Dim sortOrder As Integer = objImage.SortOrder + Dim sortOrderNext As Integer = objImageToSwap.SortOrder - Dim sortOrder As Integer = 0 - For Each objImage As ImageInfo In objImagesSorted - objImage.SortOrder = sortOrder - objImageController.Update(objImage) - sortOrder = sortOrder + 1 - Next + objImage.SortOrder = sortOrderNext + objImageToSwap.SortOrder = sortOrder - End If + objImageController.Update(objImage) + objImageController.Update(objImageToSwap) + End If + Next - If (e.CommandName = "Up") Then + End If - Dim imageID As Integer = Convert.ToInt32(e.CommandArgument) + If (e.CommandName = "Bottom") Then - For i As Integer = 0 To AttachedImages.Count - 1 - Dim objImage As ImageInfo = CType(AttachedImages(i), ImageInfo) - If (imageID = objImage.ImageID) Then + Dim imageID As Integer = Convert.ToInt32(e.CommandArgument) - Dim objImageToSwap As ImageInfo = CType(AttachedImages(i - 1), ImageInfo) + Dim objImageEnd As ImageInfo = Nothing + Dim objImagesSorted As New List(Of ImageInfo) - Dim sortOrder As Integer = objImage.SortOrder - Dim sortOrderPrevious As Integer = objImageToSwap.SortOrder + For i As Integer = 0 To AttachedImages.Count - 1 + Dim objImage As ImageInfo = CType(AttachedImages(i), ImageInfo) + If (imageID = objImage.ImageID) Then + objImageEnd = objImage + Else + objImagesSorted.Add(objImage) + End If + Next - objImage.SortOrder = sortOrderPrevious - objImageToSwap.SortOrder = sortOrder + If (objImageEnd IsNot Nothing) Then + objImagesSorted.Add(objImageEnd) - objImageController.Update(objImage) - objImageController.Update(objImageToSwap) + Dim sortOrder As Integer = 0 + For Each objImage As ImageInfo In objImagesSorted + objImage.SortOrder = sortOrder + objImageController.Update(objImage) + sortOrder = sortOrder + 1 + Next + End If - End If - Next + End If - End If + If (e.CommandName = "Cancel") Then - If (e.CommandName = "Down") Then + dlImages.EditItemIndex = -1 - Dim imageID As Integer = Convert.ToInt32(e.CommandArgument) + End If - For i As Integer = 0 To AttachedImages.Count - 1 - Dim objImage As ImageInfo = CType(AttachedImages(i), ImageInfo) - If (imageID = objImage.ImageID) Then - Dim objImageToSwap As ImageInfo = CType(AttachedImages(i + 1), ImageInfo) + If (e.CommandName = "Update") Then - Dim sortOrder As Integer = objImage.SortOrder - Dim sortOrderNext As Integer = objImageToSwap.SortOrder + Dim txtTitle As TextBox = CType(e.Item.FindControl("txtTitle"), TextBox) + Dim txtDescription As TextBox = CType(e.Item.FindControl("txtDescription"), TextBox) - objImage.SortOrder = sortOrderNext - objImageToSwap.SortOrder = sortOrder + Dim objImage As ImageInfo = objImageController.Get(Convert.ToInt32(dlImages.DataKeys(e.Item.ItemIndex))) - objImageController.Update(objImage) - objImageController.Update(objImageToSwap) - End If - Next + If Not (objImage Is Nothing) Then + objImage.Title = txtTitle.Text + objImage.Description = txtDescription.Text + objImageController.Update(objImage) + End If - End If + dlImages.EditItemIndex = -1 - If (e.CommandName = "Bottom") Then + End If - Dim imageID As Integer = Convert.ToInt32(e.CommandArgument) + _imagesInit = False + BindImages() - Dim objImageEnd As ImageInfo = Nothing - Dim objImagesSorted As New List(Of ImageInfo) + Catch exc As Exception 'Module failed to load + ProcessModuleLoadException(Me, exc) + End Try - For i As Integer = 0 To AttachedImages.Count - 1 - Dim objImage As ImageInfo = CType(AttachedImages(i), ImageInfo) - If (imageID = objImage.ImageID) Then - objImageEnd = objImage - Else - objImagesSorted.Add(objImage) - End If - Next + End Sub - If (objImageEnd IsNot Nothing) Then - objImagesSorted.Add(objImageEnd) + Protected Sub cmdAddExistingImage_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdAddExistingImage.Click - Dim sortOrder As Integer = 0 - For Each objImage As ImageInfo In objImagesSorted - objImage.SortOrder = sortOrder - objImageController.Update(objImage) - sortOrder = sortOrder + 1 - Next - End If + Try - End If + If (ctlImage.Url <> "") Then + If (ctlImage.Url.ToLower().StartsWith("fileid=")) Then + If (IsNumeric(ctlImage.Url.ToLower().Replace("fileid=", ""))) Then + Dim fileID As Integer = Convert.ToInt32(ctlImage.Url.ToLower().Replace("fileid=", "")) + Dim objFile As DotNetNuke.Services.FileSystem.FileInfo = FileManager.Instance.GetFile(fileID) + If (objFile IsNot Nothing) Then - If (e.CommandName = "Cancel") Then + Dim objImageController As New ImageController + Dim objImage As New ImageInfo - dlImages.EditItemIndex = -1 + objImage.ArticleID = _articleID + If (_articleID = Null.NullInteger) Then + objImage.ImageGuid = ArticleGuid + End If + objImage.FileName = objFile.FileName + objImage.ContentType = objFile.ContentType + objImage.Width = objFile.Width + objImage.Height = objFile.Height + objImage.SortOrder = 0 + Dim imagesList As List(Of ImageInfo) = objImageController.GetImageList(_articleID, ArticleGuid) + If (imagesList.Count > 0) Then + objImage.SortOrder = CType(imagesList(imagesList.Count - 1), ImageInfo).SortOrder + 1 + End If + objImage.Folder = objFile.Folder + objImage.Extension = objFile.Extension + objImage.Title = objFile.FileName.Replace("." & objImage.Extension, "") + objImage.Size = objFile.Size + objImage.Description = "" - End If + objImageController.Add(objImage) + BindImages() - If (e.CommandName = "Update") Then + End If + End If + End If + End If - Dim txtTitle As TextBox = CType(e.Item.FindControl("txtTitle"), TextBox) - Dim txtDescription As TextBox = CType(e.Item.FindControl("txtDescription"), TextBox) + Catch exc As Exception 'Module failed to load + ProcessModuleLoadException(Me, exc) + End Try - Dim objImage As ImageInfo = objImageController.Get(Convert.ToInt32(dlImages.DataKeys(e.Item.ItemIndex))) + End Sub + + Protected Sub btUpload_Click(sender As Object, e As EventArgs) + Dim objImageController As New ImageController + Dim objPortalController As New PortalController() - If Not (objImage Is Nothing) Then - objImage.Title = txtTitle.Text - objImage.Description = txtDescription.Text - objImageController.Update(objImage) - End If + For Each objFile As HttpPostedFile In fupFile.PostedFiles + If objPortalController.HasSpaceAvailable(ArticleModuleBase.PortalId, objFile.ContentLength) Then - dlImages.EditItemIndex = -1 + Dim objImage As New ImageInfo - End If + objImage.ArticleID = _articleID + If (_articleID = Null.NullInteger) Then + objImage.ImageGuid = ArticleGuid + End If + objImage.FileName = objFile.FileName - _imagesInit = False - BindImages() - - Catch exc As Exception 'Module failed to load - ProcessModuleLoadException(Me, exc) - End Try - - End Sub - - Protected Sub cmdAddExistingImage_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdAddExistingImage.Click - - Try - - If (ctlImage.Url <> "") Then - If (ctlImage.Url.ToLower().StartsWith("fileid=")) Then - If (IsNumeric(ctlImage.Url.ToLower().Replace("fileid=", ""))) Then - Dim fileID As Integer = Convert.ToInt32(ctlImage.Url.ToLower().Replace("fileid=", "")) - Dim objFileController As New DotNetNuke.Services.FileSystem.FileController - Dim objFile As DotNetNuke.Services.FileSystem.FileInfo = objFileController.GetFileById(fileID, ArticleModuleBase.PortalId) - If (objFile IsNot Nothing) Then - - Dim objImageController As New ImageController - Dim objImage As New ImageInfo - - objImage.ArticleID = _articleID - If (_articleID = Null.NullInteger) Then - objImage.ImageGuid = ArticleGuid - End If - objImage.FileName = objFile.FileName - objImage.ContentType = objFile.ContentType - objImage.Width = objFile.Width - objImage.Height = objFile.Height - objImage.SortOrder = 0 - Dim imagesList As List(Of ImageInfo) = objImageController.GetImageList(_articleID, ArticleGuid) - If (imagesList.Count > 0) Then - objImage.SortOrder = CType(imagesList(imagesList.Count - 1), ImageInfo).SortOrder + 1 - End If - objImage.Folder = objFile.Folder - objImage.Extension = objFile.Extension - objImage.Title = objFile.FileName.Replace("." & objImage.Extension, "") - objImage.Size = objFile.Size - objImage.Description = "" - - objImageController.Add(objImage) - BindImages() - - End If - End If - End If - End If + If (objFile.FileName.ToLower().EndsWith(".jpg")) Then + objImage.ContentType = "image/jpeg" + End If + + If (objFile.FileName.ToLower().EndsWith(".gif")) Then + objImage.ContentType = "image/gif" + End If - Catch exc As Exception 'Module failed to load - ProcessModuleLoadException(Me, exc) - End Try + If (objFile.FileName.ToLower().EndsWith(".png")) Then + objImage.ContentType = "image/png" + End If - End Sub + Dim maxWidth As Integer = ArticleSettings.MaxImageWidth + Dim maxHeight As Integer = ArticleSettings.MaxImageHeight + + Dim photo As Drawing.Image = Drawing.Image.FromStream(objFile.InputStream) + objImage.Width = photo.Width + objImage.Height = photo.Height + + If (objImage.Width > maxWidth) Then + objImage.Width = maxWidth + objImage.Height = Convert.ToInt32(objImage.Height / (photo.Width / maxWidth)) + End If + + If (objImage.Height > maxHeight) Then + objImage.Height = maxHeight + objImage.Width = Convert.ToInt32(photo.Width / (photo.Height / maxHeight)) + End If + + objImage.SortOrder = 0 + + Dim imagesList As List(Of ImageInfo) = objImageController.GetImageList(_articleID, ArticleGuid) + + If (imagesList.Count > 0) Then + objImage.SortOrder = CType(imagesList(imagesList.Count - 1), ImageInfo).SortOrder + 1 + End If + + Dim objPortalSettings As PortalSettings = PortalController.Instance.GetCurrentPortalSettings() + + Dim folder As String = "" + Dim folderId As Integer = Integer.Parse(drpUploadImageFolder.SelectedValue) + + If (folderId <> Null.NullInteger) Then + Dim objFolder As DotNetNuke.Services.FileSystem.FolderInfo = FolderManager.Instance.GetFolder(folderId) + If (objFolder IsNot Nothing) Then + folder = objFolder.FolderPath + End If + End If + + objImage.Folder = folder + + Select Case objImage.ContentType.ToLower() + Case "image/jpeg" + objImage.Extension = "jpg" + Exit Select + Case "image/gif" + objImage.Extension = "gif" + Exit Select + Case "image/png" + objImage.Extension = "png" + Exit Select + End Select + + objImage.Title = objFile.FileName.Replace("." & objImage.Extension, "") + + Dim filePath As String = objPortalSettings.HomeDirectoryMapPath & folder.Replace("/", "\") + + If Not (Directory.Exists(filePath)) Then + Directory.CreateDirectory(filePath) + End If + + If (File.Exists(filePath & objImage.FileName)) Then + For i As Integer = 1 To 100 + If (File.Exists(filePath & i.ToString() & "_" & objImage.FileName) = False) Then + objImage.FileName = i.ToString() & "_" & objImage.FileName + Exit For + End If + Next + End If + + objImage.Size = objFile.ContentLength + If ((photo.Width < maxWidth And photo.Height < maxHeight) Or (ArticleSettings.ResizeImages = False)) Then + objFile.SaveAs(filePath & objImage.FileName) + Else + Dim bmp As New Bitmap(objImage.Width, objImage.Height) + Dim g As Graphics = Graphics.FromImage(DirectCast(bmp, Drawing.Image)) + + g.InterpolationMode = InterpolationMode.HighQualityBicubic + g.SmoothingMode = SmoothingMode.HighQuality + g.PixelOffsetMode = PixelOffsetMode.HighQuality + g.CompositingQuality = CompositingQuality.HighQuality + + g.DrawImage(photo, 0, 0, objImage.Width, objImage.Height) + + If (ArticleSettings.WatermarkEnabled And ArticleSettings.WatermarkText <> "") Then + Dim crSize As SizeF = New SizeF + Dim brushColor As Brush = Brushes.Yellow + Dim fnt As Font = New Font("Verdana", 11, FontStyle.Bold) + Dim strDirection As StringFormat = New StringFormat + + strDirection.Alignment = StringAlignment.Center + crSize = g.MeasureString(ArticleSettings.WatermarkText, fnt) + + Dim yPixelsFromBottom As Integer = Convert.ToInt32(Convert.ToDouble(objImage.Height) * 0.05) + Dim yPosFromBottom As Single = Convert.ToSingle((objImage.Height - yPixelsFromBottom) - (crSize.Height / 2)) + Dim xCenterOfImage As Single = Convert.ToSingle((objImage.Width / 2)) + + g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias + + Dim semiTransBrush2 As SolidBrush = New SolidBrush(Color.FromArgb(153, 0, 0, 0)) + g.DrawString(ArticleSettings.WatermarkText, fnt, semiTransBrush2, New PointF(xCenterOfImage + 1, yPosFromBottom + 1), strDirection) + + Dim semiTransBrush As SolidBrush = New SolidBrush(Color.FromArgb(153, 255, 255, 255)) + g.DrawString(ArticleSettings.WatermarkText, fnt, semiTransBrush, New PointF(xCenterOfImage, yPosFromBottom), strDirection) + End If + + If (ArticleSettings.WatermarkEnabled And ArticleSettings.WatermarkImage <> "") Then + Dim watermark As String = objPortalSettings.HomeDirectoryMapPath & ArticleSettings.WatermarkImage + If (File.Exists(watermark)) Then + Dim imgWatermark As Image = New Bitmap(watermark) + Dim wmWidth As Integer = imgWatermark.Width + Dim wmHeight As Integer = imgWatermark.Height + + Dim objImageAttributes As New ImageAttributes() + Dim objColorMap As New ColorMap() + objColorMap.OldColor = Color.FromArgb(255, 0, 255, 0) + objColorMap.NewColor = Color.FromArgb(0, 0, 0, 0) + Dim remapTable As ColorMap() = {objColorMap} + objImageAttributes.SetRemapTable(remapTable, ColorAdjustType.Bitmap) + + Dim colorMatrixElements As Single()() = {New Single() {1.0F, 0.0F, 0.0F, 0.0F, 0.0F}, New Single() {0.0F, 1.0F, 0.0F, 0.0F, 0.0F}, New Single() {0.0F, 0.0F, 1.0F, 0.0F, 0.0F}, New Single() {0.0F, 0.0F, 0.0F, 0.3F, 0.0F}, New Single() {0.0F, 0.0F, 0.0F, 0.0F, 1.0F}} + Dim wmColorMatrix As New ColorMatrix(colorMatrixElements) + objImageAttributes.SetColorMatrix(wmColorMatrix, ColorMatrixFlag.[Default], ColorAdjustType.Bitmap) + + Dim xPosOfWm As Integer = ((objImage.Width - wmWidth) - 10) + Dim yPosOfWm As Integer = 10 + + Select Case ArticleSettings.WatermarkPosition + Case WatermarkPosition.TopLeft + xPosOfWm = 10 + yPosOfWm = 10 + Exit Select + + Case WatermarkPosition.TopRight + xPosOfWm = ((objImage.Width - wmWidth) - 10) + yPosOfWm = 10 + Exit Select + + Case WatermarkPosition.BottomLeft + xPosOfWm = 10 + yPosOfWm = ((objImage.Height - wmHeight) - 10) + + Case WatermarkPosition.BottomRight + xPosOfWm = ((objImage.Width - wmWidth) - 10) + yPosOfWm = ((objImage.Height - wmHeight) - 10) + End Select + + g.DrawImage(imgWatermark, New Rectangle(xPosOfWm, yPosOfWm, wmWidth, wmHeight), 0, 0, wmWidth, wmHeight, + GraphicsUnit.Pixel, objImageAttributes) + imgWatermark.Dispose() + End If + End If + + photo.Dispose() + + Select Case objFile.ContentType.ToLower() + Case "image/jpeg" + Dim info As ImageCodecInfo() = ImageCodecInfo.GetImageEncoders() + Dim encoderParameters As New EncoderParameters(1) + encoderParameters.Param(0) = New EncoderParameter(Encoder.Quality, 100L) + bmp.Save(filePath & objImage.FileName, info(1), encoderParameters) + + Case "image/gif" + 'Dim quantizer As New ImageQuantization.OctreeQuantizer(255, 8) + 'Dim bmpQuantized As Bitmap = quantizer.Quantize(bmp) + 'bmpQuantized.Save(filePath & objPhoto.Filename, ImageFormat.Gif) + ' Not working in medium trust. + bmp.Save(filePath & objImage.FileName, ImageFormat.Gif) + + Case Else + 'Shouldn't get to here because of validators. + Dim info As ImageCodecInfo() = ImageCodecInfo.GetImageEncoders() + Dim encoderParameters As New EncoderParameters(1) + encoderParameters.Param(0) = New EncoderParameter(Encoder.Quality, 100L) + bmp.Save(filePath & objImage.FileName, info(1), encoderParameters) + End Select + + bmp.Dispose() + + If (File.Exists(filePath & objImage.FileName)) Then + Dim fi As New IO.FileInfo(filePath & objImage.FileName) + If (fi IsNot Nothing) Then + objImage.Size = Convert.ToInt32(fi.Length) + End If + End If + End If + + objImage.ImageID = objImageController.Add(objImage) + + If (_articleID <> Null.NullInteger) Then + Dim objArticleController As New ArticleController + Dim objArticle As ArticleInfo = objArticleController.GetArticle(_articleID) + If (objArticle IsNot Nothing) Then + objArticle.ImageCount = objArticle.ImageCount + 1 + objArticleController.UpdateArticle(objArticle) + End If + End If + + End If + Next + + DotNetNuke.Services.FileSystem.FolderManager.Instance.Synchronize(PortalController.Instance.GetCurrentPortalSettings().PortalId, drpUploadImageFolder.SelectedItem.Text, True, True) + + BindImages() + End Sub #End Region - End Class + End Class End Namespace \ No newline at end of file diff --git a/Installs/NewsArticles.00.10.00.zip b/Installs/NewsArticles.00.10.00.zip new file mode 100644 index 0000000..d7694bb Binary files /dev/null and b/Installs/NewsArticles.00.10.00.zip differ diff --git a/LatestArticles.ascx.vb b/LatestArticles.ascx.vb index b9a2c0f..1a26ed9 100755 --- a/LatestArticles.ascx.vb +++ b/LatestArticles.ascx.vb @@ -57,12 +57,13 @@ Namespace Ventrian.NewsArticles Get If (_articleSettings Is Nothing) Then - _settings = DotNetNuke.Entities.Portals.PortalSettings.GetModuleSettings(_articleModuleID) - - Dim objModuleController As New ModuleController + Dim objModuleController As New ModuleController Dim objModule As ModuleInfo = objModuleController.GetModule(_articleModuleID, _articleTabID) + + _settings = objModule.ModuleSettings + If Not (objModule Is Nothing) Then - Dim objSettings As Hashtable = DotNetNuke.Entities.Portals.PortalSettings.GetTabModuleSettings(objModule.TabModuleID) + Dim objSettings As Hashtable = objModule.TabModuleSettings For Each key As String In objSettings.Keys If (_settings.ContainsKey(key) = False) Then @@ -119,10 +120,10 @@ Namespace Ventrian.NewsArticles Get If (_serverTimeZone = Null.NullInteger) Then - _serverTimeZone = PortalSettings.TimeZoneOffset + _serverTimeZone = PortalSettings.TimeZone.GetUtcOffset(DateTime.Now).TotalHours Dim objModuleSettingController As New ModuleController - Dim newsSettings As Hashtable = objModuleSettingController.GetModuleSettings(_articleModuleID) + Dim newsSettings As Hashtable = Common.GetModuleSettings(_articleModuleID) If Not (newsSettings Is Nothing) Then If (newsSettings.Contains(ArticleConstants.SERVER_TIMEZONE)) Then diff --git a/LatestArticlesOptions.ascx.vb b/LatestArticlesOptions.ascx.vb index 28058e3..5332545 100755 --- a/LatestArticlesOptions.ascx.vb +++ b/LatestArticlesOptions.ascx.vb @@ -13,6 +13,9 @@ Imports DotNetNuke.Services.Localization Imports DotNetNuke.Services.Exceptions Imports Ventrian.NewsArticles.Components.CustomFields Imports System.IO +Imports DotNetNuke.Entities.Users +Imports DotNetNuke.Security.Permissions +Imports DotNetNuke.Security.Roles Namespace Ventrian.NewsArticles @@ -67,8 +70,8 @@ Namespace Ventrian.NewsArticles Dim objTabController As New TabController() - Dim objTabs As ArrayList = objTabController.GetTabs(PortalId) - For Each objTab As DotNetNuke.Entities.Tabs.TabInfo In objTabs + Dim objTabs As TabCollection =TabController.Instance.GetTabsByPortal(PortalId) + For Each objTab As DotNetNuke.Entities.Tabs.TabInfo In objTabs.Values drpPageFilter.Items.Add(New ListItem(objTab.TabPath.Replace("//", "/").TrimStart("/"c), objTab.TabID.ToString())) Next @@ -108,14 +111,13 @@ Namespace Ventrian.NewsArticles Private Sub BindModules() - Dim objDesktopModuleController As New DesktopModuleController - Dim objDesktopModuleInfo As DesktopModuleInfo = objDesktopModuleController.GetDesktopModuleByModuleName("DnnForge - NewsArticles") + Dim objDesktopModuleInfo As DesktopModuleInfo = DesktopModuleController.GetDesktopModuleByModuleName("DnnForge - NewsArticles", PortalSettings.PortalId) If Not (objDesktopModuleInfo Is Nothing) Then Dim objTabController As New TabController() - Dim objTabs As ArrayList = objTabController.GetTabs(PortalId) - For Each objTab As DotNetNuke.Entities.Tabs.TabInfo In objTabs + Dim objTabs As TabCollection = TabController.Instance.GetTabsByPortal(PortalId) + For Each objTab As TabInfo In objTabs.Values If Not (objTab Is Nothing) Then If (objTab.IsDeleted = False) Then Dim objModules As New ModuleController @@ -123,7 +125,7 @@ Namespace Ventrian.NewsArticles Dim objModule As ModuleInfo = pair.Value If (objModule.IsDeleted = False) Then If (objModule.DesktopModuleID = objDesktopModuleInfo.DesktopModuleID) Then - If PortalSecurity.IsInRoles(objModule.AuthorizedEditRoles) = True And objModule.IsDeleted = False Then + If ModulePermissionController.CanEditModuleContent(objModule) = True And objModule.IsDeleted = False Then Dim strPath As String = objTab.TabName Dim objTabSelected As TabInfo = objTab While objTabSelected.ParentId <> Null.NullInteger @@ -655,7 +657,7 @@ Namespace Ventrian.NewsArticles Public Function GetAuthorList(ByVal moduleID As Integer) As ArrayList - Dim moduleSettings As Hashtable = DotNetNuke.Entities.Portals.PortalSettings.GetModuleSettings(moduleID) + Dim moduleSettings As Hashtable = Common.GetModuleSettings(moduleID) Dim distributionList As String = "" Dim userList As New ArrayList @@ -672,13 +674,13 @@ Namespace Ventrian.NewsArticles Dim objRole As DotNetNuke.Security.Roles.RoleInfo = objRoleController.GetRoleByName(PortalSettings.PortalId, role) If Not (objRole Is Nothing) Then - Dim objUsers As ArrayList = objRoleController.GetUserRolesByRoleName(PortalSettings.PortalId, objRole.RoleName) - For Each objUser As DotNetNuke.Entities.Users.UserRoleInfo In objUsers + Dim objUsers As List(Of UserInfo) = RoleController.Instance.GetUsersByRole(PortalSettings.PortalId, objRole.RoleName) + For Each objUser As UserInfo In objUsers If (userIDs.Contains(objUser.UserID) = False) Then Dim objUserController As DotNetNuke.Entities.Users.UserController = New DotNetNuke.Entities.Users.UserController Dim objSelectedUser As DotNetNuke.Entities.Users.UserInfo = objUserController.GetUser(PortalSettings.PortalId, objUser.UserID) If Not (objSelectedUser Is Nothing) Then - If (objSelectedUser.Membership.Email.Length > 0) Then + If (objSelectedUser.Email.Length > 0) Then userIDs.Add(objUser.UserID, objUser.UserID) userList.Add(objSelectedUser) End If diff --git a/LatestComments.ascx.vb b/LatestComments.ascx.vb index 30e528d..3c0a2a2 100755 --- a/LatestComments.ascx.vb +++ b/LatestComments.ascx.vb @@ -30,12 +30,12 @@ Namespace Ventrian.NewsArticles Get If (_articleSettings Is Nothing) Then - Dim _settings As Hashtable = DotNetNuke.Entities.Portals.PortalSettings.GetModuleSettings(_articleModuleID) + Dim _settings As Hashtable = Common.GetModuleSettings(_articleModuleID) Dim objModuleController As New ModuleController Dim objModule As ModuleInfo = objModuleController.GetModule(_articleModuleID, _articleTabID) If Not (objModule Is Nothing) Then - Dim objSettings As Hashtable = DotNetNuke.Entities.Portals.PortalSettings.GetTabModuleSettings(objModule.TabModuleID) + Dim objSettings As Hashtable = objModule.TabModuleSettings For Each key As String In objSettings.Keys If (_settings.ContainsKey(key) = False) Then diff --git a/LatestCommentsOptions.ascx.vb b/LatestCommentsOptions.ascx.vb index b891ae2..c55ff23 100755 --- a/LatestCommentsOptions.ascx.vb +++ b/LatestCommentsOptions.ascx.vb @@ -2,6 +2,7 @@ Imports DotNetNuke.Entities.Modules Imports DotNetNuke.Entities.Tabs Imports DotNetNuke.Security +Imports DotNetNuke.Security.Permissions Imports DotNetNuke.Services.Exceptions Namespace Ventrian.NewsArticles @@ -13,14 +14,13 @@ Namespace Ventrian.NewsArticles Private Sub BindModules() - Dim objDesktopModuleController As New DesktopModuleController - Dim objDesktopModuleInfo As DesktopModuleInfo = objDesktopModuleController.GetDesktopModuleByModuleName("DnnForge - NewsArticles") + Dim objDesktopModuleInfo As DesktopModuleInfo = DesktopModuleController.GetDesktopModuleByModuleName("DnnForge - NewsArticles", PortalId) If Not (objDesktopModuleInfo Is Nothing) Then Dim objTabController As New TabController() - Dim objTabs As ArrayList = objTabController.GetTabs(PortalId) - For Each objTab As DotNetNuke.Entities.Tabs.TabInfo In objTabs + Dim objTabs As TabCollection = TabController.Instance.GetTabsByPortal(PortalId) + For Each objTab As DotNetNuke.Entities.Tabs.TabInfo In objTabs.Values If Not (objTab Is Nothing) Then If (objTab.IsDeleted = False) Then Dim objModules As New ModuleController @@ -28,7 +28,7 @@ Namespace Ventrian.NewsArticles Dim objModule As ModuleInfo = pair.Value If (objModule.IsDeleted = False) Then If (objModule.DesktopModuleID = objDesktopModuleInfo.DesktopModuleID) Then - If PortalSecurity.IsInRoles(objModule.AuthorizedEditRoles) = True And objModule.IsDeleted = False Then + If ModulePermissionController.CanEditModuleContent(objModule) = True And objModule.IsDeleted = False Then Dim strPath As String = objTab.TabName Dim objTabSelected As DotNetNuke.Entities.Tabs.TabInfo = objTab While objTabSelected.ParentId <> Null.NullInteger diff --git a/Libraries/DotNetNuke.Web.Client.dll b/Libraries/DotNetNuke.Web.Client.dll new file mode 100644 index 0000000..d5ea15b Binary files /dev/null and b/Libraries/DotNetNuke.Web.Client.dll differ diff --git a/Libraries/DotNetNuke.dll b/Libraries/DotNetNuke.dll new file mode 100644 index 0000000..91633a7 Binary files /dev/null and b/Libraries/DotNetNuke.dll differ diff --git a/Libraries/Ventrian.ImageResizer.dll b/Libraries/Ventrian.ImageResizer.dll new file mode 100644 index 0000000..413863a Binary files /dev/null and b/Libraries/Ventrian.ImageResizer.dll differ diff --git a/My Project/Application.Designer.vb b/My Project/Application.Designer.vb index abb97d9..db8b8b3 100755 --- a/My Project/Application.Designer.vb +++ b/My Project/Application.Designer.vb @@ -1,7 +1,7 @@ '------------------------------------------------------------------------------ ' ' This code was generated by a tool. -' Runtime Version:4.0.30319.17929 +' Runtime Version:4.0.30319.42000 ' ' Changes to this file may cause incorrect behavior and will be lost if ' the code is regenerated. diff --git a/My Project/Resources.Designer.vb b/My Project/Resources.Designer.vb index 02a2246..daaa2f6 100755 --- a/My Project/Resources.Designer.vb +++ b/My Project/Resources.Designer.vb @@ -1,7 +1,7 @@ '------------------------------------------------------------------------------ ' ' This code was generated by a tool. -' Runtime Version:4.0.30319.17929 +' Runtime Version:4.0.30319.42000 ' ' Changes to this file may cause incorrect behavior and will be lost if ' the code is regenerated. diff --git a/My Project/Settings.Designer.vb b/My Project/Settings.Designer.vb index 8f257c0..da211fc 100755 --- a/My Project/Settings.Designer.vb +++ b/My Project/Settings.Designer.vb @@ -1,7 +1,7 @@ '------------------------------------------------------------------------------ ' ' This code was generated by a tool. -' Runtime Version:4.0.30319.17929 +' Runtime Version:4.0.30319.42000 ' ' Changes to this file may cause incorrect behavior and will be lost if ' the code is regenerated. @@ -15,7 +15,7 @@ Option Explicit On Namespace My _ Partial Friend NotInheritable Class MySettings Inherits Global.System.Configuration.ApplicationSettingsBase diff --git a/NewsArchives.ascx.vb b/NewsArchives.ascx.vb index 5dc42d9..2d7bb33 100755 --- a/NewsArchives.ascx.vb +++ b/NewsArchives.ascx.vb @@ -40,12 +40,11 @@ Namespace Ventrian.NewsArticles Get If (_articleSettings Is Nothing) Then - Dim objModuleController As New ModuleController() - Dim _settings As Hashtable = objModuleController.GetModuleSettings(ArchiveSettings.ModuleId) + Dim _settings As Hashtable = Common.GetModuleSettings(ArchiveSettings.ModuleId) - Dim objModule As ModuleInfo = objModuleController.GetModule(ArchiveSettings.ModuleId, ArchiveSettings.TabId) + Dim objModule As ModuleInfo = Common.GetModuleInfo(ArchiveSettings.ModuleId, ArchiveSettings.TabId) If Not (objModule Is Nothing) Then - Dim tabModuleSettings As Hashtable = objModuleController.GetTabModuleSettings(objModule.TabModuleID) + Dim tabModuleSettings As Hashtable = objModule.TabModuleSettings For Each strKey As String In tabModuleSettings.Keys _settings(strKey) = tabModuleSettings(strKey) Next @@ -197,7 +196,7 @@ Namespace Ventrian.NewsArticles Exit Sub End If - Dim newsSettings As Hashtable = objModuleSettingController.GetTabModuleSettings(mi.TabModuleID) + Dim newsSettings As Hashtable = mi.TabModuleSettings Dim excludeCategoriesRestrictive As New List(Of Integer) For Each objCategory As CategoryInfo In Categories @@ -338,7 +337,7 @@ Namespace Ventrian.NewsArticles Exit Sub End If - Dim moduleSettings As Hashtable = objModuleSettingController.GetModuleSettings(mi.ModuleID) + Dim moduleSettings As Hashtable = mi.ModuleSettings Dim objCategoriesSelected As New List(Of CategoryInfo) Dim objCategories As List(Of CategoryInfo) = objCategoryController.GetCategoriesAll(ArchiveSettings.ModuleId, parentID, Nothing, authorId, ArchiveSettings.CategoryMaxDepth, ArticleSettings.ShowPending, ArticleSettings.CategorySortType) @@ -381,7 +380,7 @@ Namespace Ventrian.NewsArticles Dim mi As ModuleInfo = objModuleSettingController.GetModule(ArchiveSettings.ModuleId, ArchiveSettings.TabId) If Not (mi Is Nothing) Then - Dim newsSettings As Hashtable = objModuleSettingController.GetTabModuleSettings(mi.TabModuleID) + Dim newsSettings As Hashtable = mi.TabModuleSettings Dim authorId As Integer = Null.NullInteger If (ArticleSettings.AuthorLoggedInUserFilter) Then diff --git a/NewsArticles.ascx.vb b/NewsArticles.ascx.vb index f144078..15f4da2 100755 --- a/NewsArticles.ascx.vb +++ b/NewsArticles.ascx.vb @@ -176,7 +176,7 @@ Namespace Ventrian.NewsArticles Try - jQuery.RegisterJQuery(Page) + 'jQuery.RegisterJQuery(Page) Catch exc As Exception 'Module failed to load ProcessModuleLoadException(Me, exc) diff --git a/NewsArticles.dnn b/NewsArticles.dnn index adc829b..baa6723 100755 --- a/NewsArticles.dnn +++ b/NewsArticles.dnn @@ -1,6 +1,6 @@ - + News Articles Allows you to publish News Articles to your portal. @@ -12,7 +12,7 @@ The license for this package is not currently included within the installation file, please check with the vendor for full license details. This package has no Release Notes - 06.02.00 + 07.03.02 @@ -860,7 +860,7 @@ - + News Articles Latest Allows you to display a list of the latest articles. @@ -921,7 +921,7 @@ - + News Articles Comments Allows you to display a list of the latest comments. @@ -982,7 +982,7 @@ - + News Articles Archives Allows you to display a list of articles by month. @@ -1043,7 +1043,7 @@ - + News Articles Search Allows you to display a list of articles by month. diff --git a/NewsSearchOptions.ascx.vb b/NewsSearchOptions.ascx.vb index d72d729..a861d01 100755 --- a/NewsSearchOptions.ascx.vb +++ b/NewsSearchOptions.ascx.vb @@ -2,6 +2,7 @@ Imports DotNetNuke.Entities.Modules Imports DotNetNuke.Entities.Tabs Imports DotNetNuke.Security +Imports DotNetNuke.Security.Permissions Imports DotNetNuke.Services.Exceptions Namespace Ventrian.NewsArticles @@ -14,13 +15,13 @@ Namespace Ventrian.NewsArticles Private Sub BindModules() Dim objDesktopModuleController As New DesktopModuleController - Dim objDesktopModuleInfo As DesktopModuleInfo = objDesktopModuleController.GetDesktopModuleByModuleName("DnnForge - NewsArticles") + Dim objDesktopModuleInfo As DesktopModuleInfo = DesktopModuleController.GetDesktopModuleByModuleName("DnnForge - NewsArticles", PortalId) If Not (objDesktopModuleInfo Is Nothing) Then Dim objTabController As New TabController() - Dim objTabs As ArrayList = objTabController.GetTabs(PortalId) - For Each objTab As DotNetNuke.Entities.Tabs.TabInfo In objTabs + Dim objTabs As TabCollection = TabController.Instance.GetTabsByPortal(PortalId) + For Each objTab As TabInfo In objTabs.Values If Not (objTab Is Nothing) Then If (objTab.IsDeleted = False) Then Dim objModules As New ModuleController @@ -28,7 +29,7 @@ Namespace Ventrian.NewsArticles Dim objModule As ModuleInfo = pair.Value If (objModule.IsDeleted = False) Then If (objModule.DesktopModuleID = objDesktopModuleInfo.DesktopModuleID) Then - If PortalSecurity.IsInRoles(objModule.AuthorizedEditRoles) = True And objModule.IsDeleted = False Then + If ModulePermissionController.CanEditModuleContent(objModule) = True And objModule.IsDeleted = False Then Dim strPath As String = objTab.TabName Dim objTabSelected As TabInfo = objTab While objTabSelected.ParentId <> Null.NullInteger diff --git a/Print.aspx.vb b/Print.aspx.vb index 785e46f..6c7517f 100755 --- a/Print.aspx.vb +++ b/Print.aspx.vb @@ -8,8 +8,10 @@ Imports System.IO Imports DotNetNuke.Common Imports DotNetNuke.Common.Utilities +Imports DotNetNuke.Entities.Host Imports DotNetNuke.Entities.Modules Imports DotNetNuke.Framework +Imports DotNetNuke.Security.Permissions Namespace Ventrian.NewsArticles @@ -101,7 +103,7 @@ Namespace Ventrian.NewsArticles Else objCSSCache(ID) = "" End If - If Not DotNetNuke.Common.Globals.PerformanceSetting = DotNetNuke.Common.Globals.PerformanceSettings.NoCaching Then + If Not Host.PerformanceSetting = PerformanceSettings.NoCaching Then DataCache.SetCache("CSS", objCSSCache) End If End If @@ -122,7 +124,7 @@ Namespace Ventrian.NewsArticles Else objCSSCache(ID) = "" End If - If Not DotNetNuke.Common.Globals.PerformanceSetting = DotNetNuke.Common.Globals.PerformanceSettings.NoCaching Then + If Not Host.PerformanceSetting = PerformanceSettings.NoCaching Then DataCache.SetCache("CSS", objCSSCache) End If End If @@ -180,7 +182,7 @@ Namespace Ventrian.NewsArticles Dim objModule As ModuleInfo = objModuleController.GetModule(objArticle.ModuleID, _tabID) If Not (objModule Is Nothing) Then - If (DotNetNuke.Security.PortalSecurity.IsInRoles(objModule.AuthorizedViewRoles) = False) Then + If (ModulePermissionController.CanViewModule(objModule) = False) Then Response.Redirect(NavigateURL(_tabID), True) End If @@ -277,10 +279,8 @@ Namespace Ventrian.NewsArticles Get If (_articleSettings Is Nothing) Then Dim objModuleController As New ModuleController - Dim settings As Hashtable = objModuleController.GetModuleSettings(_moduleID) - 'Add TabModule Settings - settings = DotNetNuke.Entities.Portals.PortalSettings.GetTabModuleSettings(_tabModuleID, settings) - Dim objModule As ModuleInfo = objModuleController.GetModule(_moduleID, _tabID) + Dim objModule As ModuleInfo = Common.GetModuleInfo(_moduleID, _tabID) + Dim settings As Hashtable =Common.JoinHashTables(objModule.ModuleSettings, objModule.TabModuleSettings) _articleSettings = New ArticleSettings(settings, Me.PortalSettings, objModule) End If Return _articleSettings diff --git a/Providers/DataProvider/SqlDataProvider/Ventrian.NewsArticles.SqlDataProvider.vbproj b/Providers/DataProvider/SqlDataProvider/Ventrian.NewsArticles.SqlDataProvider.vbproj index b1b0253..4b1912e 100755 --- a/Providers/DataProvider/SqlDataProvider/Ventrian.NewsArticles.SqlDataProvider.vbproj +++ b/Providers/DataProvider/SqlDataProvider/Ventrian.NewsArticles.SqlDataProvider.vbproj @@ -33,7 +33,7 @@ 3.5 - v3.5 + v4.5 publish\ true @@ -69,6 +69,7 @@ 1 42016,42017,42018,42019,42032,42353,42354,42355 full + false ..\..\..\..\..\bin\ @@ -88,11 +89,12 @@ 1 42016,42017,42018,42019,42032,42353,42354,42355 none + false - + False - ..\..\..\..\..\bin\DotNetNuke.dll + ..\..\..\Libraries\DotNetNuke.dll False @@ -238,13 +240,6 @@ Code - - - {25F6A930-34CD-4730-8324-D234D4637898} - Ventrian.NewsArticles - False - - False @@ -257,6 +252,12 @@ true + + + {25f6a930-34cd-4730-8324-d234d4637898} + Ventrian.NewsArticles + + diff --git a/Providers/FileProvider/CoreFileProvider.vb b/Providers/FileProvider/CoreFileProvider.vb index aff6975..6dad1d9 100755 --- a/Providers/FileProvider/CoreFileProvider.vb +++ b/Providers/FileProvider/CoreFileProvider.vb @@ -12,102 +12,93 @@ Namespace Ventrian.NewsArticles #Region " Public Methods " - Public Overrides Function AddFile(ByVal articleID As Integer, ByVal moduleID As Integer, ByVal objPostedFile As System.Web.HttpPostedFile) As Integer - - Dim objFile As New FileInfo - - objFile.ArticleID = articleID - objFile.FileName = objPostedFile.FileName - objFile.SortOrder = 0 - - Dim filesList As List(Of FileInfo) = GetFiles(articleID) - - If (filesList.Count > 0) Then - objFile.SortOrder = CType(filesList(filesList.Count - 1), FileInfo).SortOrder + 1 - End If - - Dim objPortalSettings As PortalSettings = PortalController.GetCurrentPortalSettings() - - Dim folder As String = "" - - Dim objModuleController As New ModuleController() - Dim objSettings As Hashtable = objModuleController.GetModuleSettings(moduleID) - - Dim folderID As Integer = Null.NullInteger - If (IsNumeric(HttpContext.Current.Request.Form("FolderID"))) Then - folderID = Convert.ToInt32(HttpContext.Current.Request.Form("FolderID")) - End If - - If (folderID <> Null.NullInteger) Then - Dim objFolderController As New FolderController - Dim objFolder As FolderInfo = objFolderController.GetFolderInfo(objPortalSettings.PortalId, folderID) - If (objFolder IsNot Nothing) Then - folder = objFolder.FolderPath - End If - End If - - objFile.Folder = folder - objFile.ContentType = objPostedFile.ContentType - - If (objFile.FileName.Split("."c).Length > 0) Then - objFile.Extension = objFile.FileName.Split("."c)(objFile.FileName.Split("."c).Length - 1) - - If (objFile.Extension.ToLower() = "jpg") Then - objFile.ContentType = "image/jpeg" - End If - If (objFile.Extension.ToLower() = "gif") Then - objFile.ContentType = "image/gif" - End If - If (objFile.Extension.ToLower() = "txt") Then - objFile.ContentType = "text/plain" - End If - If (objFile.Extension.ToLower() = "html") Then - objFile.ContentType = "text/html" - End If - If (objFile.Extension.ToLower() = "mp3") Then - objFile.ContentType = "audio/mpeg" - End If - - End If - objFile.Title = objFile.FileName.Replace("." & objFile.Extension, "") - - Dim filePath As String = objPortalSettings.HomeDirectoryMapPath & folder.Replace("/", "\") - - If Not (Directory.Exists(filePath)) Then - Directory.CreateDirectory(filePath) - End If - - If (File.Exists(filePath & objFile.FileName)) Then - For i As Integer = 1 To 100 - If (File.Exists(filePath & i.ToString() & "_" & objFile.FileName) = False) Then - objFile.FileName = i.ToString() & "_" & objFile.FileName - Exit For - End If - Next - End If - - objFile.Size = objPostedFile.ContentLength - objPostedFile.SaveAs(filePath & objFile.FileName) - - Dim objFileController As New FileController - objFile.FileID = objFileController.Add(objFile) - - If (articleID > 0) Then - Dim objArticleController As New ArticleController - Dim objArticle As ArticleInfo = objArticleController.GetArticle(articleID) - objArticle.FileCount = objArticle.FileCount + 1 - objArticleController.UpdateArticle(objArticle) - End If - - Return objFile.FileID + Public Overrides Function AddFile(ByVal articleID As Integer, ByVal moduleID As Integer, folderID As Integer, ByVal objPostedFile As System.Web.HttpPostedFile) As Integer - End Function + Dim objFile As New FileInfo - Public Overrides Function AddFile(ByVal articleID As Integer, ByVal moduleID As Integer, ByVal objPostedFile As HttpPostedFile, ByVal providerParams As Object) As Integer - Return AddFile(articleID, moduleID, objPostedFile) - End Function + objFile.ArticleID = articleID + objFile.FileName = objPostedFile.FileName + objFile.SortOrder = 0 + + Dim filesList As List(Of FileInfo) = GetFiles(articleID) + + If (filesList.Count > 0) Then + objFile.SortOrder = CType(filesList(filesList.Count - 1), FileInfo).SortOrder + 1 + End If + + Dim objPortalSettings As PortalSettings = PortalController.Instance.GetCurrentPortalSettings() + + Dim folder As String = "" + + If (folderID <> Null.NullInteger) Then + Dim objFolder As FolderInfo = FolderManager.Instance.GetFolder(folderID) + If (objFolder IsNot Nothing) Then + folder = objFolder.FolderPath + End If + End If + + objFile.Folder = folder + objFile.ContentType = objPostedFile.ContentType + + If (objFile.FileName.Split("."c).Length > 0) Then + objFile.Extension = objFile.FileName.Split("."c)(objFile.FileName.Split("."c).Length - 1) + + If (objFile.Extension.ToLower() = "jpg") Then + objFile.ContentType = "image/jpeg" + End If + If (objFile.Extension.ToLower() = "gif") Then + objFile.ContentType = "image/gif" + End If + If (objFile.Extension.ToLower() = "txt") Then + objFile.ContentType = "text/plain" + End If + If (objFile.Extension.ToLower() = "html") Then + objFile.ContentType = "text/html" + End If + If (objFile.Extension.ToLower() = "mp3") Then + objFile.ContentType = "audio/mpeg" + End If + + End If + objFile.Title = objFile.FileName.Replace("." & objFile.Extension, "") + + Dim filePath As String = objPortalSettings.HomeDirectoryMapPath & folder.Replace("/", "\") + + If Not (Directory.Exists(filePath)) Then + Directory.CreateDirectory(filePath) + End If + + If (File.Exists(filePath & objFile.FileName)) Then + For i As Integer = 1 To 100 + If (File.Exists(filePath & i.ToString() & "_" & objFile.FileName) = False) Then + objFile.FileName = i.ToString() & "_" & objFile.FileName + Exit For + End If + Next + End If + + objFile.Size = objPostedFile.ContentLength + objPostedFile.SaveAs(filePath & objFile.FileName) + + Dim objFileController As New FileController + objFile.FileID = objFileController.Add(objFile) + + If (articleID > 0) Then + Dim objArticleController As New ArticleController + Dim objArticle As ArticleInfo = objArticleController.GetArticle(articleID) + objArticle.FileCount = objArticle.FileCount + 1 + objArticleController.UpdateArticle(objArticle) + End If + + Return objFile.FileID + + End Function + + Public Overrides Function AddFile(ByVal articleID As Integer, ByVal moduleID As Integer, folderID As Integer, ByVal objPostedFile As HttpPostedFile, ByVal providerParams As Object) As Integer + Return AddFile(articleID, moduleID, folderID, objPostedFile) + End Function - Public Overrides Function AddExistingFile(ByVal articleID As Integer, ByVal moduleID As Integer, ByVal providerParams As Object) As Integer + Public Overrides Function AddExistingFile(ByVal articleID As Integer, ByVal moduleID As Integer, ByVal providerParams As Object) As Integer Throw New NotImplementedException() End Function @@ -119,7 +110,7 @@ Namespace Ventrian.NewsArticles Public Overrides Function GetFile(ByVal fileID As Integer) As FileInfo Dim objFileController As New FileController() Dim objFile As FileInfo = objFileController.Get(fileID) - objFile.Link = PortalController.GetCurrentPortalSettings().HomeDirectory() & objFile.Folder & objFile.FileName + objFile.Link = PortalController.Instance.GetCurrentPortalSettings().HomeDirectory() & objFile.Folder & objFile.FileName Return objFile End Function @@ -127,7 +118,7 @@ Namespace Ventrian.NewsArticles Dim objFileController As New FileController() Dim objFiles As List(Of FileInfo) = objFileController.GetFileList(articleID, Null.NullString()) For Each objFile As FileInfo In objFiles - objFile.Link = PortalController.GetCurrentPortalSettings().HomeDirectory() & objFile.Folder & objFile.FileName + objFile.Link = PortalController.Instance.GetCurrentPortalSettings().HomeDirectory() & objFile.Folder & objFile.FileName Next Return objFiles End Function diff --git a/Providers/FileProvider/FileController.vb b/Providers/FileProvider/FileController.vb index 2ebf5a5..827e879 100755 --- a/Providers/FileProvider/FileController.vb +++ b/Providers/FileProvider/FileController.vb @@ -25,7 +25,7 @@ Namespace Ventrian.NewsArticles Public Function [Get](ByVal fileID As Integer) As FileInfo - Return CType(CBO.FillObject(DataProvider.Instance().GetFile(fileID), GetType(FileInfo)), FileInfo) + Return CBO.FillObject(Of FileInfo)(DataProvider.Instance().GetFile(fileID)) End Function diff --git a/Providers/FileProvider/FileProvider.vb b/Providers/FileProvider/FileProvider.vb index 78f377c..0475bb5 100755 --- a/Providers/FileProvider/FileProvider.vb +++ b/Providers/FileProvider/FileProvider.vb @@ -33,9 +33,9 @@ Namespace Ventrian.NewsArticles #Region " Abstract methods " - Public MustOverride Function AddFile(ByVal articleID As Integer, ByVal moduleID As Integer, ByVal objPostedFile As System.Web.HttpPostedFile) As Integer - Public MustOverride Function AddFile(ByVal articleID As Integer, ByVal moduleID As Integer, ByVal objPostedFile As System.Web.HttpPostedFile, ByVal providerParams As Object) As Integer - Public MustOverride Function AddExistingFile(ByVal articleID As Integer, ByVal moduleID As Integer, ByVal providerParams As Object) As Integer + Public MustOverride Function AddFile(ByVal articleID As Integer, ByVal moduleID As Integer, folderID As Integer, ByVal objPostedFile As System.Web.HttpPostedFile) As Integer + Public MustOverride Function AddFile(ByVal articleID As Integer, ByVal moduleID As Integer, folderID As Integer, ByVal objPostedFile As System.Web.HttpPostedFile, ByVal providerParams As Object) As Integer + Public MustOverride Function AddExistingFile(ByVal articleID As Integer, ByVal moduleID As Integer, ByVal providerParams As Object) As Integer Public MustOverride Sub DeleteFile(ByVal articleID As Integer, ByVal fileID As Integer) Public MustOverride Function GetFile(ByVal fileID As Integer) As FileInfo Public MustOverride Function GetFiles(ByVal articleID As Integer) As List(Of FileInfo) diff --git a/Rss.aspx.vb b/Rss.aspx.vb index 8ceb995..48bd883 100755 --- a/Rss.aspx.vb +++ b/Rss.aspx.vb @@ -283,13 +283,13 @@ Namespace Ventrian.NewsArticles Case "PORTALNAME" Dim objLiteral As New Literal objLiteral.ID = Globals.CreateValidID("Rss-" & iPtr.ToString()) - objLiteral.Text = Server.HtmlEncode(PortalController.GetCurrentPortalSettings().PortalName) + objLiteral.Text = Server.HtmlEncode(PortalController.Instance.GetCurrentPortalSettings().PortalName) objPlaceHolder.Add(objLiteral) Case "PORTALURL" Dim objLiteral As New Literal objLiteral.ID = Globals.CreateValidID("Rss-" & iPtr.ToString()) - objLiteral.Text = Server.HtmlEncode(AddHTTP(PortalController.GetCurrentPortalSettings().PortalAlias.HTTPAlias)) + objLiteral.Text = Server.HtmlEncode(AddHTTP(PortalController.Instance.GetCurrentPortalSettings().PortalAlias.HTTPAlias)) objPlaceHolder.Add(objLiteral) End Select @@ -312,7 +312,7 @@ Namespace Ventrian.NewsArticles Private Sub ProcessItem(ByRef objPlaceHolder As ControlCollection, ByVal templateArray As String(), ByVal objArticle As ArticleInfo, ByVal articleSettings As ArticleSettings, ByVal objTab As TabInfo) - Dim portalSettings As PortalSettings = PortalController.GetCurrentPortalSettings() + Dim portalSettings As PortalSettings = PortalController.Instance.GetCurrentPortalSettings() Dim enclosureLink As String = "" Dim enclosureType As String = "" @@ -695,15 +695,14 @@ Namespace Ventrian.NewsArticles Dim _portalSettings As PortalSettings = CType(HttpContext.Current.Items("PortalSettings"), PortalSettings) Dim objModuleController As New ModuleController - Dim objModule As ModuleInfo = objModuleController.GetModule(m_moduleID, m_tabID) + Dim objModule As ModuleInfo = Common.GetModuleInfo(m_moduleID, m_tabID) Dim articleSettings As ArticleSettings If Not (objModule Is Nothing) Then Dim objTabController As New TabController() Dim objTab As TabInfo = objTabController.GetTab(objModule.TabID, _portalSettings.PortalId, False) - Dim settings As Hashtable = objModuleController.GetModuleSettings(objModule.ModuleID) - settings = PortalSettings.GetTabModuleSettings(objModule.TabModuleID, settings) + Dim settings As Hashtable =Common.JoinHashTables(objModule.ModuleSettings, objModule.TabModuleSettings) articleSettings = New ArticleSettings(settings, _portalSettings, objModule) If (settings.Contains(ArticleConstants.LAUNCH_LINKS)) Then launchLinks = Convert.ToBoolean(settings(ArticleConstants.LAUNCH_LINKS).ToString()) @@ -720,9 +719,8 @@ Namespace Ventrian.NewsArticles If (settings.Contains(ArticleConstants.ENABLE_SYNDICATION_HTML_SETTING)) Then _enableSyndicationHtml = Convert.ToBoolean(settings(ArticleConstants.ENABLE_SYNDICATION_HTML_SETTING).ToString()) End If - Dim settingsModule As Hashtable = objModuleController.GetModuleSettings(objModule.ModuleID) - If (settingsModule.Contains(ArticleConstants.SYNDICATION_SUMMARY_LENGTH)) Then - _syndicationSummaryLength = Convert.ToInt32(settingsModule(ArticleConstants.SYNDICATION_SUMMARY_LENGTH).ToString()) + If (objModule.ModuleSettings.Contains(ArticleConstants.SYNDICATION_SUMMARY_LENGTH)) Then + _syndicationSummaryLength = Convert.ToInt32(objModule.ModuleSettings(ArticleConstants.SYNDICATION_SUMMARY_LENGTH).ToString()) End If If (settings.Contains(ArticleConstants.SHOW_PENDING_SETTING)) Then showPending = Convert.ToBoolean(settings(ArticleConstants.SHOW_PENDING_SETTING).ToString()) diff --git a/RssComments.aspx.vb b/RssComments.aspx.vb index bcfc079..3953b52 100755 --- a/RssComments.aspx.vb +++ b/RssComments.aspx.vb @@ -41,19 +41,19 @@ Namespace Ventrian.NewsArticles Case "PORTALEMAIL" Dim objLiteral As New Literal objLiteral.ID = Globals.CreateValidID("Rss-" & iPtr.ToString()) - objLiteral.Text = PortalController.GetCurrentPortalSettings().Email + objLiteral.Text = PortalController.Instance.GetCurrentPortalSettings().Email objPlaceHolder.Add(objLiteral) Case "PORTALNAME" Dim objLiteral As New Literal objLiteral.ID = Globals.CreateValidID("Rss-" & iPtr.ToString()) - objLiteral.Text = Server.HtmlEncode(PortalController.GetCurrentPortalSettings().PortalName) + objLiteral.Text = Server.HtmlEncode(PortalController.Instance.GetCurrentPortalSettings().PortalName) objPlaceHolder.Add(objLiteral) Case "PORTALURL" Dim objLiteral As New Literal objLiteral.ID = Globals.CreateValidID("Rss-" & iPtr.ToString()) - objLiteral.Text = Server.HtmlEncode(AddHTTP(PortalController.GetCurrentPortalSettings().PortalAlias.HTTPAlias)) + objLiteral.Text = Server.HtmlEncode(AddHTTP(PortalController.Instance.GetCurrentPortalSettings().PortalAlias.HTTPAlias)) objPlaceHolder.Add(objLiteral) End Select @@ -66,7 +66,7 @@ Namespace Ventrian.NewsArticles Private Sub ProcessItem(ByRef objPlaceHolder As ControlCollection, ByVal templateArray As String(), ByVal objArticle As ArticleInfo, ByVal objComment As CommentInfo, ByVal articleSettings As ArticleSettings) - Dim portalSettings As PortalSettings = PortalController.GetCurrentPortalSettings() + Dim portalSettings As PortalSettings = PortalController.Instance.GetCurrentPortalSettings() For iPtr As Integer = 0 To templateArray.Length - 1 Step 2 @@ -173,7 +173,7 @@ Namespace Ventrian.NewsArticles Dim articleSettings As ArticleSettings If Not (objModule Is Nothing) Then - Dim settings As Hashtable = objModuleController.GetTabModuleSettings(objModule.TabModuleID) + Dim settings As Hashtable = objModule.TabModuleSettings articleSettings = New ArticleSettings(settings, _portalSettings, objModule) If (settings.Contains(ArticleConstants.LAUNCH_LINKS)) Then launchLinks = Convert.ToBoolean(settings(ArticleConstants.LAUNCH_LINKS).ToString()) diff --git a/SqlDataProvider/00.00.01.SqlDataProvider b/SqlDataProvider/00.00.01.SqlDataProvider new file mode 100644 index 0000000..55d4ae4 --- /dev/null +++ b/SqlDataProvider/00.00.01.SqlDataProvider @@ -0,0 +1,442 @@ +if not exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article') and OBJECTPROPERTY(id, N'IsTable') = 1) +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [ArticleID] [int] IDENTITY (1, 1) NOT NULL , + [CategoryID] [int] NOT NULL , + [AuthorID] [int] NOT NULL , + [ApproverID] [int] NULL , + [CreatedDate] [datetime] NOT NULL , + [LastUpdate] [datetime] NOT NULL , + [Title] [nvarchar] (255) NOT NULL , + [Summary] [nvarchar] (4000) NOT NULL , + [IsApproved] [bit] NOT NULL , + [NumberOfViews] [int] NOT NULL +) ON [PRIMARY] +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category') and OBJECTPROPERTY(id, N'IsTable') = 1) +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category ( + [CategoryID] [int] IDENTITY (1, 1) NOT NULL , + [ModuleID] [int] NOT NULL , + [Name] [nvarchar] (255) NOT NULL , + [Image] [nvarchar] (255) NULL +) ON [PRIMARY] +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment') and OBJECTPROPERTY(id, N'IsTable') = 1) +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ( + [CommentID] [int] IDENTITY (1, 1) NOT NULL , + [ArticleID] [int] NOT NULL , + [UserID] [int] NOT NULL , + [CreatedDate] [datetime] NOT NULL , + [Comment] [ntext] NOT NULL +) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'PK_{objectQualifier}DnnForge_NewsArticles_Article') and OBJECTPROPERTY(id, N'IsPrimaryKey') = 1) +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_Article] PRIMARY KEY CLUSTERED + ( + [ArticleID] + ) ON [PRIMARY] +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'DF_{objectQualifier}DnnForge_NewsArticles_Article_CreatedDate') and OBJECTPROPERTY(id, N'IsConstraint') = 1) +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + CONSTRAINT [DF_{objectQualifier}DnnForge_NewsArticles_Article_CreatedDate] DEFAULT (getdate()) FOR [CreatedDate] +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'DF_{objectQualifier}DnnForge_NewsArticles_Article_LastUpdate') and OBJECTPROPERTY(id, N'IsConstraint') = 1) +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + CONSTRAINT [DF_{objectQualifier}DnnForge_NewsArticles_Article_LastUpdate] DEFAULT (getdate()) FOR [LastUpdate] +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'DF_{objectQualifier}DnnForge_NewsArticles_Article_IsApproved') and OBJECTPROPERTY(id, N'IsConstraint') = 1) +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + CONSTRAINT [DF_{objectQualifier}DnnForge_NewsArticles_Article_IsApproved] DEFAULT (0) FOR [IsApproved] +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'DF_{objectQualifier}DnnForge_NewsArticles_Article_NumberOfViews') and OBJECTPROPERTY(id, N'IsConstraint') = 1) +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + CONSTRAINT [DF_{objectQualifier}DnnForge_NewsArticles_Article_NumberOfViews] DEFAULT (0) FOR [NumberOfViews] +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'PK_{objectQualifier}DnnForge_NewsArticles_Category') and OBJECTPROPERTY(id, N'IsPrimaryKey') = 1) +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category ADD + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_Category] PRIMARY KEY CLUSTERED + ( + [CategoryID] + ) ON [PRIMARY] +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'PK_{objectQualifier}DnnForge_NewsArticles_Comment') and OBJECTPROPERTY(id, N'IsPrimaryKey') = 1) +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ADD + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_Comment] PRIMARY KEY CLUSTERED + ( + [CommentID] + ) ON [PRIMARY] +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'DF_{objectQualifier}DnnForge_NewsArticles_Comment_CreatedDate') and OBJECTPROPERTY(id, N'IsConstraint') = 1) +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ADD + CONSTRAINT [DF_{objectQualifier}DnnForge_NewsArticles_Comment_CreatedDate] DEFAULT (getdate()) FOR [CreatedDate] +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'FK_{objectQualifier}DnnForge_NewsArticles_Article_{objectQualifier}DnnForge_NewsArticles_Category') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + CONSTRAINT [FK_{objectQualifier}DnnForge_NewsArticles_Article_{objectQualifier}DnnForge_NewsArticles_Category] FOREIGN KEY + ( + [CategoryID] + ) REFERENCES {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category ( + [CategoryID] + ) ON DELETE CASCADE +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'FK_{objectQualifier}DnnForge_NewsArticles_Article_{objectQualifier}Users') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + CONSTRAINT [FK_{objectQualifier}DnnForge_NewsArticles_Article_{objectQualifier}Users] FOREIGN KEY + ( + [AuthorID] + ) REFERENCES {databaseOwner}{objectQualifier}Users ( + [UserID] + ) ON DELETE CASCADE +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'FK_{objectQualifier}DnnForge_NewsArticles_Category_{objectQualifier}Modules') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category ADD + CONSTRAINT [FK_{objectQualifier}DnnForge_NewsArticles_Category_{objectQualifier}Modules] FOREIGN KEY + ( + [ModuleID] + ) REFERENCES {databaseOwner}{objectQualifier}Modules ( + [ModuleID] + ) ON DELETE CASCADE +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'FK_{objectQualifier}DnnForge_NewsArticles_Comment_{objectQualifier}DnnForge_NewsArticles_Article') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ADD + CONSTRAINT [FK_{objectQualifier}DnnForge_NewsArticles_Comment_{objectQualifier}DnnForge_NewsArticles_Article] FOREIGN KEY + ( + [ArticleID] + ) REFERENCES {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [ArticleID] + ) ON DELETE CASCADE +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCategory') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCategory +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteArticle') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteArticle +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteCategory') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteCategory +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteComment') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteComment +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByApproved') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByApproved +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategory') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategory +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryList') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryList +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCategory') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCategory +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle + @CategoryID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary nvarchar(4000), + @IsApproved bit, + @NumberOfViews int +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [CategoryID], + [AuthorID], + [ApproverID], + [CreatedDate], + [LastUpdate], + [Title], + [Summary], + [IsApproved], + [NumberOfViews] +) VALUES ( + @CategoryID, + @AuthorID, + @ApproverID, + @CreatedDate, + @LastUpdate, + @Title, + @Summary, + @IsApproved, + @NumberOfViews +) + +select SCOPE_IDENTITY() +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCategory + @ModuleID int, + @Name nvarchar(255), + @Image nvarchar(255) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category ( + [ModuleID], + [Name], + [Image] +) VALUES ( + @ModuleID, + @Name, + @Image +) + +select SCOPE_IDENTITY() +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment + @ArticleID int, + @UserID int, + @Comment ntext +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ( + [ArticleID], + [UserID], + [Comment] +) VALUES ( + @ArticleID, + @UserID, + @Comment +) + +select SCOPE_IDENTITY() +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteArticle + @ArticleID int +AS + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +WHERE + [ArticleID] = @ArticleID + +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteCategory + @CategoryID int +AS + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +WHERE + [CategoryID] = @CategoryID + +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteComment + @CommentID int +AS + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment +WHERE + [CommentID] = @CommentID + +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList + @ModuleID int +AS +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved + @ModuleID int, + @IsApproved bit +AS +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor + @ModuleID int, + @AuthorID int +AS +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByApproved + @ModuleID int, + @AuthorID int, + @IsApproved bit +AS +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID int, + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255) +AS +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategory + @CategoryID int +AS + +SELECT + [CategoryID], + [ModuleID], + [Name], + [Image] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +WHERE + [CategoryID] = @CategoryID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryList + @ModuleID int +AS + +SELECT + [CategoryID], + [ModuleID], + [Name], + [Image] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +WHERE + [ModuleID] = @ModuleID + +ORDER BY Name +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment + @CommentID int +AS +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList + @ArticleID int +AS +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle + @ArticleID int, + @CategoryID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary nvarchar(4000), + @IsApproved bit, + @NumberOfViews int +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article SET + [CategoryID] = @CategoryID, + [AuthorID] = @AuthorID, + [ApproverID] = @ApproverID, + [CreatedDate] = @CreatedDate, + [LastUpdate] = @LastUpdate, + [Title] = @Title, + [Summary] = @Summary, + [IsApproved] = @IsApproved, + [NumberOfViews] = @NumberOfViews +WHERE + [ArticleID] = @ArticleID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCategory + @CategoryID int, + @ModuleID int, + @Name nvarchar(255), + @Image nvarchar(255) +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category SET + [ModuleID] = @ModuleID, + [Name] = @Name, + [Image] = @Image +WHERE + [CategoryID] = @CategoryID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment + @CommentID int, + @ArticleID int, + @UserID int, + @Comment ntext +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment SET + [ArticleID] = @ArticleID, + [UserID] = @UserID, + [Comment] = @Comment +WHERE + [CommentID] = @CommentID +GO diff --git a/SqlDataProvider/00.00.02.SqlDataProvider b/SqlDataProvider/00.00.02.SqlDataProvider new file mode 100644 index 0000000..692bbf9 --- /dev/null +++ b/SqlDataProvider/00.00.02.SqlDataProvider @@ -0,0 +1,271 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + Add [IsDraft] bit NOT NULL DEFAULT 0 +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page') and OBJECTPROPERTY(id, N'IsTable') = 1) +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page ( + [PageID] [int] IDENTITY (1, 1) NOT NULL , + [ArticleID] [int] NOT NULL , + [Title] [nvarchar] (255) NOT NULL , + [PageText] [ntext] NOT NULL , + [SortOrder] [int] NOT NULL +) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'PK_{objectQualifier}DnnForge_NewsArticles_Page') and OBJECTPROPERTY(id, N'IsPrimaryKey') = 1) +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page ADD + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_Page] PRIMARY KEY CLUSTERED + ( + [PageID] + ) ON [PRIMARY] +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'DF_{objectQualifier}DnnForge_NewsArticles_Page_SortOrder') and OBJECTPROPERTY(id, N'IsConstraint') = 1) +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page ADD + CONSTRAINT [DF_{objectQualifier}DnnForge_NewsArticles_Page_SortOrder] DEFAULT (0) FOR [SortOrder] +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'FK_{objectQualifier}DnnForge_NewsArticles_Page_{objectQualifier}DnnForge_NewsArticles_Article') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page ADD + CONSTRAINT [FK_{objectQualifier}DnnForge_NewsArticles_Page_{objectQualifier}DnnForge_NewsArticles_Article] FOREIGN KEY + ( + [ArticleID] + ) REFERENCES {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [ArticleID] + ) ON DELETE CASCADE +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle + @CategoryID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary nvarchar(4000), + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [CategoryID], + [AuthorID], + [ApproverID], + [CreatedDate], + [LastUpdate], + [Title], + [Summary], + [IsApproved], + [NumberOfViews], + [IsDraft] +) VALUES ( + @CategoryID, + @AuthorID, + @ApproverID, + @CreatedDate, + @LastUpdate, + @Title, + @Summary, + @IsApproved, + @NumberOfViews, + @IsDraft +) + +select SCOPE_IDENTITY() +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddPage') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddPage +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddPage + @ArticleID int, + @Title nvarchar(255), + @PageText ntext, + @SortOrder int +AS + +declare @count int + +select @count = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where ArticleID = @ArticleID) + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page ( + [ArticleID], + [Title], + [PageText], + [SortOrder] +) VALUES ( + @ArticleID, + @Title, + @PageText, + @count +) + +select SCOPE_IDENTITY() +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeletePage') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeletePage +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeletePage + @PageID int +AS + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page +WHERE + [PageID] = @PageID +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList + @ModuleID int +AS +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved + @ModuleID int, + @IsApproved bit +AS +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor + @ModuleID int, + @AuthorID int +AS +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByApproved') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByApproved +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus + @ModuleID int, + @AuthorID int, + @IsApproved bit, + @IsDraft bit +AS +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetPage') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetPage +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetPage + @PageID int +AS + +SELECT + [PageID], + [ArticleID], + [Title], + [PageText], + [SortOrder] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page +WHERE + [PageID] = @PageID +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetPageList') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetPageList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetPageList + @ArticleID int +AS + +SELECT + [PageID], + [ArticleID], + [Title], + [PageText], + [SortOrder] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page + +WHERE + [ArticleID] = @ArticleID + +ORDER BY + [SortOrder] ASC +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle + @ArticleID int, + @CategoryID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary nvarchar(4000), + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article SET + [CategoryID] = @CategoryID, + [AuthorID] = @AuthorID, + [ApproverID] = @ApproverID, + [CreatedDate] = @CreatedDate, + [LastUpdate] = @LastUpdate, + [Title] = @Title, + [Summary] = @Summary, + [IsApproved] = @IsApproved, + [NumberOfViews] = @NumberOfViews, + [IsDraft] = @IsDraft +WHERE + [ArticleID] = @ArticleID +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdatePage') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdatePage +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdatePage + @PageID int, + @ArticleID int, + @Title nvarchar(255), + @PageText ntext, + @SortOrder int +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page SET + [ArticleID] = @ArticleID, + [Title] = @Title, + [PageText] = @PageText, + [SortOrder] = @SortOrder +WHERE + [PageID] = @PageID +GO diff --git a/SqlDataProvider/00.00.03.SqlDataProvider b/SqlDataProvider/00.00.03.SqlDataProvider new file mode 100644 index 0000000..c2cb0cf --- /dev/null +++ b/SqlDataProvider/00.00.03.SqlDataProvider @@ -0,0 +1,14 @@ +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID int, + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255) +AS +GO diff --git a/SqlDataProvider/00.00.04.SqlDataProvider b/SqlDataProvider/00.00.04.SqlDataProvider new file mode 100644 index 0000000..81ab8d3 --- /dev/null +++ b/SqlDataProvider/00.00.04.SqlDataProvider @@ -0,0 +1,8 @@ +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryStatistics') and OBJECTPROPERTY(id, N'IsProcedure') = 1) +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryStatistics +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryStatistics + @ModuleID int +AS +GO diff --git a/SqlDataProvider/00.00.05.SqlDataProvider b/SqlDataProvider/00.00.05.SqlDataProvider new file mode 100644 index 0000000..0b13bbd --- /dev/null +++ b/SqlDataProvider/00.00.05.SqlDataProvider @@ -0,0 +1,255 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + StartDate datetime NULL, + EndDate datetime NULL, + ModuleID int NULL +GO + +UPDATE + {databaseOwner}{objectQualifier}dnnforge_newsarticles_article +SET + {databaseOwner}{objectQualifier}dnnforge_newsarticles_article.moduleid = (select moduleid from {databaseOwner}{objectQualifier}dnnforge_newsarticles_category where {databaseOwner}{objectQualifier}dnnforge_newsarticles_category.categoryid = {databaseOwner}{objectQualifier}dnnforge_newsarticles_article.categoryid) +GO + +if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories') and OBJECTPROPERTY(id, N'IsUserTable') = 1) +drop table {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories +GO + +if not exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories') and OBJECTPROPERTY(id, N'IsUserTable') = 1) +BEGIN +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ( + [ArticleID] [int] NOT NULL , + [CategoryID] [int] NOT NULL +) ON [PRIMARY] +END +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories WITH NOCHECK ADD + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_ArticleCategories] PRIMARY KEY CLUSTERED + ( + [ArticleID], + [CategoryID] + ) ON [PRIMARY] +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ADD + CONSTRAINT FK_{objectQualifier}DnnForge_NewsArticles_ArticleCategories_DnnForge_NewsArticles_Article FOREIGN KEY + ( + [ArticleID] + ) REFERENCES {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [ArticleID] + ) , + CONSTRAINT FK_{objectQualifier}DnnForge_NewsArticles_ArticleCategories_DnnForge_NewsArticles_Category FOREIGN KEY + ( + [CategoryID] + ) REFERENCES {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category ( + [CategoryID] + ) +GO + +insert into {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories select ArticleID, CategoryID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + DROP CONSTRAINT FK_{objectQualifier}DnnForge_NewsArticles_Article_{objectQualifier}DnnForge_NewsArticles_Category +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + DROP COLUMN CategoryID +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article WITH NOCHECK ADD CONSTRAINT + FK_{objectQualifier}DnnForge_NewsArticles_Article_Modules FOREIGN KEY + ( + ModuleID + ) REFERENCES {databaseOwner}{objectQualifier}Modules + ( + ModuleID + ) ON DELETE CASCADE + +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle + @ArticleID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary nvarchar(4000), + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article SET + [AuthorID] = @AuthorID, + [ApproverID] = @ApproverID, + [CreatedDate] = @CreatedDate, + [LastUpdate] = @LastUpdate, + [Title] = @Title, + [Summary] = @Summary, + [IsApproved] = @IsApproved, + [NumberOfViews] = @NumberOfViews, + [IsDraft] = @IsDraft, + [StartDate] = @StartDate, + [EndDate] = @EndDate, + [ModuleID] = @ModuleID +WHERE + [ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary nvarchar(4000), + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [AuthorID], + [ApproverID], + [CreatedDate], + [LastUpdate], + [Title], + [Summary], + [IsApproved], + [NumberOfViews], + [IsDraft], + [StartDate], + [EndDate], + [ModuleID] +) VALUES ( + @AuthorID, + @ApproverID, + @CreatedDate, + @LastUpdate, + @Title, + @Summary, + @IsApproved, + @NumberOfViews, + @IsDraft, + @StartDate, + @EndDate, + @ModuleID +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList + @ModuleID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved + @ModuleID int, + @IsApproved bit +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor + @ModuleID int, + @AuthorID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus + @ModuleID int, + @AuthorID int, + @IsApproved bit, + @IsDraft bit +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255) +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryStatistics +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryStatistics + @ModuleID int +AS +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteArticleCategories + @ArticleID int +AS + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories +WHERE + [ArticleID] = @ArticleID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticleCategory + @ArticleID int, + @CategoryID int +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories( ArticleID, CategoryID ) +VALUES (@ArticleID, @CategoryID) +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleCategories + @ArticleID int +AS + +SELECT + Category.CategoryID, + Category.[Name] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories, {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category Category + +WHERE + ArticleCategories.CategoryID = Category.CategoryID + AND + ArticleCategories.ArticleID = @ArticleID +GO diff --git a/SqlDataProvider/00.00.06.SqlDataProvider b/SqlDataProvider/00.00.06.SqlDataProvider new file mode 100644 index 0000000..6da1874 --- /dev/null +++ b/SqlDataProvider/00.00.06.SqlDataProvider @@ -0,0 +1,13 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255) +AS +GO diff --git a/SqlDataProvider/00.00.07.SqlDataProvider b/SqlDataProvider/00.00.07.SqlDataProvider new file mode 100644 index 0000000..04a7f21 --- /dev/null +++ b/SqlDataProvider/00.00.07.SqlDataProvider @@ -0,0 +1,144 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + ImageUrl nvarchar(255) NULL +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary nvarchar(4000), + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [AuthorID], + [ApproverID], + [CreatedDate], + [LastUpdate], + [Title], + [Summary], + [IsApproved], + [NumberOfViews], + [IsDraft], + [StartDate], + [EndDate], + [ModuleID], + [ImageUrl] +) VALUES ( + @AuthorID, + @ApproverID, + @CreatedDate, + @LastUpdate, + @Title, + @Summary, + @IsApproved, + @NumberOfViews, + @IsDraft, + @StartDate, + @EndDate, + @ModuleID, + @ImageUrl +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle + @ArticleID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary nvarchar(4000), + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255) +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article SET + [AuthorID] = @AuthorID, + [ApproverID] = @ApproverID, + [CreatedDate] = @CreatedDate, + [LastUpdate] = @LastUpdate, + [Title] = @Title, + [Summary] = @Summary, + [IsApproved] = @IsApproved, + [NumberOfViews] = @NumberOfViews, + [IsDraft] = @IsDraft, + [StartDate] = @StartDate, + [EndDate] = @EndDate, + [ModuleID] = @ModuleID, + [ImageUrl] = @ImageUrl +WHERE + [ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved + @ModuleID int, + @IsApproved bit +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor + @ModuleID int, + @AuthorID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus + @ModuleID int, + @AuthorID int, + @IsApproved bit, + @IsDraft bit +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255) +AS +GO diff --git a/SqlDataProvider/00.00.10.SqlDataProvider b/SqlDataProvider/00.00.10.SqlDataProvider new file mode 100644 index 0000000..7a3d1a5 --- /dev/null +++ b/SqlDataProvider/00.00.10.SqlDataProvider @@ -0,0 +1,15 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteArticle + @ArticleID int +AS + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories +WHERE + [ArticleID] = @ArticleID + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +WHERE + [ArticleID] = @ArticleID +GO diff --git a/SqlDataProvider/00.01.00.SqlDataProvider b/SqlDataProvider/00.01.00.SqlDataProvider new file mode 100644 index 0000000..a1da093 --- /dev/null +++ b/SqlDataProvider/00.01.00.SqlDataProvider @@ -0,0 +1,269 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + IsFeatured bit NOT NULL CONSTRAINT DF_{objectQualifier}DnnForge_NewsArticles_Article_IsFeatured DEFAULT 0 +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment + DROP CONSTRAINT FK_{objectQualifier}DnnForge_NewsArticles_Comment_{objectQualifier}DnnForge_NewsArticles_Article +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ADD + Rating float NULL, + RemoteAddress nvarchar(50) NULL +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment WITH NOCHECK ADD CONSTRAINT + FK_{objectQualifier}DnnForge_NewsArticles_Comment_{objectQualifier}DnnForge_NewsArticles_Article FOREIGN KEY + ( + ArticleID + ) REFERENCES {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + ( + ArticleID + ) ON DELETE CASCADE + +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary nvarchar(4000), + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [AuthorID], + [ApproverID], + [CreatedDate], + [LastUpdate], + [Title], + [Summary], + [IsApproved], + [NumberOfViews], + [IsDraft], + [StartDate], + [EndDate], + [ModuleID], + [ImageUrl], + [IsFeatured] +) VALUES ( + @AuthorID, + @ApproverID, + @CreatedDate, + @LastUpdate, + @Title, + @Summary, + @IsApproved, + @NumberOfViews, + @IsDraft, + @StartDate, + @EndDate, + @ModuleID, + @ImageUrl, + @IsFeatured +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle + @ArticleID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary nvarchar(4000), + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article SET + [AuthorID] = @AuthorID, + [ApproverID] = @ApproverID, + [CreatedDate] = @CreatedDate, + [LastUpdate] = @LastUpdate, + [Title] = @Title, + [Summary] = @Summary, + [IsApproved] = @IsApproved, + [NumberOfViews] = @NumberOfViews, + [IsDraft] = @IsDraft, + [StartDate] = @StartDate, + [EndDate] = @EndDate, + [ModuleID] = @ModuleID, + [ImageUrl] = @ImageUrl, + [IsFeatured] = @IsFeatured +WHERE + [ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved + @ModuleID int, + @IsApproved bit +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor + @ModuleID int, + @AuthorID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus + @ModuleID int, + @AuthorID int, + @IsApproved bit, + @IsDraft bit +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList + @ModuleID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment + @ArticleID int, + @UserID int, + @Comment ntext, + @Rating float, + @RemoteAddress nvarchar(50) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ( + [ArticleID], + [UserID], + [Comment], + [Rating], + [RemoteAddress] +) VALUES ( + @ArticleID, + @UserID, + @Comment, + @Rating, + @RemoteAddress +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment + @CommentID int, + @ArticleID int, + @UserID int, + @Comment ntext, + @Rating float, + @RemoteAddress nvarchar(50) +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment SET + [ArticleID] = @ArticleID, + [UserID] = @UserID, + [Comment] = @Comment, + [Rating] = @Rating, + [RemoteAddress] = @RemoteAddress +WHERE + [CommentID] = @CommentID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment + @CommentID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList + @ArticleID int +AS +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorList + @ModuleID int +AS + +SELECT DISTINCT + Authors.UserID, + Authors.Username, + Authors.FirstName, + Authors.LastName + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Articles, {databaseOwner}{objectQualifier}Users Authors + +WHERE + Articles.AuthorID = Authors.UserID + and + Articles.ModuleID = @ModuleID + and + Articles.IsApproved = 1 + +ORDER BY + Authors.FirstName, Authors.LastName +GO diff --git a/SqlDataProvider/00.01.01.SqlDataProvider b/SqlDataProvider/00.01.01.SqlDataProvider new file mode 100644 index 0000000..3479865 --- /dev/null +++ b/SqlDataProvider/00.01.01.SqlDataProvider @@ -0,0 +1,16 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit +AS +GO diff --git a/SqlDataProvider/00.01.02.SqlDataProvider b/SqlDataProvider/00.01.02.SqlDataProvider new file mode 100644 index 0000000..d7c25f7 --- /dev/null +++ b/SqlDataProvider/00.01.02.SqlDataProvider @@ -0,0 +1,291 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + DROP CONSTRAINT FK_{objectQualifier}DnnForge_NewsArticles_Article_{objectQualifier}Users +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + DROP CONSTRAINT FK_{objectQualifier}DnnForge_NewsArticles_Article_Modules +GO + +CREATE TABLE {databaseOwner}{objectQualifier}Tmp_DnnForge_NewsArticles_Article + ( + ArticleID int NOT NULL IDENTITY (1, 1), + AuthorID int NOT NULL, + ApproverID int NULL, + CreatedDate datetime NOT NULL, + LastUpdate datetime NOT NULL, + Title nvarchar(255) NOT NULL, + Summary ntext NOT NULL, + IsApproved bit NOT NULL, + NumberOfViews int NOT NULL, + IsDraft bit NOT NULL, + StartDate datetime NULL, + EndDate datetime NULL, + ModuleID int NULL, + ImageUrl nvarchar(255) NULL, + IsFeatured bit NOT NULL + ) ON [PRIMARY] + TEXTIMAGE_ON [PRIMARY] +GO + +SET IDENTITY_INSERT {databaseOwner}{objectQualifier}Tmp_DnnForge_NewsArticles_Article ON +GO + +IF EXISTS(SELECT * FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article) + EXEC('INSERT INTO {databaseOwner}{objectQualifier}Tmp_DnnForge_NewsArticles_Article (ArticleID, AuthorID, ApproverID, CreatedDate, LastUpdate, Title, Summary, IsApproved, NumberOfViews, IsDraft, StartDate, EndDate, ModuleID, ImageUrl, IsFeatured) + SELECT ArticleID, AuthorID, ApproverID, CreatedDate, LastUpdate, Title, CONVERT(ntext, Summary), IsApproved, NumberOfViews, IsDraft, StartDate, EndDate, ModuleID, ImageUrl, IsFeatured FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article (HOLDLOCK TABLOCKX)') +GO + +SET IDENTITY_INSERT {databaseOwner}{objectQualifier}Tmp_DnnForge_NewsArticles_Article OFF +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories + DROP CONSTRAINT FK_{objectQualifier}DnnForge_NewsArticles_ArticleCategories_DnnForge_NewsArticles_Article +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment + DROP CONSTRAINT FK_{objectQualifier}DnnForge_NewsArticles_Comment_{objectQualifier}DnnForge_NewsArticles_Article +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page + DROP CONSTRAINT FK_{objectQualifier}DnnForge_NewsArticles_Page_{objectQualifier}DnnForge_NewsArticles_Article +GO + +DROP TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +GO + +EXECUTE sp_rename N'{objectQualifier}Tmp_DnnForge_NewsArticles_Article', N'{objectQualifier}DnnForge_NewsArticles_Article', 'OBJECT' +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD CONSTRAINT + PK_{objectQualifier}DnnForge_NewsArticles_Article PRIMARY KEY CLUSTERED + ( + ArticleID + ) ON [PRIMARY] + +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article WITH NOCHECK ADD CONSTRAINT + FK_{objectQualifier}DnnForge_NewsArticles_Article_Modules FOREIGN KEY + ( + ModuleID + ) REFERENCES {databaseOwner}{objectQualifier}Modules + ( + ModuleID + ) ON DELETE CASCADE + + +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article WITH NOCHECK ADD CONSTRAINT + FK_{objectQualifier}DnnForge_NewsArticles_Article_Users FOREIGN KEY + ( + AuthorID + ) REFERENCES {databaseOwner}{objectQualifier}Users + ( + UserID + ) ON DELETE CASCADE + +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page WITH NOCHECK ADD CONSTRAINT + FK_{objectQualifier}DnnForge_NewsArticles_Page_{objectQualifier}DnnForge_NewsArticles_Article FOREIGN KEY + ( + ArticleID + ) REFERENCES {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + ( + ArticleID + ) ON DELETE CASCADE + +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment WITH NOCHECK ADD CONSTRAINT + FK_{objectQualifier}DnnForge_NewsArticles_Comment_{objectQualifier}DnnForge_NewsArticles_Article FOREIGN KEY + ( + ArticleID + ) REFERENCES {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + ( + ArticleID + ) ON DELETE CASCADE + + +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories WITH NOCHECK ADD CONSTRAINT + FK_{objectQualifier}DnnForge_NewsArticles_ArticleCategories_{objectQualifier}DnnForge_NewsArticles_Article FOREIGN KEY + ( + ArticleID + ) REFERENCES {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + ( + ArticleID + ) + +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + LastUpdateID int NULL +GO + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article SET LastUpdateID = AuthorID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [AuthorID], + [ApproverID], + [CreatedDate], + [LastUpdate], + [Title], + [Summary], + [IsApproved], + [NumberOfViews], + [IsDraft], + [StartDate], + [EndDate], + [ModuleID], + [ImageUrl], + [IsFeatured], + [LastUpdateID] +) VALUES ( + @AuthorID, + @ApproverID, + @CreatedDate, + @LastUpdate, + @Title, + @Summary, + @IsApproved, + @NumberOfViews, + @IsDraft, + @StartDate, + @EndDate, + @ModuleID, + @ImageUrl, + @IsFeatured, + @LastUpdateID +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle + @ArticleID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article SET + [AuthorID] = @AuthorID, + [ApproverID] = @ApproverID, + [CreatedDate] = @CreatedDate, + [LastUpdate] = @LastUpdate, + [Title] = @Title, + [Summary] = @Summary, + [IsApproved] = @IsApproved, + [NumberOfViews] = @NumberOfViews, + [IsDraft] = @IsDraft, + [StartDate] = @StartDate, + [EndDate] = @EndDate, + [ModuleID] = @ModuleID, + [ImageUrl] = @ImageUrl, + [IsFeatured] = @IsFeatured, + [LastUpdateID] = @LastUpdateID +WHERE + [ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved + @ModuleID int, + @IsApproved bit +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor + @ModuleID int, + @AuthorID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus + @ModuleID int, + @AuthorID int, + @IsApproved bit, + @IsDraft bit +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList + @ModuleID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit +AS +GO diff --git a/SqlDataProvider/00.02.00.SqlDataProvider b/SqlDataProvider/00.02.00.SqlDataProvider new file mode 100644 index 0000000..aa1724c --- /dev/null +++ b/SqlDataProvider/00.02.00.SqlDataProvider @@ -0,0 +1,15 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteCategory + @CategoryID int +AS + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories +WHERE + [CategoryID] = @CategoryID + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +WHERE + [CategoryID] = @CategoryID +GO diff --git a/SqlDataProvider/00.02.05.SqlDataProvider b/SqlDataProvider/00.02.05.SqlDataProvider new file mode 100644 index 0000000..76ca8b4 --- /dev/null +++ b/SqlDataProvider/00.02.05.SqlDataProvider @@ -0,0 +1,111 @@ +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_EmailTemplate ( + [TemplateID] [int] IDENTITY (1, 1) NOT NULL , + [ModuleID] [int] NOT NULL , + [Name] [nvarchar] (50) NOT NULL , + [Subject] [nvarchar] (255) NOT NULL , + [Template] [ntext] NOT NULL +) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_EmailTemplate ADD + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_EmailTemplate] PRIMARY KEY CLUSTERED + ( + [TemplateID] + ) ON [PRIMARY] +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_EmailTemplateGet + @TemplateID int +AS + +SELECT + [TemplateID], + [ModuleID], + [Name], + [Subject], + [Template] +FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_EmailTemplate +WHERE + [TemplateID] = @TemplateID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_EmailTemplateList + @ModuleID int +AS + +SELECT + [TemplateID], + [ModuleID], + [Name], + [Subject], + [Template] +FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_EmailTemplate +WHERE + [ModuleID] = @ModuleID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_EmailTemplateAdd + @ModuleID int, + @Name nvarchar(50), + @Subject nvarchar(255), + @Template ntext +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_EmailTemplate ( + [ModuleID], + [Name], + [Subject], + [Template] +) VALUES ( + @ModuleID, + @Name, + @Subject, + @Template +) + +select SCOPE_IDENTITY() +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_EmailTemplateUpdate + @TemplateID int, + @ModuleID int, + @Name nvarchar(50), + @Subject nvarchar(255), + @Template ntext +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_EmailTemplate SET + [ModuleID] = @ModuleID, + [Name] = @Name, + [Subject] = @Subject, + [Template] = @Template +WHERE + [TemplateID] = @TemplateID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_EmailTemplateDelete + @TemplateID int +AS + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_EmailTemplate +WHERE + [TemplateID] = @TemplateID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_EmailTemplateGetByName + @ModuleID int, + @Name nvarchar(50) +AS + +SELECT + [TemplateID], + [ModuleID], + [Name], + [Subject], + [Template] +FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_EmailTemplate +WHERE + [ModuleID] = @ModuleID + and + [Name] = @Name +GO diff --git a/SqlDataProvider/00.02.07.SqlDataProvider b/SqlDataProvider/00.02.07.SqlDataProvider new file mode 100644 index 0000000..8a841e6 --- /dev/null +++ b/SqlDataProvider/00.02.07.SqlDataProvider @@ -0,0 +1,4 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + DROP CONSTRAINT FK_{objectQualifier}DnnForge_NewsArticles_Article_Users +GO + diff --git a/SqlDataProvider/00.03.00.SqlDataProvider b/SqlDataProvider/00.03.00.SqlDataProvider new file mode 100644 index 0000000..003edf4 --- /dev/null +++ b/SqlDataProvider/00.03.00.SqlDataProvider @@ -0,0 +1,7 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +GO diff --git a/SqlDataProvider/00.03.02.SqlDataProvider b/SqlDataProvider/00.03.02.SqlDataProvider new file mode 100644 index 0000000..545140e --- /dev/null +++ b/SqlDataProvider/00.03.02.SqlDataProvider @@ -0,0 +1,8 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved + @ModuleID int, + @IsApproved bit +AS +GO diff --git a/SqlDataProvider/00.04.02.SqlDataProvider b/SqlDataProvider/00.04.02.SqlDataProvider new file mode 100644 index 0000000..66f89b0 --- /dev/null +++ b/SqlDataProvider/00.04.02.SqlDataProvider @@ -0,0 +1,18 @@ + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @SortBy varchar(50) +AS +GO diff --git a/SqlDataProvider/00.04.03.SqlDataProvider b/SqlDataProvider/00.04.03.SqlDataProvider new file mode 100644 index 0000000..6f77a10 --- /dev/null +++ b/SqlDataProvider/00.04.03.SqlDataProvider @@ -0,0 +1,171 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + URL nvarchar(255) NULL +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @SortBy varchar(50) +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [AuthorID], + [ApproverID], + [CreatedDate], + [LastUpdate], + [Title], + [Summary], + [IsApproved], + [NumberOfViews], + [IsDraft], + [StartDate], + [EndDate], + [ModuleID], + [ImageUrl], + [IsFeatured], + [LastUpdateID], + [Url] +) VALUES ( + @AuthorID, + @ApproverID, + @CreatedDate, + @LastUpdate, + @Title, + @Summary, + @IsApproved, + @NumberOfViews, + @IsDraft, + @StartDate, + @EndDate, + @ModuleID, + @ImageUrl, + @IsFeatured, + @LastUpdateID, + @Url +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle + @ArticleID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255) +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article SET + [AuthorID] = @AuthorID, + [ApproverID] = @ApproverID, + [CreatedDate] = @CreatedDate, + [LastUpdate] = @LastUpdate, + [Title] = @Title, + [Summary] = @Summary, + [IsApproved] = @IsApproved, + [NumberOfViews] = @NumberOfViews, + [IsDraft] = @IsDraft, + [StartDate] = @StartDate, + [EndDate] = @EndDate, + [ModuleID] = @ModuleID, + [ImageUrl] = @ImageUrl, + [IsFeatured] = @IsFeatured, + [LastUpdateID] = @LastUpdateID, + [Url] = @Url +WHERE + [ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved + @ModuleID int, + @IsApproved bit +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor + @ModuleID int, + @AuthorID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus + @ModuleID int, + @AuthorID int, + @IsApproved bit, + @IsDraft bit +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList + @ModuleID int +AS +GO diff --git a/SqlDataProvider/00.04.08.SqlDataProvider b/SqlDataProvider/00.04.08.SqlDataProvider new file mode 100644 index 0000000..f399767 --- /dev/null +++ b/SqlDataProvider/00.04.08.SqlDataProvider @@ -0,0 +1,23 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories DROP + CONSTRAINT FK_{objectQualifier}DnnForge_NewsArticles_ArticleCategories_{objectQualifier}DnnForge_NewsArticles_Article +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories DROP + CONSTRAINT FK_{objectQualifier}DnnForge_NewsArticles_ArticleCategories_DnnForge_NewsArticles_Category +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ADD + CONSTRAINT FK_{objectQualifier}DnnForge_NewsArticles_ArticleCategories_{objectQualifier}DnnForge_NewsArticles_Article FOREIGN KEY + ( + [ArticleID] + ) REFERENCES {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [ArticleID] + ) ON DELETE CASCADE + , + CONSTRAINT FK_{objectQualifier}DnnForge_NewsArticles_ArticleCategories_{objectQualifier}DnnForge_NewsArticles_Category FOREIGN KEY + ( + [CategoryID] + ) REFERENCES {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category ( + [CategoryID] + ) +GO diff --git a/SqlDataProvider/00.04.09.SqlDataProvider b/SqlDataProvider/00.04.09.SqlDataProvider new file mode 100644 index 0000000..56fbcd7 --- /dev/null +++ b/SqlDataProvider/00.04.09.SqlDataProvider @@ -0,0 +1,12 @@ +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET StartDate = CreatedDate +WHERE StartDate IS NULL +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryStatistics +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryStatistics + @ModuleID int +AS +GO diff --git a/SqlDataProvider/00.05.00.SqlDataProvider b/SqlDataProvider/00.05.00.SqlDataProvider new file mode 100644 index 0000000..ceef179 --- /dev/null +++ b/SqlDataProvider/00.05.00.SqlDataProvider @@ -0,0 +1,116 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ADD + Type int NOT NULL Default 0, + TrackbackUrl nvarchar(255) NULL, + TrackbackTitle nvarchar(255) NULL, + TrackbackBlogName nvarchar(255) NULL, + TrackbackExcerpt ntext NULL +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment + @ArticleID int, + @UserID int, + @Comment ntext, + @Rating float, + @RemoteAddress nvarchar(50) , + @Type int, + @TrackbackUrl nvarchar(255), + @TrackbackTitle nvarchar(255), + @TrackbackBlogName nvarchar(255), + @TrackbackExcerpt ntext +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ( + [ArticleID], + [UserID], + [Comment], + [Rating], + [RemoteAddress], + [Type], + [TrackbackUrl], + [TrackbackTitle], + [TrackbackBlogName], + [TrackbackExcerpt] +) VALUES ( + @ArticleID, + @UserID, + @Comment, + @Rating, + @RemoteAddress, + @Type, + @TrackbackUrl, + @TrackbackTitle, + @TrackbackBlogName, + @TrackbackExcerpt +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment + @CommentID int, + @ArticleID int, + @UserID int, + @Comment ntext, + @Rating float, + @RemoteAddress nvarchar(50), + @Type int, + @TrackbackUrl nvarchar(255), + @TrackbackTitle nvarchar(255), + @TrackbackBlogName nvarchar(255), + @TrackbackExcerpt ntext +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment SET + [ArticleID] = @ArticleID, + [UserID] = @UserID, + [Comment] = @Comment, + [Rating] = @Rating, + [RemoteAddress] = @RemoteAddress, + [Type] = @Type, + [TrackbackUrl] = @TrackbackUrl, + [TrackbackTitle] = @TrackbackTitle, + [TrackbackBlogName] = @TrackbackBlogName, + [TrackbackExcerpt] = @TrackbackExcerpt +WHERE + [CommentID] = @CommentID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment + @CommentID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList + @ArticleID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @SortBy varchar(50) +AS +GO diff --git a/SqlDataProvider/00.05.02.SqlDataProvider b/SqlDataProvider/00.05.02.SqlDataProvider new file mode 100644 index 0000000..d715247 --- /dev/null +++ b/SqlDataProvider/00.05.02.SqlDataProvider @@ -0,0 +1,19 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryStatistics +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryStatistics + @ModuleID int +AS + +select + Category.CategoryID, + Category.Name, + (select count(*) from {databaseOwner}{objectQualifier}dnnforge_newsarticles_articlecategories articleCategories, {databaseOwner}{objectQualifier}dnnforge_newsarticles_article articles where categoryid = Category.CategoryID and articleCategories.articleID = articles.ArticleID and articles.IsApproved = 1 AND (articles.StartDate is null or articles.StartDate < DateAdd(mi, 1, GetDate())) AND (articles.EndDate is null or articles.EndDate > DateAdd(mi, 1, GetDate())) ) as 'NumberOfArticles', + (select sum(NumberOfViews) from {databaseOwner}{objectQualifier}dnnforge_newsarticles_articlecategories articleCategories, {databaseOwner}{objectQualifier}dnnforge_newsarticles_article articles where categoryid = Category.CategoryID and articleCategories.articleID = articles.ArticleID AND (articles.StartDate is null or articles.StartDate < DateAdd(mi, 1, GetDate())) AND (articles.EndDate is null or articles.EndDate > DateAdd(mi, 1, GetDate())) ) as 'NumberOfViews' +from + {databaseOwner}{objectQualifier}dnnforge_newsarticles_category Category +where + Category.ModuleID = @ModuleID +ORDER BY + Category.Name +GO diff --git a/SqlDataProvider/00.05.05.SqlDataProvider b/SqlDataProvider/00.05.05.SqlDataProvider new file mode 100644 index 0000000..a4123b7 --- /dev/null +++ b/SqlDataProvider/00.05.05.SqlDataProvider @@ -0,0 +1,30 @@ +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive + @ModuleID int +AS + +select Month(StartDate) as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] +from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article +where ModuleID = @ModuleID and IsApproved = 1 and IsDraft = 0 +group by Year(StartDate), Month(StartDate) +order by [Year] desc, [Month] desc +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @SortBy varchar(50), + @Month int, + @Year int +AS +GO diff --git a/SqlDataProvider/00.05.09.SqlDataProvider b/SqlDataProvider/00.05.09.SqlDataProvider new file mode 100644 index 0000000..b577129 --- /dev/null +++ b/SqlDataProvider/00.05.09.SqlDataProvider @@ -0,0 +1,25 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive + @ModuleID int, + @CategoryID varchar(255) +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +EXEC(' +select Month(StartDate) as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] +from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article +where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' +group by Year(StartDate), Month(StartDate) +order by [Year] desc, [Month] desc') +GO diff --git a/SqlDataProvider/00.05.11.SqlDataProvider b/SqlDataProvider/00.05.11.SqlDataProvider new file mode 100644 index 0000000..18adc9e --- /dev/null +++ b/SqlDataProvider/00.05.11.SqlDataProvider @@ -0,0 +1,28 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive + @ModuleID int, + @CategoryID varchar(255) +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +EXEC(' +select Month(StartDate) as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] +from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article +where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' +group by Year(StartDate), Month(StartDate) +order by [Year] desc, [Month] desc') +GO diff --git a/SqlDataProvider/00.05.12.SqlDataProvider b/SqlDataProvider/00.05.12.SqlDataProvider new file mode 100644 index 0000000..72726b7 --- /dev/null +++ b/SqlDataProvider/00.05.12.SqlDataProvider @@ -0,0 +1,465 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive + @ModuleID int, + @CategoryID varchar(255) +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +EXEC(' +select Month(StartDate) as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] +from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article +where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' +group by Year(StartDate), Month(StartDate) +order by [Year] desc, [Month] desc') +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @SortBy varchar(50), + @Month int, + @Year int +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = ' 1 = 1 ' + +IF (@MaxCount is not null) + SELECT @strTop = ' TOP ' + convert(nvarchar, @MaxCount) + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@MaxAge is not null) and (@ShowHiddenAndExpired = 0) + SELECT @strWhere = @strWhere + ' AND Article.CreatedDate > ''' + convert(nvarchar, DateAdd(day, @MaxAge, @StartDate)) + '''' + +IF (@MaxAge is not null) and (@ShowHiddenAndExpired = 0) + SELECT @strWhere = @strWhere + ' AND Article.CreatedDate < ''' + convert(nvarchar, @StartDate) + '''' + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE ''%' + @Keywords + '%'' OR Article.Summary LIKE ''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE ''%' + @Keywords + '%'') > 0))' + +IF (@ShowHiddenAndExpired = 0) + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null or Article.StartDate < ''' + convert(nvarchar, DateAdd(mi, 1, GetDate())) + ''')' + +IF (@ShowHiddenAndExpired = 0) + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null or Article.EndDate > ''' + convert(nvarchar, DateAdd(day, -1, GetDate())) + ''')' + +IF (@Month is not null) + SELECT @strWhere = @strWhere + ' AND Month(Article.StartDate) = ' + convert(nvarchar, @Month) + +IF (@Year is not null) + SELECT @strWhere = @strWhere + ' AND Year(Article.StartDate) = ' + convert(nvarchar, @Year) + +EXEC(' +SELECT ' + @strTop + ' + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + '''' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '''' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page.ArticleID = Article.ArticleID) as ''PageCount'', + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as ''CommentCount'', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as ''Rating'', + case when Images.FileName is null then '''' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article INNER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID INNER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = ''fileid='' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = ''fileid='' + CONVERT(nvarchar, Images.FileID) + +WHERE ' + + @strWhere + ' + +ORDER BY + ' + @SortBy + ' DESC') +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page.ArticleID = Article.ArticleID) as 'PageCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'Rating', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article INNER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID INNER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) + +WHERE + Article.[ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved + @ModuleID int, + @IsApproved bit +AS + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page.ArticleID = Article.ArticleID) as 'PageCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'Rating', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article INNER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID INNER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) + +WHERE + Article.[ModuleID] = @ModuleID + AND + Article.[IsApproved] = @IsApproved + AND + Article.[IsDraft] = 0 + +ORDER BY + Article.[CreatedDate] DESC +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor + @ModuleID int, + @AuthorID int +AS + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'Rating', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article INNER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID INNER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) +WHERE + Article.[ModuleID] = @ModuleID + AND + Article.[AuthorID] = @AuthorID + +ORDER BY + Article.[CreatedDate] DESC +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus + @ModuleID int, + @AuthorID int, + @IsApproved bit, + @IsDraft bit +AS + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as CommentCount, + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as Rating, + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS Url + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article INNER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID INNER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) +WHERE + Article.[ModuleID] = @ModuleID + AND + Article.[AuthorID] = @AuthorID + AND + Article.[IsApproved] = @IsApproved + AND + Article.[IsDraft] = @IsDraft + +ORDER BY + Article.[CreatedDate] DESC +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList + @ModuleID int +AS + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article INNER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID INNER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) +WHERE + Article.[ModuleID] = @ModuleID + +ORDER BY + Article.[CreatedDate] DESC +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment + @CommentID int +AS + +SELECT + Comment.[CommentID], + Comment.[ArticleID], + Comment.[UserID], + Comment.[CreatedDate], + Comment.[Comment], + Comment.[Rating], + Comment.[RemoteAddress], + Comment.[Type], + Comment.[TrackbackUrl], + Comment.[TrackbackTitle], + Comment.[TrackbackBlogName], + Comment.[TrackbackExcerpt], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Comment.UserID = Author.UserID +WHERE + [CommentID] = @CommentID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList + @ArticleID int +AS + +SELECT + Comment.[CommentID], + Comment.[ArticleID], + Comment.[UserID], + Comment.[CreatedDate], + Comment.[Comment], + Comment.[Rating], + Comment.[RemoteAddress], + Comment.[Type], + Comment.[TrackbackUrl], + Comment.[TrackbackTitle], + Comment.[TrackbackBlogName], + Comment.[TrackbackExcerpt], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Comment.UserID = Author.UserID +WHERE + Comment.[ArticleID] = @ArticleID +GO diff --git a/SqlDataProvider/00.05.13.SqlDataProvider b/SqlDataProvider/00.05.13.SqlDataProvider new file mode 100644 index 0000000..56a37de --- /dev/null +++ b/SqlDataProvider/00.05.13.SqlDataProvider @@ -0,0 +1,30 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive + @ModuleID int, + @CategoryID varchar(255) +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null or Article.StartDate < ''' + convert(nvarchar, DateAdd(mi, 1, GetDate())) + ''')' + +EXEC(' +select Month(StartDate) as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] +from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article +where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' +group by Year(StartDate), Month(StartDate) +order by [Year] desc, [Month] desc') +GO diff --git a/SqlDataProvider/00.05.17.SqlDataProvider b/SqlDataProvider/00.05.17.SqlDataProvider new file mode 100644 index 0000000..f54b157 --- /dev/null +++ b/SqlDataProvider/00.05.17.SqlDataProvider @@ -0,0 +1,274 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + IsSecure int NOT NULL Default 0 +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @SortBy varchar(50), + @Month int, + @Year int +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = ' 1 = 1 ' + +IF (@MaxCount is not null) + SELECT @strTop = ' TOP ' + convert(nvarchar, @MaxCount) + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@MaxAge is not null) and (@ShowHiddenAndExpired = 0) + SELECT @strWhere = @strWhere + ' AND Article.CreatedDate > ''' + convert(nvarchar, DateAdd(day, @MaxAge, @StartDate)) + '''' + +IF (@MaxAge is not null) and (@ShowHiddenAndExpired = 0) + SELECT @strWhere = @strWhere + ' AND Article.CreatedDate < ''' + convert(nvarchar, @StartDate) + '''' + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE ''%' + @Keywords + '%'' OR Article.Summary LIKE ''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE ''%' + @Keywords + '%'') > 0))' + +IF (@ShowHiddenAndExpired = 0) + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null or Article.StartDate < ''' + convert(nvarchar, DateAdd(mi, 1, GetDate())) + ''')' + +IF (@ShowHiddenAndExpired = 0) + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null or Article.EndDate > ''' + convert(nvarchar, DateAdd(day, -1, GetDate())) + ''')' + +IF (@Month is not null) + SELECT @strWhere = @strWhere + ' AND Month(Article.StartDate) = ' + convert(nvarchar, @Month) + +IF (@Year is not null) + SELECT @strWhere = @strWhere + ' AND Year(Article.StartDate) = ' + convert(nvarchar, @Year) + +EXEC(' +SELECT ' + @strTop + ' + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + '''' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '''' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page.ArticleID = Article.ArticleID) as ''PageCount'', + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as ''CommentCount'', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as ''Rating'', + case when Images.FileName is null then '''' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article INNER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID INNER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = ''fileid='' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = ''fileid='' + CONVERT(nvarchar, Images.FileID) + +WHERE ' + + @strWhere + ' + +ORDER BY + ' + @SortBy + ' DESC') +GO + + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page.ArticleID = Article.ArticleID) as 'PageCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'Rating', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article INNER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID INNER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) + +WHERE + Article.[ArticleID] = @ArticleID +GO + + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255), + @IsSecure bit +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [AuthorID], + [ApproverID], + [CreatedDate], + [LastUpdate], + [Title], + [Summary], + [IsApproved], + [NumberOfViews], + [IsDraft], + [StartDate], + [EndDate], + [ModuleID], + [ImageUrl], + [IsFeatured], + [LastUpdateID], + [Url], + [IsSecure] +) VALUES ( + @AuthorID, + @ApproverID, + @CreatedDate, + @LastUpdate, + @Title, + @Summary, + @IsApproved, + @NumberOfViews, + @IsDraft, + @StartDate, + @EndDate, + @ModuleID, + @ImageUrl, + @IsFeatured, + @LastUpdateID, + @Url, + @IsSecure +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle + @ArticleID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255), + @IsSecure bit +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article SET + [AuthorID] = @AuthorID, + [ApproverID] = @ApproverID, + [CreatedDate] = @CreatedDate, + [LastUpdate] = @LastUpdate, + [Title] = @Title, + [Summary] = @Summary, + [IsApproved] = @IsApproved, + [NumberOfViews] = @NumberOfViews, + [IsDraft] = @IsDraft, + [StartDate] = @StartDate, + [EndDate] = @EndDate, + [ModuleID] = @ModuleID, + [ImageUrl] = @ImageUrl, + [IsFeatured] = @IsFeatured, + [LastUpdateID] = @LastUpdateID, + [Url] = @Url, + [IsSecure] = @IsSecure +WHERE + [ArticleID] = @ArticleID +GO diff --git a/SqlDataProvider/00.05.20.SqlDataProvider b/SqlDataProvider/00.05.20.SqlDataProvider new file mode 100644 index 0000000..4302af5 --- /dev/null +++ b/SqlDataProvider/00.05.20.SqlDataProvider @@ -0,0 +1,163 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ADD + AnonymousName nvarchar(255) NULL, + AnonymousEmail nvarchar(255) NULL, + AnonymousURL nvarchar(255) NULL +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment + @ArticleID int, + @UserID int, + @Comment ntext, + @Rating float, + @RemoteAddress nvarchar(50) , + @Type int, + @TrackbackUrl nvarchar(255), + @TrackbackTitle nvarchar(255), + @TrackbackBlogName nvarchar(255), + @TrackbackExcerpt ntext, + @AnonymousName nvarchar(255), + @AnonymousEmail nvarchar(255), + @AnonymousURL nvarchar(255) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ( + [ArticleID], + [UserID], + [Comment], + [Rating], + [RemoteAddress], + [Type], + [TrackbackUrl], + [TrackbackTitle], + [TrackbackBlogName], + [TrackbackExcerpt], + [AnonymousName], + [AnonymousEmail], + [AnonymousURL] +) VALUES ( + @ArticleID, + @UserID, + @Comment, + @Rating, + @RemoteAddress, + @Type, + @TrackbackUrl, + @TrackbackTitle, + @TrackbackBlogName, + @TrackbackExcerpt, + @AnonymousName, + @AnonymousEmail, + @AnonymousURL +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment + @CommentID int, + @ArticleID int, + @UserID int, + @Comment ntext, + @Rating float, + @RemoteAddress nvarchar(50), + @Type int, + @TrackbackUrl nvarchar(255), + @TrackbackTitle nvarchar(255), + @TrackbackBlogName nvarchar(255), + @TrackbackExcerpt ntext, + @AnonymousName nvarchar(255), + @AnonymousEmail nvarchar(255), + @AnonymousURL nvarchar(255) +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment SET + [ArticleID] = @ArticleID, + [UserID] = @UserID, + [Comment] = @Comment, + [Rating] = @Rating, + [RemoteAddress] = @RemoteAddress, + [Type] = @Type, + [TrackbackUrl] = @TrackbackUrl, + [TrackbackTitle] = @TrackbackTitle, + [TrackbackBlogName] = @TrackbackBlogName, + [TrackbackExcerpt] = @TrackbackExcerpt, + [AnonymousName] = @AnonymousName, + [AnonymousEmail] = @AnonymousEmail, + [AnonymousURL] = @AnonymousURL +WHERE + [CommentID] = @CommentID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment + @CommentID int +AS + +SELECT + Comment.[CommentID], + Comment.[ArticleID], + Comment.[UserID], + Comment.[CreatedDate], + Comment.[Comment], + Comment.[Rating], + Comment.[RemoteAddress], + Comment.[Type], + Comment.[TrackbackUrl], + Comment.[TrackbackTitle], + Comment.[TrackbackBlogName], + Comment.[TrackbackExcerpt], + Comment.[AnonymousName], + Comment.[AnonymousEmail], + Comment.[AnonymousURL], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Comment.UserID = Author.UserID +WHERE + [CommentID] = @CommentID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList + @ArticleID int +AS + +SELECT + Comment.[CommentID], + Comment.[ArticleID], + Comment.[UserID], + Comment.[CreatedDate], + Comment.[Comment], + Comment.[Rating], + Comment.[RemoteAddress], + Comment.[Type], + Comment.[TrackbackUrl], + Comment.[TrackbackTitle], + Comment.[TrackbackBlogName], + Comment.[TrackbackExcerpt], + Comment.[AnonymousName], + Comment.[AnonymousEmail], + Comment.[AnonymousURL], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Comment.UserID = Author.UserID +WHERE + Comment.[ArticleID] = @ArticleID +GO diff --git a/SqlDataProvider/00.05.21.SqlDataProvider b/SqlDataProvider/00.05.21.SqlDataProvider new file mode 100644 index 0000000..888905b --- /dev/null +++ b/SqlDataProvider/00.05.21.SqlDataProvider @@ -0,0 +1,168 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ADD + NotifyMe bit NOT NULL CONSTRAINT DF_{objectQualifier}DnnForge_NewsArticles_Comment_NotifyMe DEFAULT 0 +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment + @ArticleID int, + @UserID int, + @Comment ntext, + @Rating float, + @RemoteAddress nvarchar(50) , + @Type int, + @TrackbackUrl nvarchar(255), + @TrackbackTitle nvarchar(255), + @TrackbackBlogName nvarchar(255), + @TrackbackExcerpt ntext, + @AnonymousName nvarchar(255), + @AnonymousEmail nvarchar(255), + @AnonymousURL nvarchar(255), + @NotifyMe bit +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ( + [ArticleID], + [UserID], + [Comment], + [Rating], + [RemoteAddress], + [Type], + [TrackbackUrl], + [TrackbackTitle], + [TrackbackBlogName], + [TrackbackExcerpt], + [AnonymousName], + [AnonymousEmail], + [AnonymousURL], + [NotifyMe] +) VALUES ( + @ArticleID, + @UserID, + @Comment, + @Rating, + @RemoteAddress, + @Type, + @TrackbackUrl, + @TrackbackTitle, + @TrackbackBlogName, + @TrackbackExcerpt, + @AnonymousName, + @AnonymousEmail, + @AnonymousURL, + @NotifyMe +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment + @CommentID int, + @ArticleID int, + @UserID int, + @Comment ntext, + @Rating float, + @RemoteAddress nvarchar(50), + @Type int, + @TrackbackUrl nvarchar(255), + @TrackbackTitle nvarchar(255), + @TrackbackBlogName nvarchar(255), + @TrackbackExcerpt ntext, + @AnonymousName nvarchar(255), + @AnonymousEmail nvarchar(255), + @AnonymousURL nvarchar(255), + @NotifyMe bit +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment SET + [ArticleID] = @ArticleID, + [UserID] = @UserID, + [Comment] = @Comment, + [Rating] = @Rating, + [RemoteAddress] = @RemoteAddress, + [Type] = @Type, + [TrackbackUrl] = @TrackbackUrl, + [TrackbackTitle] = @TrackbackTitle, + [TrackbackBlogName] = @TrackbackBlogName, + [TrackbackExcerpt] = @TrackbackExcerpt, + [AnonymousName] = @AnonymousName, + [AnonymousEmail] = @AnonymousEmail, + [AnonymousURL] = @AnonymousURL, + [NotifyMe] = @NotifyMe +WHERE + [CommentID] = @CommentID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment + @CommentID int +AS + +SELECT + Comment.[CommentID], + Comment.[ArticleID], + Comment.[UserID], + Comment.[CreatedDate], + Comment.[Comment], + Comment.[Rating], + Comment.[RemoteAddress], + Comment.[Type], + Comment.[TrackbackUrl], + Comment.[TrackbackTitle], + Comment.[TrackbackBlogName], + Comment.[TrackbackExcerpt], + Comment.[AnonymousName], + Comment.[AnonymousEmail], + Comment.[AnonymousURL], + Comment.[NotifyMe], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Comment.UserID = Author.UserID +WHERE + [CommentID] = @CommentID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList + @ArticleID int +AS + +SELECT + Comment.[CommentID], + Comment.[ArticleID], + Comment.[UserID], + Comment.[CreatedDate], + Comment.[Comment], + Comment.[Rating], + Comment.[RemoteAddress], + Comment.[Type], + Comment.[TrackbackUrl], + Comment.[TrackbackTitle], + Comment.[TrackbackBlogName], + Comment.[TrackbackExcerpt], + Comment.[AnonymousName], + Comment.[AnonymousEmail], + Comment.[AnonymousURL], + Comment.[NotifyMe], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Comment.UserID = Author.UserID +WHERE + Comment.[ArticleID] = @ArticleID +GO diff --git a/SqlDataProvider/00.05.22.SqlDataProvider b/SqlDataProvider/00.05.22.SqlDataProvider new file mode 100644 index 0000000..65c926c --- /dev/null +++ b/SqlDataProvider/00.05.22.SqlDataProvider @@ -0,0 +1,109 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @SortBy varchar(50), + @Month int, + @Year int +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = ' 1 = 1 ' + +IF (@MaxCount is not null) + SELECT @strTop = ' TOP ' + convert(nvarchar, @MaxCount) + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@MaxAge is not null) and (@ShowHiddenAndExpired = 0) + SELECT @strWhere = @strWhere + ' AND Article.CreatedDate > ''' + convert(nvarchar, DateAdd(day, @MaxAge, @StartDate)) + '''' + +IF (@MaxAge is not null) and (@ShowHiddenAndExpired = 0) + SELECT @strWhere = @strWhere + ' AND Article.CreatedDate < ''' + convert(nvarchar, @StartDate) + '''' + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE ''%' + @Keywords + '%'' OR Article.Summary LIKE ''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE ''%' + @Keywords + '%'') > 0))' + +IF (@ShowHiddenAndExpired = 0) + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null or Article.StartDate < ''' + convert(nvarchar, DateAdd(mi, 1, GetDate())) + ''')' + +IF (@ShowHiddenAndExpired = 0) + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null or Article.EndDate > ''' + convert(nvarchar, GetDate()) + ''')' + +IF (@Month is not null) + SELECT @strWhere = @strWhere + ' AND Month(Article.StartDate) = ' + convert(nvarchar, @Month) + +IF (@Year is not null) + SELECT @strWhere = @strWhere + ' AND Year(Article.StartDate) = ' + convert(nvarchar, @Year) + +EXEC(' +SELECT ' + @strTop + ' + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + '''' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '''' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page.ArticleID = Article.ArticleID) as ''PageCount'', + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as ''CommentCount'', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as ''Rating'', + case when Images.FileName is null then '''' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article INNER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID INNER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = ''fileid='' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = ''fileid='' + CONVERT(nvarchar, Images.FileID) + +WHERE ' + + @strWhere + ' + +ORDER BY + ' + @SortBy + ' DESC') +GO diff --git a/SqlDataProvider/00.05.24.SqlDataProvider b/SqlDataProvider/00.05.24.SqlDataProvider new file mode 100644 index 0000000..7fd7a31 --- /dev/null +++ b/SqlDataProvider/00.05.24.SqlDataProvider @@ -0,0 +1,37 @@ + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList + @ArticleID int +AS + +SELECT + Comment.[CommentID], + Comment.[ArticleID], + Comment.[UserID], + Comment.[CreatedDate], + Comment.[Comment], + Comment.[Rating], + Comment.[RemoteAddress], + Comment.[Type], + Comment.[TrackbackUrl], + Comment.[TrackbackTitle], + Comment.[TrackbackBlogName], + Comment.[TrackbackExcerpt], + Comment.[AnonymousName], + Comment.[AnonymousEmail], + Comment.[AnonymousURL], + Comment.[NotifyMe], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Comment.UserID = Author.UserID +WHERE + Comment.[ArticleID] = @ArticleID +ORDER BY + Comment.[CreatedDate] ASC +GO diff --git a/SqlDataProvider/00.05.26.SqlDataProvider b/SqlDataProvider/00.05.26.SqlDataProvider new file mode 100644 index 0000000..a72ca9d --- /dev/null +++ b/SqlDataProvider/00.05.26.SqlDataProvider @@ -0,0 +1,378 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @SortBy varchar(50), + @Month int, + @Year int +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = ' 1 = 1 ' + +IF (@MaxCount is not null) + SELECT @strTop = ' TOP ' + convert(nvarchar, @MaxCount) + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@MaxAge is not null) and (@ShowHiddenAndExpired = 0) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, DateAdd(day, @MaxAge, @StartDate)) + '''' + +IF (@MaxAge is not null) and (@ShowHiddenAndExpired = 0) + SELECT @strWhere = @strWhere + ' AND Article.StartDate < ''' + convert(nvarchar, @StartDate) + '''' + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE ''%' + @Keywords + '%'' OR Article.Summary LIKE ''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE ''%' + @Keywords + '%'') > 0))' + +IF (@ShowHiddenAndExpired = 0) + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null or Article.StartDate < ''' + convert(nvarchar, DateAdd(mi, 1, GetDate())) + ''')' + +IF (@ShowHiddenAndExpired = 0) + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null or Article.EndDate > ''' + convert(nvarchar, GetDate()) + ''')' + +IF (@Month is not null) + SELECT @strWhere = @strWhere + ' AND Month(Article.StartDate) = ' + convert(nvarchar, @Month) + +IF (@Year is not null) + SELECT @strWhere = @strWhere + ' AND Year(Article.StartDate) = ' + convert(nvarchar, @Year) + +EXEC(' +SELECT ' + @strTop + ' + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + '''' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '''' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page.ArticleID = Article.ArticleID) as ''PageCount'', + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as ''CommentCount'', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as ''Rating'', + case when Images.FileName is null then '''' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = ''fileid='' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = ''fileid='' + CONVERT(nvarchar, Images.FileID) + +WHERE ' + + @strWhere + ' + +ORDER BY + ' + @SortBy + ' DESC') +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page.ArticleID = Article.ArticleID) as 'PageCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'Rating', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) + +WHERE + Article.[ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor + @ModuleID int, + @AuthorID int +AS + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'Rating', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) +WHERE + Article.[ModuleID] = @ModuleID + AND + Article.[AuthorID] = @AuthorID + +ORDER BY + Article.[CreatedDate] DESC +GO + + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus + @ModuleID int, + @AuthorID int, + @IsApproved bit, + @IsDraft bit +AS + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'Rating', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) +WHERE + Article.[ModuleID] = @ModuleID + AND + Article.[AuthorID] = @AuthorID + AND + Article.[IsApproved] = @IsApproved + AND + Article.[IsDraft] = @IsDraft + +ORDER BY + Article.[CreatedDate] DESC +GO + + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList + @ModuleID int +AS + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) +WHERE + Article.[ModuleID] = @ModuleID + +ORDER BY + Article.[CreatedDate] DESC +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved + @ModuleID int, + @IsApproved bit +AS + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page.ArticleID = Article.ArticleID) as 'PageCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'Rating', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) + +WHERE + Article.[ModuleID] = @ModuleID + AND + Article.[IsApproved] = @IsApproved + AND + Article.[IsDraft] = 0 + +ORDER BY + Article.[CreatedDate] DESC +GO diff --git a/SqlDataProvider/00.05.28.SqlDataProvider b/SqlDataProvider/00.05.28.SqlDataProvider new file mode 100644 index 0000000..61e0abe --- /dev/null +++ b/SqlDataProvider/00.05.28.SqlDataProvider @@ -0,0 +1,19 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @SortBy varchar(50), + @Month int, + @Year int +AS +GO diff --git a/SqlDataProvider/00.05.40.SqlDataProvider b/SqlDataProvider/00.05.40.SqlDataProvider new file mode 100644 index 0000000..b8ddf41 --- /dev/null +++ b/SqlDataProvider/00.05.40.SqlDataProvider @@ -0,0 +1,33 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryStatistics +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryStatistics + @ModuleID int, + @CategoryID varchar(255) +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Category.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND CategoryID in (' + @CategoryID + ')' + +EXEC(' +select + Category.CategoryID, + Category.Name, + (select count(*) from {databaseOwner}{objectQualifier}dnnforge_newsarticles_articlecategories articleCategories, {databaseOwner}{objectQualifier}dnnforge_newsarticles_article articles where categoryid = Category.CategoryID and articleCategories.articleID = articles.ArticleID and articles.IsApproved = 1 AND (articles.StartDate is null or articles.StartDate < DateAdd(mi, 1, GetDate())) AND (articles.EndDate is null or articles.EndDate > DateAdd(mi, 1, GetDate())) ) as ''NumberOfArticles'', + (select sum(NumberOfViews) from {databaseOwner}{objectQualifier}dnnforge_newsarticles_articlecategories articleCategories, {databaseOwner}{objectQualifier}dnnforge_newsarticles_article articles where categoryid = Category.CategoryID and articleCategories.articleID = articles.ArticleID AND (articles.StartDate is null or articles.StartDate < DateAdd(mi, 1, GetDate())) AND (articles.EndDate is null or articles.EndDate > DateAdd(mi, 1, GetDate())) ) as ''NumberOfViews'' +from + {databaseOwner}{objectQualifier}dnnforge_newsarticles_category Category +where 1 = 1 ' + + @strWhere + ' +ORDER BY + Category.Name') +GO diff --git a/SqlDataProvider/00.05.41.SqlDataProvider b/SqlDataProvider/00.05.41.SqlDataProvider new file mode 100644 index 0000000..10e755a --- /dev/null +++ b/SqlDataProvider/00.05.41.SqlDataProvider @@ -0,0 +1,27 @@ +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics + @ModuleID int, + @CategoryID varchar(255) +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Articles.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Articles.ArticleID in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryID + '))' + +EXEC(' +SELECT + UserID, UserName, FirstName, LastName, count(*) as ''ArticleCount'' +FROM + {databaseOwner}{objectQualifier}Users Users, {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Articles +where 1 = 1 and Users.UserID = Articles.AuthorID ' + + @strWhere + ' +GROUP BY + UserID, UserName, FirstName, LastName') +GO diff --git a/SqlDataProvider/00.05.46.SqlDataProvider b/SqlDataProvider/00.05.46.SqlDataProvider new file mode 100644 index 0000000..e5c1013 --- /dev/null +++ b/SqlDataProvider/00.05.46.SqlDataProvider @@ -0,0 +1,537 @@ +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating ( + [RatingID] [int] IDENTITY (1, 1) NOT NULL , + [ArticleID] [int] NOT NULL , + [UserID] [int] NOT NULL , + [CreatedDate] [datetime] NOT NULL , + [Rating] [float] NULL +) ON [PRIMARY] +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating ADD + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_Rating] PRIMARY KEY CLUSTERED + ( + [RatingID] + ) ON [PRIMARY] +GO + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating(ArticleID, UserID, CreatedDate, Rating) +SELECT ArticleID, UserID, CreatedDate, Rating FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment WHERE Rating is not null +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_RatingAdd + @ArticleID int, + @UserID int, + @CreatedDate datetime, + @Rating float +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating ( + [ArticleID], + [UserID], + [CreatedDate], + [Rating] +) VALUES ( + @ArticleID, + @UserID, + @CreatedDate, + @Rating +) + +select SCOPE_IDENTITY() +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_RatingDelete + @RatingID int +AS + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating +WHERE + [RatingID] = @RatingID + +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_RatingGet + @ArticleID int, + @UserID int + +AS + +SELECT + [RatingID], + [ArticleID], + [UserID], + [CreatedDate], + [Rating] +FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating +WHERE + [ArticleID] = @ArticleID + and + [UserID] = @UserID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_RatingGetByID + @RatingID int + +AS + +SELECT + [RatingID], + [ArticleID], + [UserID], + [CreatedDate], + [Rating] +FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating +WHERE + [RatingID] = @RatingID +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment + DROP COLUMN Rating +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment + @ArticleID int, + @UserID int, + @Comment ntext, + @RemoteAddress nvarchar(50) , + @Type int, + @TrackbackUrl nvarchar(255), + @TrackbackTitle nvarchar(255), + @TrackbackBlogName nvarchar(255), + @TrackbackExcerpt ntext, + @AnonymousName nvarchar(255), + @AnonymousEmail nvarchar(255), + @AnonymousURL nvarchar(255), + @NotifyMe bit +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ( + [ArticleID], + [UserID], + [Comment], + [RemoteAddress], + [Type], + [TrackbackUrl], + [TrackbackTitle], + [TrackbackBlogName], + [TrackbackExcerpt], + [AnonymousName], + [AnonymousEmail], + [AnonymousURL], + [NotifyMe] +) VALUES ( + @ArticleID, + @UserID, + @Comment, + @RemoteAddress, + @Type, + @TrackbackUrl, + @TrackbackTitle, + @TrackbackBlogName, + @TrackbackExcerpt, + @AnonymousName, + @AnonymousEmail, + @AnonymousURL, + @NotifyMe +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment + @CommentID int +AS + +SELECT + Comment.[CommentID], + Comment.[ArticleID], + Comment.[UserID], + Comment.[CreatedDate], + Comment.[Comment], + Comment.[RemoteAddress], + Comment.[Type], + Comment.[TrackbackUrl], + Comment.[TrackbackTitle], + Comment.[TrackbackBlogName], + Comment.[TrackbackExcerpt], + Comment.[AnonymousName], + Comment.[AnonymousEmail], + Comment.[AnonymousURL], + Comment.[NotifyMe], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Comment.UserID = Author.UserID +WHERE + [CommentID] = @CommentID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList + @ArticleID int +AS + +SELECT + Comment.[CommentID], + Comment.[ArticleID], + Comment.[UserID], + Comment.[CreatedDate], + Comment.[Comment], + Comment.[RemoteAddress], + Comment.[Type], + Comment.[TrackbackUrl], + Comment.[TrackbackTitle], + Comment.[TrackbackBlogName], + Comment.[TrackbackExcerpt], + Comment.[AnonymousName], + Comment.[AnonymousEmail], + Comment.[AnonymousURL], + Comment.[NotifyMe], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Comment.UserID = Author.UserID +WHERE + Comment.[ArticleID] = @ArticleID +ORDER BY + Comment.[CreatedDate] ASC +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment + @CommentID int, + @ArticleID int, + @UserID int, + @Comment ntext, + @RemoteAddress nvarchar(50), + @Type int, + @TrackbackUrl nvarchar(255), + @TrackbackTitle nvarchar(255), + @TrackbackBlogName nvarchar(255), + @TrackbackExcerpt ntext, + @AnonymousName nvarchar(255), + @AnonymousEmail nvarchar(255), + @AnonymousURL nvarchar(255), + @NotifyMe bit +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment SET + [ArticleID] = @ArticleID, + [UserID] = @UserID, + [Comment] = @Comment, + [RemoteAddress] = @RemoteAddress, + [Type] = @Type, + [TrackbackUrl] = @TrackbackUrl, + [TrackbackTitle] = @TrackbackTitle, + [TrackbackBlogName] = @TrackbackBlogName, + [TrackbackExcerpt] = @TrackbackExcerpt, + [AnonymousName] = @AnonymousName, + [AnonymousEmail] = @AnonymousEmail, + [AnonymousURL] = @AnonymousURL, + [NotifyMe] = @NotifyMe +WHERE + [CommentID] = @CommentID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page.ArticleID = Article.ArticleID) as 'PageCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'Rating', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) + +WHERE + Article.[ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList + @ModuleID int +AS + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) +WHERE + Article.[ModuleID] = @ModuleID + +ORDER BY + Article.[CreatedDate] DESC +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved + @ModuleID int, + @IsApproved bit +AS + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page.ArticleID = Article.ArticleID) as 'PageCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'Rating', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) + +WHERE + Article.[ModuleID] = @ModuleID + AND + Article.[IsApproved] = @IsApproved + AND + Article.[IsDraft] = 0 + +ORDER BY + Article.[CreatedDate] DESC +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor + @ModuleID int, + @AuthorID int +AS + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'Rating', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) +WHERE + Article.[ModuleID] = @ModuleID + AND + Article.[AuthorID] = @AuthorID + +ORDER BY + Article.[CreatedDate] DESC +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus + @ModuleID int, + @AuthorID int, + @IsApproved bit, + @IsDraft bit +AS + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'Rating', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) +WHERE + Article.[ModuleID] = @ModuleID + AND + Article.[AuthorID] = @AuthorID + AND + Article.[IsApproved] = @IsApproved + AND + Article.[IsDraft] = @IsDraft + +ORDER BY + Article.[CreatedDate] DESC +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @SortBy varchar(50), + @Month int, + @Year int +AS +GO diff --git a/SqlDataProvider/00.05.48.SqlDataProvider b/SqlDataProvider/00.05.48.SqlDataProvider new file mode 100644 index 0000000..bdd6972 --- /dev/null +++ b/SqlDataProvider/00.05.48.SqlDataProvider @@ -0,0 +1,421 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + ADD IsNewWindow bit NOT NULL CONSTRAINT DF_{objectQualifier}DnnForge_NewsArticles_Article_IsNewWindow DEFAULT 0 +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255), + @IsSecure bit, + @IsNewWindow bit +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [AuthorID], + [ApproverID], + [CreatedDate], + [LastUpdate], + [Title], + [Summary], + [IsApproved], + [NumberOfViews], + [IsDraft], + [StartDate], + [EndDate], + [ModuleID], + [ImageUrl], + [IsFeatured], + [LastUpdateID], + [Url], + [IsSecure], + [IsNewWindow] +) VALUES ( + @AuthorID, + @ApproverID, + @CreatedDate, + @LastUpdate, + @Title, + @Summary, + @IsApproved, + @NumberOfViews, + @IsDraft, + @StartDate, + @EndDate, + @ModuleID, + @ImageUrl, + @IsFeatured, + @LastUpdateID, + @Url, + @IsSecure, + @IsNewWindow +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle + @ArticleID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255), + @IsSecure bit, + @IsNewWindow bit +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article SET + [AuthorID] = @AuthorID, + [ApproverID] = @ApproverID, + [CreatedDate] = @CreatedDate, + [LastUpdate] = @LastUpdate, + [Title] = @Title, + [Summary] = @Summary, + [IsApproved] = @IsApproved, + [NumberOfViews] = @NumberOfViews, + [IsDraft] = @IsDraft, + [StartDate] = @StartDate, + [EndDate] = @EndDate, + [ModuleID] = @ModuleID, + [ImageUrl] = @ImageUrl, + [IsFeatured] = @IsFeatured, + [LastUpdateID] = @LastUpdateID, + [Url] = @Url, + [IsSecure] = @IsSecure, + [IsNewWindow] = @IsNewWindow +WHERE + [ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page.ArticleID = Article.ArticleID) as 'PageCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'Rating', + (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'RatingCount', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) + +WHERE + Article.[ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList + @ModuleID int +AS + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page.ArticleID = Article.ArticleID) as 'PageCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'Rating', + (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'RatingCount', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) +WHERE + Article.[ModuleID] = @ModuleID + +ORDER BY + Article.[CreatedDate] DESC +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved + @ModuleID int, + @IsApproved bit +AS + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page.ArticleID = Article.ArticleID) as 'PageCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'Rating', + (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'RatingCount', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) + +WHERE + Article.[ModuleID] = @ModuleID + AND + Article.[IsApproved] = @IsApproved + AND + Article.[IsDraft] = 0 + +ORDER BY + Article.[CreatedDate] DESC +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor + @ModuleID int, + @AuthorID int +AS + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'Rating', + (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'RatingCount', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) +WHERE + Article.[ModuleID] = @ModuleID + AND + Article.[AuthorID] = @AuthorID + +ORDER BY + Article.[CreatedDate] DESC +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus + @ModuleID int, + @AuthorID int, + @IsApproved bit, + @IsDraft bit +AS + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'Rating', + (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'RatingCount', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) +WHERE + Article.[ModuleID] = @ModuleID + AND + Article.[AuthorID] = @AuthorID + AND + Article.[IsApproved] = @IsApproved + AND + Article.[IsDraft] = @IsDraft + +ORDER BY + Article.[CreatedDate] DESC +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @SortBy varchar(50), + @Month int, + @Year int +AS +GO diff --git a/SqlDataProvider/00.05.51.SqlDataProvider b/SqlDataProvider/00.05.51.SqlDataProvider new file mode 100644 index 0000000..af63768 --- /dev/null +++ b/SqlDataProvider/00.05.51.SqlDataProvider @@ -0,0 +1,20 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @SortBy varchar(50), + @SortDirection varchar(50), + @Month int, + @Year int +AS +GO diff --git a/SqlDataProvider/00.05.55.SqlDataProvider b/SqlDataProvider/00.05.55.SqlDataProvider new file mode 100644 index 0000000..9809e46 --- /dev/null +++ b/SqlDataProvider/00.05.55.SqlDataProvider @@ -0,0 +1,21 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @SortBy varchar(50), + @SortDirection varchar(50), + @Month int, + @Year int +AS +GO diff --git a/SqlDataProvider/00.05.56.SqlDataProvider b/SqlDataProvider/00.05.56.SqlDataProvider new file mode 100644 index 0000000..e219be2 --- /dev/null +++ b/SqlDataProvider/00.05.56.SqlDataProvider @@ -0,0 +1,22 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowHiddenAndExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @SortBy varchar(50), + @SortDirection varchar(50), + @Month int, + @Year int +AS +GO diff --git a/SqlDataProvider/00.05.58.SqlDataProvider b/SqlDataProvider/00.05.58.SqlDataProvider new file mode 100644 index 0000000..c70c337 --- /dev/null +++ b/SqlDataProvider/00.05.58.SqlDataProvider @@ -0,0 +1,23 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowPending bit, + @ShowExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @SortBy varchar(50), + @SortDirection varchar(50), + @Month int, + @Year int +AS +GO diff --git a/SqlDataProvider/00.05.66.SqlDataProvider b/SqlDataProvider/00.05.66.SqlDataProvider new file mode 100644 index 0000000..c70c337 --- /dev/null +++ b/SqlDataProvider/00.05.66.SqlDataProvider @@ -0,0 +1,23 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowPending bit, + @ShowExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @SortBy varchar(50), + @SortDirection varchar(50), + @Month int, + @Year int +AS +GO diff --git a/SqlDataProvider/00.05.68.SqlDataProvider b/SqlDataProvider/00.05.68.SqlDataProvider new file mode 100644 index 0000000..c70c337 --- /dev/null +++ b/SqlDataProvider/00.05.68.SqlDataProvider @@ -0,0 +1,23 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @MaxAge int, + @IsApproved int, + @StartDate datetime, + @KeyWords varchar(255), + @ShowPending bit, + @ShowExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @SortBy varchar(50), + @SortDirection varchar(50), + @Month int, + @Year int +AS +GO diff --git a/SqlDataProvider/00.05.69.SqlDataProvider b/SqlDataProvider/00.05.69.SqlDataProvider new file mode 100644 index 0000000..1278d26 --- /dev/null +++ b/SqlDataProvider/00.05.69.SqlDataProvider @@ -0,0 +1,50 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + '' as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + '' as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page.ArticleID = Article.ArticleID) as 'PageCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'Rating', + (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'RatingCount', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) + +WHERE + Article.[ArticleID] = @ArticleID +GO diff --git a/SqlDataProvider/00.05.74.SqlDataProvider b/SqlDataProvider/00.05.74.SqlDataProvider new file mode 100644 index 0000000..00e3a7b --- /dev/null +++ b/SqlDataProvider/00.05.74.SqlDataProvider @@ -0,0 +1,36 @@ +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleList +GO + +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByApproved +GO + +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthor +GO + +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListByAuthorByStatus +GO + +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @MaxAge int, + @IsApproved bit, + @IsDraft bit, + @StartDate datetime, + @KeyWords varchar(255), + @ShowPending bit, + @ShowExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @SortBy varchar(50), + @SortDirection varchar(50), + @Month int, + @Year int +AS +GO diff --git a/SqlDataProvider/00.05.76.SqlDataProvider b/SqlDataProvider/00.05.76.SqlDataProvider new file mode 100644 index 0000000..5035125 --- /dev/null +++ b/SqlDataProvider/00.05.76.SqlDataProvider @@ -0,0 +1,24 @@ +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @MaxAge int, + @IsApproved bit, + @IsDraft bit, + @StartDate datetime, + @KeyWords varchar(255), + @ShowPending bit, + @ShowExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @SortBy varchar(50), + @SortDirection varchar(50), + @Month int, + @Year int +AS +GO diff --git a/SqlDataProvider/00.05.77.SqlDataProvider b/SqlDataProvider/00.05.77.SqlDataProvider new file mode 100644 index 0000000..fb77adb --- /dev/null +++ b/SqlDataProvider/00.05.77.SqlDataProvider @@ -0,0 +1,52 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment.ArticleID = Article.ArticleID) as 'CommentCount', + (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page.ArticleID = Article.ArticleID) as 'PageCount', + (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'Rating', + (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating.ArticleID = Article.ArticleID) as 'RatingCount', + case when Images.FileName is null then '' else Images.Folder + Images.FileName end AS ImageUrlResolved, + case when UrlFiles.FileName is null then Article.URL else UrlFiles.Folder + UrlFiles.FileName end AS URL + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files UrlFiles ON Article.URL = 'fileid=' + CONVERT(nvarchar, UrlFiles.FileID) LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Files Images ON Article.ImageUrl = 'fileid=' + CONVERT(nvarchar, Images.FileID) + +WHERE + Article.[ArticleID] = @ArticleID +GO diff --git a/SqlDataProvider/00.05.78.SqlDataProvider b/SqlDataProvider/00.05.78.SqlDataProvider new file mode 100644 index 0000000..5315552 --- /dev/null +++ b/SqlDataProvider/00.05.78.SqlDataProvider @@ -0,0 +1,84 @@ +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @MaxAge int, + @IsApproved bit, + @IsDraft bit, + @StartDate datetime, + @KeyWords varchar(255), + @ShowPending bit, + @ShowExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @SortBy varchar(50), + @SortDirection varchar(50), + @Month int, + @Year int +AS +GO + +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorList + @ModuleID int +AS + +SELECT DISTINCT + Authors.UserID, + Authors.Username, + Authors.FirstName, + Authors.LastName, + Authors.DisplayName + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Articles, {databaseOwner}{objectQualifier}Users Authors + +WHERE + Articles.AuthorID = Authors.UserID + and + Articles.ModuleID = @ModuleID + and + Articles.IsApproved = 1 + +ORDER BY + Authors.FirstName, Authors.LastName +GO + +drop procedure {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive + @ModuleID int, + @CategoryID varchar(255) +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null or Article.StartDate < ''' + convert(nvarchar, DateAdd(mi, 1, GetDate())) + ''')' +SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null or Article.EndDate > ''' + convert(nvarchar, DateAdd(mi, -1, GetDate())) + ''')' + +EXEC(' +select Month(StartDate) as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] +from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article +where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' +group by Year(StartDate), Month(StartDate) +order by [Year] desc, [Month] desc') +GO diff --git a/SqlDataProvider/00.06.00.SqlDataProvider b/SqlDataProvider/00.06.00.SqlDataProvider new file mode 100644 index 0000000..d02eaf6 --- /dev/null +++ b/SqlDataProvider/00.06.00.SqlDataProvider @@ -0,0 +1,218 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ADD + isApproved bit NOT NULL CONSTRAINT DF_{objectQualifier}DnnForge_NewsArticles_Comment_isApproved DEFAULT 1, + approvedBy int NULL +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment + @ArticleID int, + @UserID int, + @Comment ntext, + @RemoteAddress nvarchar(50) , + @Type int, + @TrackbackUrl nvarchar(255), + @TrackbackTitle nvarchar(255), + @TrackbackBlogName nvarchar(255), + @TrackbackExcerpt ntext, + @AnonymousName nvarchar(255), + @AnonymousEmail nvarchar(255), + @AnonymousURL nvarchar(255), + @NotifyMe bit, + @IsApproved bit, + @ApprovedBy int +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ( + [ArticleID], + [UserID], + [Comment], + [RemoteAddress], + [Type], + [TrackbackUrl], + [TrackbackTitle], + [TrackbackBlogName], + [TrackbackExcerpt], + [AnonymousName], + [AnonymousEmail], + [AnonymousURL], + [NotifyMe], + [IsApproved], + [ApprovedBy] +) VALUES ( + @ArticleID, + @UserID, + @Comment, + @RemoteAddress, + @Type, + @TrackbackUrl, + @TrackbackTitle, + @TrackbackBlogName, + @TrackbackExcerpt, + @AnonymousName, + @AnonymousEmail, + @AnonymousURL, + @NotifyMe, + @IsApproved, + @ApprovedBy +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment + @CommentID int, + @ArticleID int, + @UserID int, + @Comment ntext, + @RemoteAddress nvarchar(50), + @Type int, + @TrackbackUrl nvarchar(255), + @TrackbackTitle nvarchar(255), + @TrackbackBlogName nvarchar(255), + @TrackbackExcerpt ntext, + @AnonymousName nvarchar(255), + @AnonymousEmail nvarchar(255), + @AnonymousURL nvarchar(255), + @NotifyMe bit, + @IsApproved bit, + @ApprovedBy int +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment SET + [ArticleID] = @ArticleID, + [UserID] = @UserID, + [Comment] = @Comment, + [RemoteAddress] = @RemoteAddress, + [Type] = @Type, + [TrackbackUrl] = @TrackbackUrl, + [TrackbackTitle] = @TrackbackTitle, + [TrackbackBlogName] = @TrackbackBlogName, + [TrackbackExcerpt] = @TrackbackExcerpt, + [AnonymousName] = @AnonymousName, + [AnonymousEmail] = @AnonymousEmail, + [AnonymousURL] = @AnonymousURL, + [NotifyMe] = @NotifyMe, + [IsApproved] = @IsApproved, + [ApprovedBy] = @ApprovedBy +WHERE + [CommentID] = @CommentID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList + @ModuleID int, + @ArticleID int, + @IsApproved bit +AS + +SELECT + Comment.[CommentID], + Comment.[ArticleID], + Comment.[UserID], + Comment.[CreatedDate], + Comment.[Comment], + Comment.[RemoteAddress], + Comment.[Type], + Comment.[TrackbackUrl], + Comment.[TrackbackTitle], + Comment.[TrackbackBlogName], + Comment.[TrackbackExcerpt], + Comment.[AnonymousName], + Comment.[AnonymousEmail], + Comment.[AnonymousURL], + Comment.[NotifyMe], + Comment.[IsApproved], + Comment.[ApprovedBy], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article on Comment.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Comment.UserID = Author.UserID +WHERE + Article.ModuleID = @ModuleID + and + (@ArticleID is null OR Comment.[ArticleID] = @ArticleID) + and + Comment.IsApproved = @IsApproved +ORDER BY + Comment.[CreatedDate] ASC +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment + @CommentID int +AS + +SELECT + Comment.[CommentID], + Comment.[ArticleID], + Comment.[UserID], + Comment.[CreatedDate], + Comment.[Comment], + Comment.[RemoteAddress], + Comment.[Type], + Comment.[TrackbackUrl], + Comment.[TrackbackTitle], + Comment.[TrackbackBlogName], + Comment.[TrackbackExcerpt], + Comment.[AnonymousName], + Comment.[AnonymousEmail], + Comment.[AnonymousURL], + Comment.[NotifyMe], + Comment.[IsApproved], + Comment.[ApprovedBy], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Comment.UserID = Author.UserID +WHERE + [CommentID] = @CommentID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @MaxAge int, + @IsApproved bit, + @IsDraft bit, + @StartDate datetime, + @KeyWords varchar(255), + @ShowPending bit, + @ShowExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @SortBy varchar(50), + @SortDirection varchar(50), + @Month int, + @Year int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +GO diff --git a/SqlDataProvider/00.06.04.SqlDataProvider b/SqlDataProvider/00.06.04.SqlDataProvider new file mode 100644 index 0000000..ebe987a --- /dev/null +++ b/SqlDataProvider/00.06.04.SqlDataProvider @@ -0,0 +1,45 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive + @ModuleID int, + @CategoryID varchar(255), + @GroupBy varchar(255) +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null or Article.StartDate < ''' + convert(nvarchar, DateAdd(mi, 1, GetDate())) + ''')' +SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null or Article.EndDate > ''' + convert(nvarchar, DateAdd(mi, -1, GetDate())) + ''')' + +IF( @GroupBy = 'Month' ) +BEGIN +EXEC(' +select Month(StartDate) as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] +from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article +where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' +group by Year(StartDate), Month(StartDate) +order by [Year] desc, [Month] desc') +END +ELSE +BEGIN +EXEC(' +select 1 as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] +from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article +where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' +group by Year(StartDate) +order by [Year] desc') +END +GO diff --git a/SqlDataProvider/00.06.07.SqlDataProvider b/SqlDataProvider/00.06.07.SqlDataProvider new file mode 100644 index 0000000..ef042eb --- /dev/null +++ b/SqlDataProvider/00.06.07.SqlDataProvider @@ -0,0 +1,74 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + Add Summary2 ntext +GO + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + SET Summary2 = Summary +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + DROP COLUMN Summary +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + Add Summary ntext +GO + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + SET Summary = Summary2 +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + DROP COLUMN Summary2 +GO + +CREATE TABLE #Article +( + ArticleID INT +) + +INSERT INTO #Article +select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article where Article.ArticleID not in (select ArticleID FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page WHERE Article.ArticleID = Page.ArticleID) + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page(ArticleID, Title, PageText, SortOrder) +select ArticleID, Title, Summary, 0 from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article where Article.ArticleID not in (select ArticleID FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page WHERE Article.ArticleID = Page.ArticleID) + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET Summary = null +WHERE ArticleID in (select ArticleID from #Article) + +DROP TABLE #Article +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @MaxAge int, + @IsApproved bit, + @IsDraft bit, + @StartDate datetime, + @KeyWords varchar(255), + @ShowPending bit, + @ShowExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @SortBy varchar(50), + @SortDirection varchar(50), + @Month int, + @Year int +AS +GO diff --git a/SqlDataProvider/00.06.08.SqlDataProvider b/SqlDataProvider/00.06.08.SqlDataProvider new file mode 100644 index 0000000..5f3ba71 --- /dev/null +++ b/SqlDataProvider/00.06.08.SqlDataProvider @@ -0,0 +1,24 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @MaxAge int, + @IsApproved bit, + @IsDraft bit, + @StartDate datetime, + @KeyWords varchar(255), + @ShowPending bit, + @ShowExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @SortBy varchar(50), + @SortDirection varchar(50), + @Month int, + @Year int +AS +GO diff --git a/SqlDataProvider/00.06.09.SqlDataProvider b/SqlDataProvider/00.06.09.SqlDataProvider new file mode 100644 index 0000000..5f3ba71 --- /dev/null +++ b/SqlDataProvider/00.06.09.SqlDataProvider @@ -0,0 +1,24 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @MaxAge int, + @IsApproved bit, + @IsDraft bit, + @StartDate datetime, + @KeyWords varchar(255), + @ShowPending bit, + @ShowExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @SortBy varchar(50), + @SortDirection varchar(50), + @Month int, + @Year int +AS +GO diff --git a/SqlDataProvider/00.06.11.SqlDataProvider b/SqlDataProvider/00.06.11.SqlDataProvider new file mode 100644 index 0000000..2a67d7d --- /dev/null +++ b/SqlDataProvider/00.06.11.SqlDataProvider @@ -0,0 +1,63 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics + @ModuleID int, + @CategoryID varchar(255) +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Articles.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Articles.ArticleID in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryID + '))' + +EXEC(' +SELECT + UserID, UserName, DisplayName, FirstName, LastName, count(*) as ''ArticleCount'' +FROM + {databaseOwner}{objectQualifier}Users Users, {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Articles +where 1 = 1 and Users.UserID = Articles.AuthorID ' + + @strWhere + ' +GROUP BY + UserID, UserName, DisplayName, FirstName, LastName') +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @MaxAge int, + @IsApproved bit, + @IsDraft bit, + @StartDate datetime, + @KeyWords varchar(255), + @ShowPending bit, + @ShowExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @SortBy varchar(50), + @SortDirection varchar(50), + @Month int, + @Year int +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +GO diff --git a/SqlDataProvider/00.06.14.SqlDataProvider b/SqlDataProvider/00.06.14.SqlDataProvider new file mode 100644 index 0000000..f10fae9 --- /dev/null +++ b/SqlDataProvider/00.06.14.SqlDataProvider @@ -0,0 +1,26 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @MaxAge int, + @IsApproved bit, + @IsDraft bit, + @StartDate datetime, + @KeyWords varchar(255), + @ShowPending bit, + @ShowExpired bit, + @AuthorID int, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @SortBy varchar(50), + @SortDirection varchar(50), + @Month int, + @Year int +AS +GO diff --git a/SqlDataProvider/00.06.16.SqlDataProvider b/SqlDataProvider/00.06.16.SqlDataProvider new file mode 100644 index 0000000..cb7943d --- /dev/null +++ b/SqlDataProvider/00.06.16.SqlDataProvider @@ -0,0 +1,116 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetComment + @CommentID int +AS + +SELECT + Comment.[CommentID], + Comment.[ArticleID], + Comment.[UserID], + Comment.[CreatedDate], + Comment.[Comment], + Comment.[RemoteAddress], + Comment.[Type], + Comment.[TrackbackUrl], + Comment.[TrackbackTitle], + Comment.[TrackbackBlogName], + Comment.[TrackbackExcerpt], + Comment.[AnonymousName], + Comment.[AnonymousEmail], + Comment.[AnonymousURL], + Comment.[NotifyMe], + Comment.[IsApproved], + Comment.[ApprovedBy], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Comment.UserID = Author.UserID +WHERE + [CommentID] = @CommentID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList + @ModuleID int, + @ArticleID int, + @IsApproved bit +AS + +SELECT + Comment.[CommentID], + Comment.[ArticleID], + Comment.[UserID], + Comment.[CreatedDate], + Comment.[Comment], + Comment.[RemoteAddress], + Comment.[Type], + Comment.[TrackbackUrl], + Comment.[TrackbackTitle], + Comment.[TrackbackBlogName], + Comment.[TrackbackExcerpt], + Comment.[AnonymousName], + Comment.[AnonymousEmail], + Comment.[AnonymousURL], + Comment.[NotifyMe], + Comment.[IsApproved], + Comment.[ApprovedBy], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article on Comment.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Comment.UserID = Author.UserID +WHERE + Article.ModuleID = @ModuleID + and + (@ArticleID is null OR Comment.[ArticleID] = @ArticleID) + and + Comment.IsApproved = @IsApproved +ORDER BY + Comment.[CreatedDate] ASC +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics + @ModuleID int, + @CategoryID varchar(255), + @SortBy varchar(255) +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Articles.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Articles.ArticleID in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryID + '))' + +EXEC(' +SELECT + UserID, UserName, DisplayName, FirstName, LastName, count(*) as ''ArticleCount'' +FROM + {databaseOwner}{objectQualifier}Users Users, {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Articles +where 1 = 1 and Users.UserID = Articles.AuthorID ' + + @strWhere + ' +GROUP BY + UserID, UserName, DisplayName, FirstName, LastName +ORDER BY ' + + @SortBy) +GO diff --git a/SqlDataProvider/00.07.00.SqlDataProvider b/SqlDataProvider/00.07.00.SqlDataProvider new file mode 100644 index 0000000..346ef73 --- /dev/null +++ b/SqlDataProvider/00.07.00.SqlDataProvider @@ -0,0 +1,653 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + ADD [CommentCount] int, [PageCount] int, [Rating] decimal(3,2), [RatingCount] int +GO + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +GO + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +GO + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [Rating] = (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +GO + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [RatingCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords varchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit +AS +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as UpdatedDisplayName, + Page.PageText as 'Body' + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + Article.[ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive + @ModuleID int, + @CategoryID varchar(255), + @GroupBy varchar(255) +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null or Article.StartDate < ''' + convert(nvarchar, DateAdd(mi, 1, GetDate())) + ''')' + +IF( @GroupBy = 'Month' ) +BEGIN +EXEC(' + select Month(StartDate) as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] + from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article + where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' + group by Year(StartDate), Month(StartDate) + order by [Year] desc, [Month] desc') +END +ELSE +BEGIN +EXEC(' + select 1 as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] + from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article + where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' + group by Year(StartDate) + order by [Year] desc') +END +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics + @ModuleID int, + @CategoryID varchar(255), + @SortBy varchar(255) +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Articles.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Articles.ArticleID in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryID + '))' + +EXEC(' +SELECT + UserID, UserName, DisplayName, FirstName, LastName, count(*) as ''ArticleCount'' +FROM + {databaseOwner}{objectQualifier}Users Users, {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Articles +where Articles.IsApproved = 1 and Articles.IsDraft = 0 and Users.UserID = Articles.AuthorID ' + + @strWhere + ' +GROUP BY + UserID, UserName, DisplayName, FirstName, LastName +ORDER BY ' + + @SortBy) +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryStatistics +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryStatistics + @ModuleID int, + @CategoryID varchar(255) +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND c.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND c.CategoryID in (' + @CategoryID + ')' + +EXEC(' +SELECT + c.CategoryID, c.Name, count(ac.ArticleID) as ''NumberOfArticles'', sum(a.NumberOfViews) as ''NumberOfViews'' +FROM + {databaseOwner}{objectQualifier}dnnforge_newsarticles_category c + INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac ON c.CategoryID = ac.CategoryID + INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a ON + a.ArticleID = ac.ArticleID AND + a.IsDraft = 0 AND + a.IsApproved = 1 AND + (a.StartDate is null or a.StartDate < DateAdd(mi, 1, GetDate())) +WHERE + 1=1 ' + + @strWhere + ' +GROUP BY + c.CategoryID, c.Name +ORDER BY + c.Name') +GO + +DELETE FROM {databaseOwner}{objectQualifier}ModuleControls WHERE ControlSrc = 'DesktopModules/DnnForge - NewsArticles/ucArticleView.ascx' +GO + +DELETE FROM {databaseOwner}{objectQualifier}ModuleControls WHERE ControlSrc = 'DesktopModules/DnnForge - NewsArticles/ucArchiveView.ascx' +GO + +DELETE FROM {databaseOwner}{objectQualifier}ModuleControls WHERE ControlSrc = 'DesktopModules/DnnForge - NewsArticles/ucAuthorView.ascx' +GO + +DELETE FROM {databaseOwner}{objectQualifier}ModuleControls WHERE ControlSrc = 'DesktopModules/DnnForge - NewsArticles/ucCategories.ascx' +GO + +DELETE FROM {databaseOwner}{objectQualifier}ModuleControls WHERE ControlSrc = 'DesktopModules/DnnForge - NewsArticles/ucCategoryView.ascx' +GO + +DELETE FROM {databaseOwner}{objectQualifier}ModuleControls WHERE ControlSrc = 'DesktopModules/DnnForge - NewsArticles/ucDeleteComment.ascx' +GO + +DELETE FROM {databaseOwner}{objectQualifier}ModuleControls WHERE ControlSrc = 'DesktopModules/DnnForge - NewsArticles/ucPostComment.ascx' +GO + +DELETE FROM {databaseOwner}{objectQualifier}ModuleControls WHERE ControlSrc = 'DesktopModules/DnnForge - NewsArticles/ucSearch.ascx' +GO + +DELETE FROM {databaseOwner}{objectQualifier}ModuleControls WHERE ControlSrc = 'DesktopModules/DnnForge - NewsArticles/ucSyndication.ascx' +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddPage +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddPage + @ArticleID int, + @Title nvarchar(255), + @PageText ntext, + @SortOrder int +AS + +declare @count int + +select @count = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where ArticleID = @ArticleID) + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page ( + [ArticleID], + [Title], + [PageText], + [SortOrder] +) VALUES ( + @ArticleID, + @Title, + @PageText, + @count +) + +select SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeletePage +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeletePage + @PageID int +AS + +DECLARE @ArticleID int +SELECT @ArticleID = ArticleID FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page WHERE [PageID] = @PageID + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page +WHERE + [PageID] = @PageID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdatePage +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdatePage + @PageID int, + @ArticleID int, + @Title nvarchar(255), + @PageText ntext, + @SortOrder int +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page SET + [ArticleID] = @ArticleID, + [Title] = @Title, + [PageText] = @PageText, + [SortOrder] = @SortOrder +WHERE + [PageID] = @PageID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment + @ArticleID int, + @UserID int, + @Comment ntext, + @RemoteAddress nvarchar(50) , + @Type int, + @TrackbackUrl nvarchar(255), + @TrackbackTitle nvarchar(255), + @TrackbackBlogName nvarchar(255), + @TrackbackExcerpt ntext, + @AnonymousName nvarchar(255), + @AnonymousEmail nvarchar(255), + @AnonymousURL nvarchar(255), + @NotifyMe bit, + @IsApproved bit, + @ApprovedBy int +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ( + [ArticleID], + [UserID], + [Comment], + [RemoteAddress], + [Type], + [TrackbackUrl], + [TrackbackTitle], + [TrackbackBlogName], + [TrackbackExcerpt], + [AnonymousName], + [AnonymousEmail], + [AnonymousURL], + [NotifyMe], + [IsApproved], + [ApprovedBy] +) VALUES ( + @ArticleID, + @UserID, + @Comment, + @RemoteAddress, + @Type, + @TrackbackUrl, + @TrackbackTitle, + @TrackbackBlogName, + @TrackbackExcerpt, + @AnonymousName, + @AnonymousEmail, + @AnonymousURL, + @NotifyMe, + @IsApproved, + @ApprovedBy +) + +select SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +WHERE ArticleID = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteComment + @CommentID int +AS + +DECLARE @ArticleID int +SELECT @ArticleID = ArticleID FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment WHERE [CommentID] = @CommentID + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment +WHERE [CommentID] = @CommentID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +WHERE ArticleID = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateComment + @CommentID int, + @ArticleID int, + @UserID int, + @Comment ntext, + @RemoteAddress nvarchar(50), + @Type int, + @TrackbackUrl nvarchar(255), + @TrackbackTitle nvarchar(255), + @TrackbackBlogName nvarchar(255), + @TrackbackExcerpt ntext, + @AnonymousName nvarchar(255), + @AnonymousEmail nvarchar(255), + @AnonymousURL nvarchar(255), + @NotifyMe bit, + @IsApproved bit, + @ApprovedBy int +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment SET + [ArticleID] = @ArticleID, + [UserID] = @UserID, + [Comment] = @Comment, + [RemoteAddress] = @RemoteAddress, + [Type] = @Type, + [TrackbackUrl] = @TrackbackUrl, + [TrackbackTitle] = @TrackbackTitle, + [TrackbackBlogName] = @TrackbackBlogName, + [TrackbackExcerpt] = @TrackbackExcerpt, + [AnonymousName] = @AnonymousName, + [AnonymousEmail] = @AnonymousEmail, + [AnonymousURL] = @AnonymousURL, + [NotifyMe] = @NotifyMe, + [IsApproved] = @IsApproved, + [ApprovedBy] = @ApprovedBy +WHERE + [CommentID] = @CommentID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +WHERE ArticleID = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_RatingAdd +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_RatingAdd + @ArticleID int, + @UserID int, + @CreatedDate datetime, + @Rating float +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating ( + [ArticleID], + [UserID], + [CreatedDate], + [Rating] +) VALUES ( + @ArticleID, + @UserID, + @CreatedDate, + @Rating +) + +select SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [Rating] = (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [Rating] = (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [RatingCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_RatingDelete +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_RatingDelete + @RatingID int +AS + +DECLARE @ArticleID int +SELECT @ArticleID = ArticleID FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating WHERE [RatingID] = @RatingID + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating +WHERE [RatingID] = @RatingID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [Rating] = (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [RatingCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255), + @IsSecure bit, + @IsNewWindow bit +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [AuthorID], + [ApproverID], + [CreatedDate], + [LastUpdate], + [Title], + [Summary], + [IsApproved], + [NumberOfViews], + [IsDraft], + [StartDate], + [EndDate], + [ModuleID], + [ImageUrl], + [IsFeatured], + [LastUpdateID], + [Url], + [IsSecure], + [IsNewWindow] +) VALUES ( + @AuthorID, + @ApproverID, + @CreatedDate, + @LastUpdate, + @Title, + @Summary, + @IsApproved, + @NumberOfViews, + @IsDraft, + @StartDate, + @EndDate, + @ModuleID, + @ImageUrl, + @IsFeatured, + @LastUpdateID, + @Url, + @IsSecure, + @IsNewWindow +) + +select SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +WHERE ArticleID = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [Rating] = (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [RatingCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle + @ArticleID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255), + @IsSecure bit, + @IsNewWindow bit +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article SET + [AuthorID] = @AuthorID, + [ApproverID] = @ApproverID, + [CreatedDate] = @CreatedDate, + [LastUpdate] = @LastUpdate, + [Title] = @Title, + [Summary] = @Summary, + [IsApproved] = @IsApproved, + [NumberOfViews] = @NumberOfViews, + [IsDraft] = @IsDraft, + [StartDate] = @StartDate, + [EndDate] = @EndDate, + [ModuleID] = @ModuleID, + [ImageUrl] = @ImageUrl, + [IsFeatured] = @IsFeatured, + [LastUpdateID] = @LastUpdateID, + [Url] = @Url, + [IsSecure] = @IsSecure, + [IsNewWindow] = @IsNewWindow +WHERE + [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +WHERE ArticleID = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [Rating] = (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [RatingCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID +GO diff --git a/SqlDataProvider/00.07.01.SqlDataProvider b/SqlDataProvider/00.07.01.SqlDataProvider new file mode 100644 index 0000000..0c86f53 --- /dev/null +++ b/SqlDataProvider/00.07.01.SqlDataProvider @@ -0,0 +1,204 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords varchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + ''')' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate > ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) + if(@CategoryIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE ''%' + @Keywords + '%'' OR Article.Summary LIKE ''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE ''%' + @Keywords + '%'') > 0))' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO diff --git a/SqlDataProvider/00.07.05.SqlDataProvider b/SqlDataProvider/00.07.05.SqlDataProvider new file mode 100644 index 0000000..e115479 --- /dev/null +++ b/SqlDataProvider/00.07.05.SqlDataProvider @@ -0,0 +1,204 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords varchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate < GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate > ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) + if(@CategoryIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE ''%' + @Keywords + '%'' OR Article.Summary LIKE ''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE ''%' + @Keywords + '%'') > 0))' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO diff --git a/SqlDataProvider/00.07.06.SqlDataProvider b/SqlDataProvider/00.07.06.SqlDataProvider new file mode 100644 index 0000000..c0beb9e --- /dev/null +++ b/SqlDataProvider/00.07.06.SqlDataProvider @@ -0,0 +1,170 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + ADD [ParentID] int NULL +GO + +UPDATE + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +SET + [ParentID] = -1 +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCategory + @ModuleID int, + @ParentID int, + @Name nvarchar(255), + @Image nvarchar(255) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category ( + [ModuleID], + [ParentID], + [Name], + [Image] +) VALUES ( + @ModuleID, + @ParentID, + @Name, + @Image +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCategory + @CategoryID int, + @ModuleID int, + @ParentID int, + @Name nvarchar(255), + @Image nvarchar(255) +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category SET + [ModuleID] = @ModuleID, + [ParentID] = @ParentID, + [Name] = @Name, + [Image] = @Image +WHERE + [CategoryID] = @CategoryID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategory + @CategoryID int +AS + +SELECT + [CategoryID], + [ParentID], + [ModuleID], + [Name], + [Image] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +WHERE + [CategoryID] = @CategoryID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryList + @ModuleID int, + @ParentID int +AS + +SELECT + [CategoryID], + [ParentID], + [ModuleID], + [Name], + [Image] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +WHERE + [ModuleID] = @ModuleID + AND + [ParentID] = @ParentID +ORDER BY + [Name] +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll + @ModuleID int, + @Current int, + @CategoryID varchar(255) +AS + +SET NOCOUNT ON +DECLARE @level int, @line int + +CREATE TABLE #hierarchy(HierarchyID int IDENTITY (1,1), CategoryID int, level int) +CREATE TABLE #stack (item int, level int) +INSERT INTO #stack VALUES (@current, 1) +SELECT @level = 1 + +WHILE @level > 0 +BEGIN + IF EXISTS (SELECT * FROM #stack WHERE level = @level) + BEGIN + SELECT @current = item + FROM #stack + WHERE level = @level + + insert into #hierarchy(CategoryID, level) values(@current, @level) + + DELETE FROM #stack + WHERE level = @level + AND item = @current + + INSERT #stack + SELECT CategoryID, @level + 1 + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE ParentID = @current and ModuleID = @ModuleID + ORDER BY [Name] DESC + + IF @@ROWCOUNT > 0 + SELECT @level = @level + 1 + END + ELSE + SELECT @level = @level - 1 +END -- WHILE + +DECLARE @strModuleID nvarchar(50) +SELECT @strModuleID = convert(varchar, @ModuleID) + +DECLARE @strCategoryId nvarchar(255) +IF (@CategoryId is not null) + SELECT @strCategoryId = ' AND c.CategoryID in (' + @CategoryID + ')' + +EXEC(' +SELECT + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + REPLICATE(''.'',(level-2)*2) + c.[Name] as ''NameIndented'', + c.[Image], + (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac WHERE ac.CategoryID = c.CategoryID) as ''NumberofArticles'', + (SELECT SUM(a.NumberOfViews) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac ON a.ArticleID = ac.ArticleID WHERE ac.CategoryID = c.CategoryID) as ''NumberofViews'' +FROM + #hierarchy h INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON h.CategoryID = c.CategoryID +WHERE + c.[ModuleID] = ' + @strModuleID + @strCategoryId + ' +ORDER BY + h.HierarchyID ASC') + +drop table #hierarchy +drop table #stack +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryStatistics +GO diff --git a/SqlDataProvider/00.07.08.SqlDataProvider b/SqlDataProvider/00.07.08.SqlDataProvider new file mode 100644 index 0000000..b6a7fb3 --- /dev/null +++ b/SqlDataProvider/00.07.08.SqlDataProvider @@ -0,0 +1,173 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + ADD [Description] ntext +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCategory + @ModuleID int, + @ParentID int, + @Name nvarchar(255), + @Image nvarchar(255), + @Description ntext +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category ( + [ModuleID], + [ParentID], + [Name], + [Image], + [Description] +) VALUES ( + @ModuleID, + @ParentID, + @Name, + @Image, + @Description +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCategory + @CategoryID int, + @ModuleID int, + @ParentID int, + @Name nvarchar(255), + @Image nvarchar(255), + @Description ntext +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category SET + [ModuleID] = @ModuleID, + [ParentID] = @ParentID, + [Name] = @Name, + [Image] = @Image, + [Description] = @Description +WHERE + [CategoryID] = @CategoryID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategory + @CategoryID int +AS + +SELECT + [CategoryID], + [ParentID], + [ModuleID], + [Name], + [Image], + [Description] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +WHERE + [CategoryID] = @CategoryID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryList + @ModuleID int, + @ParentID int +AS + +SELECT + [CategoryID], + [ParentID], + [ModuleID], + [Name], + [Image], + [Description] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +WHERE + [ModuleID] = @ModuleID + AND + [ParentID] = @ParentID +ORDER BY + [Name] +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll + @ModuleID int, + @Current int, + @CategoryID varchar(255) +AS + +SET NOCOUNT ON +DECLARE @level int, @line int + +CREATE TABLE #hierarchy(HierarchyID int IDENTITY (1,1), CategoryID int, level int) +CREATE TABLE #stack (item int, level int) +INSERT INTO #stack VALUES (@current, 1) +SELECT @level = 1 + +WHILE @level > 0 +BEGIN + IF EXISTS (SELECT * FROM #stack WHERE level = @level) + BEGIN + SELECT @current = item + FROM #stack + WHERE level = @level + + insert into #hierarchy(CategoryID, level) values(@current, @level) + + DELETE FROM #stack + WHERE level = @level + AND item = @current + + INSERT #stack + SELECT CategoryID, @level + 1 + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE ParentID = @current and ModuleID = @ModuleID + ORDER BY [Name] DESC + + IF @@ROWCOUNT > 0 + SELECT @level = @level + 1 + END + ELSE + SELECT @level = @level - 1 +END -- WHILE + +DECLARE @strModuleID nvarchar(50) +SELECT @strModuleID = convert(varchar, @ModuleID) + +DECLARE @strCategoryId nvarchar(255) +IF (@CategoryId is not null) + SELECT @strCategoryId = ' AND c.CategoryID in (' + @CategoryID + ')' + +EXEC(' +SELECT + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + REPLICATE(''.'',(level-2)*2) + c.[Name] as ''NameIndented'', + c.[Image], + [Description], + level-1 as ''Level'', + (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac WHERE ac.CategoryID = c.CategoryID) as ''NumberofArticles'', + (SELECT SUM(a.NumberOfViews) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac ON a.ArticleID = ac.ArticleID WHERE ac.CategoryID = c.CategoryID) as ''NumberofViews'' +FROM + #hierarchy h INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON h.CategoryID = c.CategoryID +WHERE + c.[ModuleID] = ' + @strModuleID + @strCategoryId + ' +ORDER BY + h.HierarchyID ASC') + +drop table #hierarchy +drop table #stack +GO diff --git a/SqlDataProvider/00.07.10.SqlDataProvider b/SqlDataProvider/00.07.10.SqlDataProvider new file mode 100644 index 0000000..01fd7c2 --- /dev/null +++ b/SqlDataProvider/00.07.10.SqlDataProvider @@ -0,0 +1,197 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + ADD SortOrder int +GO + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category SET SortOrder = 0 +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCategory + @ModuleID int, + @ParentID int, + @Name nvarchar(255), + @Image nvarchar(255), + @Description ntext, + @SortOrder int +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category ( + [ModuleID], + [ParentID], + [Name], + [Image], + [Description], + [SortOrder] +) VALUES ( + @ModuleID, + @ParentID, + @Name, + @Image, + @Description, + @SortOrder +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCategory + @CategoryID int, + @ModuleID int, + @ParentID int, + @Name nvarchar(255), + @Image nvarchar(255), + @Description ntext, + @SortOrder int +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category SET + [ModuleID] = @ModuleID, + [ParentID] = @ParentID, + [Name] = @Name, + [Image] = @Image, + [Description] = @Description, + [SortOrder] = @SortOrder +WHERE + [CategoryID] = @CategoryID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategory + @CategoryID int +AS + +SELECT + [CategoryID], + [ParentID], + [ModuleID], + [Name], + [Image], + [Description], + [SortOrder] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +WHERE + [CategoryID] = @CategoryID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryList + @ModuleID int, + @ParentID int +AS + +SELECT + [CategoryID], + [ParentID], + [ModuleID], + [Name], + [Image], + [Description], + [SortOrder] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +WHERE + [ModuleID] = @ModuleID + AND + [ParentID] = @ParentID +ORDER BY + [SortOrder], [Name] +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll + @ModuleID int, + @Current int, + @CategoryID varchar(255), + @MaxDepth int +AS + +SET NOCOUNT ON + +DECLARE @FilterID int +SET @FilterID = @Current + +DECLARE @level int, @line int + +CREATE TABLE #hierarchy(HierarchyID int IDENTITY (1,1), CategoryID int, level int) +CREATE TABLE #stack (item int, level int) +INSERT INTO #stack VALUES (@current, 1) +SELECT @level = 1 + +WHILE @level > 0 +BEGIN + IF EXISTS (SELECT * FROM #stack WHERE level = @level) + BEGIN + SELECT @current = item + FROM #stack + WHERE level = @level + + insert into #hierarchy(CategoryID, level) values(@current, @level) + + DELETE FROM #stack + WHERE level = @level + AND item = @current + + IF( @MaxDepth IS NULL OR @MaxDepth >= @level ) + BEGIN + INSERT #stack + SELECT CategoryID, @level + 1 + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE ParentID = @current and ModuleID = @ModuleID + ORDER BY [SortOrder] DESC, [Name] DESC + + IF @@ROWCOUNT > 0 + SELECT @level = @level + 1 + END + END + ELSE + SELECT @level = @level - 1 +END -- WHILE + +IF( @FilterID IS NOT NULL ) +BEGIN + DELETE FROM #hierarchy WHERE CategoryID = @FilterID +END + +DECLARE @strModuleID nvarchar(50) +SELECT @strModuleID = convert(varchar, @ModuleID) + +DECLARE @strCategoryId nvarchar(255) +IF (@CategoryId is not null) + SELECT @strCategoryId = ' AND c.CategoryID in (' + @CategoryID + ')' + +EXEC(' +SELECT + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + REPLICATE(''.'',(level-2)*2) + c.[Name] as ''NameIndented'', + c.[Image], + c.[Description], + c.[SortOrder], + level-1 as ''Level'', + (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac WHERE ac.CategoryID = c.CategoryID) as ''NumberofArticles'', + (SELECT SUM(a.NumberOfViews) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac ON a.ArticleID = ac.ArticleID WHERE ac.CategoryID = c.CategoryID) as ''NumberofViews'' +FROM + #hierarchy h INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON h.CategoryID = c.CategoryID +WHERE + c.[ModuleID] = ' + @strModuleID + @strCategoryId + ' +ORDER BY + h.HierarchyID ASC') + +drop table #hierarchy +drop table #stack +GO diff --git a/SqlDataProvider/00.07.13.SqlDataProvider b/SqlDataProvider/00.07.13.SqlDataProvider new file mode 100644 index 0000000..df1894b --- /dev/null +++ b/SqlDataProvider/00.07.13.SqlDataProvider @@ -0,0 +1,207 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords varchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate < GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate > ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) + if(@CategoryIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE ''%' + @Keywords + '%'' OR Article.Summary LIKE ''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE ''%' + @Keywords + '%'') > 0))' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO diff --git a/SqlDataProvider/00.07.14.SqlDataProvider b/SqlDataProvider/00.07.14.SqlDataProvider new file mode 100644 index 0000000..de13278 --- /dev/null +++ b/SqlDataProvider/00.07.14.SqlDataProvider @@ -0,0 +1,88 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll + @ModuleID int, + @Current int, + @CategoryID varchar(255), + @MaxDepth int +AS + +SET NOCOUNT ON + +DECLARE @FilterID int +SET @FilterID = @Current + +DECLARE @level int, @line int + +CREATE TABLE #hierarchy(HierarchyID int IDENTITY (1,1), CategoryID int, level int) +CREATE TABLE #stack (item int, level int) +INSERT INTO #stack VALUES (@current, 1) +SELECT @level = 1 + +WHILE @level > 0 +BEGIN + IF EXISTS (SELECT * FROM #stack WHERE level = @level) + BEGIN + SELECT @current = item + FROM #stack + WHERE level = @level + + insert into #hierarchy(CategoryID, level) values(@current, @level) + + DELETE FROM #stack + WHERE level = @level + AND item = @current + + IF( @MaxDepth IS NULL OR @MaxDepth >= @level ) + BEGIN + INSERT #stack + SELECT CategoryID, @level + 1 + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE ParentID = @current and ModuleID = @ModuleID + ORDER BY [SortOrder] DESC, [Name] DESC + + IF @@ROWCOUNT > 0 + SELECT @level = @level + 1 + END + END + ELSE + SELECT @level = @level - 1 +END -- WHILE + +IF( @FilterID IS NOT NULL ) +BEGIN + DELETE FROM #hierarchy WHERE CategoryID = @FilterID +END + +DECLARE @strModuleID nvarchar(50) +SELECT @strModuleID = convert(varchar, @ModuleID) + +DECLARE @strCategoryId nvarchar(255) +IF (@CategoryId is not null) + SELECT @strCategoryId = ' AND c.CategoryID in (' + @CategoryID + ')' + +EXEC(' +SELECT + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + REPLICATE(''.'',(level-2)*2) + c.[Name] as ''NameIndented'', + c.[Image], + c.[Description], + c.[SortOrder], + level-1 as ''Level'', + (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a ON ac.ArticleID = a.ArticleID WHERE ac.CategoryID = c.CategoryID AND a.IsDraft = 0 AND a.IsApproved = 1) as ''NumberofArticles'', + (SELECT SUM(a.NumberOfViews) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac ON a.ArticleID = ac.ArticleID WHERE ac.CategoryID = c.CategoryID) as ''NumberofViews'' +FROM + #hierarchy h INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON h.CategoryID = c.CategoryID +WHERE + c.[ModuleID] = ' + @strModuleID + @strCategoryId + ' +ORDER BY + h.HierarchyID ASC') + +drop table #hierarchy +drop table #stack +GO diff --git a/SqlDataProvider/00.07.20.SqlDataProvider b/SqlDataProvider/00.07.20.SqlDataProvider new file mode 100644 index 0000000..cf51d8f --- /dev/null +++ b/SqlDataProvider/00.07.20.SqlDataProvider @@ -0,0 +1,138 @@ +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Handout( + [HandoutID] [int] IDENTITY(1,1) NOT NULL, + [ModuleID] [int] NOT NULL, + [UserID] [int] NULL, + [Name] [nvarchar](255) NOT NULL, + [Description] [ntext] NULL +) ON [PRIMARY] +GO + +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_HandoutArticle( + [HandoutID] [int] NOT NULL, + [ArticleID] [int] NOT NULL, + [SortOrder] [int] NOT NULL +) ON [PRIMARY] +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddHandout + @ModuleID int, + @UserID int, + @Name nvarchar(255), + @Description ntext +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Handout ( + [ModuleID], + [UserID], + [Name], + [Description] +) VALUES ( + @ModuleID, + @UserID, + @Name, + @Description +) + +select SCOPE_IDENTITY() +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddHandoutArticle + @HandoutID int, + @ArticleID int, + @SortOrder int +AS + +INSERT INTO + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_HandoutArticle(HandoutID, ArticleID, SortOrder) +VALUES + (@HandoutID, @ArticleID, @SortOrder) +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteHandout + @HandoutID int +AS + +DELETE FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Handout +WHERE + HandoutID = @HandoutID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteHandoutArticleList + @HandoutID int +AS + +DELETE FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_HandoutArticle +WHERE + HandoutID = @HandoutID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetHandout + @HandoutID int +AS + +SELECT + [HandoutID], + [ModuleID], + [UserID], + [Name], + [Description] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Handout +WHERE + HandoutID = @HandoutID +Go + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetHandoutArticleList + @HandoutID int +AS + +SELECT + [HandoutID], + [ArticleID], + [SortOrder] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_HandoutArticle +WHERE + HandoutID = @HandoutID +ORDER BY + [SortOrder] ASC +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetHandoutList + @UserID int +AS + +SELECT + [HandoutID], + [ModuleID], + [UserID], + [Name], + [Description] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Handout +WHERE + [UserID] = @UserID +ORDER BY + [Name] +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateHandout + @HandoutID int, + @ModuleID int, + @UserID int, + @Name nvarchar(255), + @Description ntext +AS + +UPDATE + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Handout +SET + [ModuleID] = @ModuleID, + [UserID] = @UserID, + [Name] = @Name, + [Description] = @Description +WHERE + HandoutID = @HandoutID +GO diff --git a/SqlDataProvider/00.07.32.SqlDataProvider b/SqlDataProvider/00.07.32.SqlDataProvider new file mode 100644 index 0000000..a3ad3b5 --- /dev/null +++ b/SqlDataProvider/00.07.32.SqlDataProvider @@ -0,0 +1,398 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics + @ModuleID int, + @CategoryID varchar(255), + @SortBy varchar(255), + @ShowPending bit +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Articles.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Articles.ArticleID in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@ShowPending is null ) + SELECT @strWhere = @strWhere + ' AND (Articles.StartDate is null OR Articles.StartDate < ''' + convert(nvarchar, DateAdd(mi, 1, GetDate())) + ''')' + +EXEC(' +SELECT + UserID, UserName, DisplayName, FirstName, LastName, count(*) as ''ArticleCount'' +FROM + {databaseOwner}{objectQualifier}Users Users, {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Articles +where Articles.IsApproved = 1 and Articles.IsDraft = 0 and Users.UserID = Articles.AuthorID ' + + @strWhere + ' +GROUP BY + UserID, UserName, DisplayName, FirstName, LastName +ORDER BY ' + + @SortBy) +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll + @ModuleID int, + @Current int, + @CategoryID varchar(255), + @MaxDepth int, + @ShowPending bit +AS + +SET NOCOUNT ON + +DECLARE @FilterID int +SET @FilterID = @Current + +DECLARE @level int, @line int + +CREATE TABLE #hierarchy(HierarchyID int IDENTITY (1,1), CategoryID int, level int) +CREATE TABLE #stack (item int, level int) +INSERT INTO #stack VALUES (@current, 1) +SELECT @level = 1 + +WHILE @level > 0 +BEGIN + IF EXISTS (SELECT * FROM #stack WHERE level = @level) + BEGIN + SELECT @current = item + FROM #stack + WHERE level = @level + + insert into #hierarchy(CategoryID, level) values(@current, @level) + + DELETE FROM #stack + WHERE level = @level + AND item = @current + + IF( @MaxDepth IS NULL OR @MaxDepth >= @level ) + BEGIN + INSERT #stack + SELECT CategoryID, @level + 1 + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE ParentID = @current and ModuleID = @ModuleID + ORDER BY [SortOrder] DESC, [Name] DESC + + IF @@ROWCOUNT > 0 + SELECT @level = @level + 1 + END + END + ELSE + SELECT @level = @level - 1 +END -- WHILE + +IF( @FilterID IS NOT NULL ) +BEGIN + DELETE FROM #hierarchy WHERE CategoryID = @FilterID +END + +DECLARE @strModuleID nvarchar(50) +SELECT @strModuleID = convert(varchar, @ModuleID) + +DECLARE @strCategoryId nvarchar(255) +IF (@CategoryId is not null) + SELECT @strCategoryId = ' AND c.CategoryID in (' + @CategoryID + ')' + +DECLARE @strPending nvarchar(2000) +IF (@ShowPending is null) + SELECT @strPending = ' AND (a.StartDate IS NULL OR a.StartDate < GetDate())' + +EXEC(' +SELECT + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + REPLICATE(''.'',(level-2)*2) + c.[Name] as ''NameIndented'', + c.[Image], + c.[Description], + c.[SortOrder], + level-1 as ''Level'', + (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a ON ac.ArticleID = a.ArticleID WHERE ac.CategoryID = c.CategoryID AND a.IsDraft = 0 AND a.IsApproved = 1 ' + @strPending + ') as ''NumberofArticles'', + (SELECT SUM(a.NumberOfViews) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac ON a.ArticleID = ac.ArticleID WHERE ac.CategoryID = c.CategoryID) as ''NumberofViews'' +FROM + #hierarchy h INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON h.CategoryID = c.CategoryID +WHERE + c.[ModuleID] = ' + @strModuleID + @strCategoryId + ' +ORDER BY + h.HierarchyID ASC') + +drop table #hierarchy +drop table #stack +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive + @ModuleID int, + @CategoryID varchar(255), + @GroupBy varchar(255), + @ShowPending bit +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@ShowPending is null) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null or Article.StartDate < ''' + convert(nvarchar, DateAdd(mi, 1, GetDate())) + ''')' +END + +IF( @GroupBy = 'Month' ) +BEGIN +EXEC(' + select Month(StartDate) as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] + from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article + where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' + group by Year(StartDate), Month(StartDate) + order by [Year] desc, [Month] desc') +END +ELSE +BEGIN +EXEC(' + select 1 as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] + from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article + where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' + group by Year(StartDate) + order by [Year] desc') +END +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords varchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate < GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' +END +ELSE +BEGIN + IF( @CurrentDate is not null AND @AgedDate is not null ) + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + '''))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' + END +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate > ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) + if(@CategoryIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE ''%' + @Keywords + '%'' OR Article.Summary LIKE ''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE ''%' + @Keywords + '%'') > 0))' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO diff --git a/SqlDataProvider/00.07.33.SqlDataProvider b/SqlDataProvider/00.07.33.SqlDataProvider new file mode 100644 index 0000000..8e7de48 --- /dev/null +++ b/SqlDataProvider/00.07.33.SqlDataProvider @@ -0,0 +1,193 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics + @ModuleID int, + @CategoryID varchar(255), + @AuthorID int, + @SortBy varchar(255), + @ShowPending bit +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Articles.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Articles.ArticleID in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Articles.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@ShowPending is null ) + SELECT @strWhere = @strWhere + ' AND (Articles.StartDate is null OR Articles.StartDate < ''' + convert(nvarchar, DateAdd(mi, 1, GetDate())) + ''')' + +EXEC(' +SELECT + UserID, UserName, DisplayName, FirstName, LastName, count(*) as ''ArticleCount'' +FROM + {databaseOwner}{objectQualifier}Users Users, {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Articles +where Articles.IsApproved = 1 and Articles.IsDraft = 0 and Users.UserID = Articles.AuthorID ' + + @strWhere + ' +GROUP BY + UserID, UserName, DisplayName, FirstName, LastName +ORDER BY ' + + @SortBy) +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive + @ModuleID int, + @CategoryID varchar(255), + @AuthorID int, + @GroupBy varchar(255), + @ShowPending bit +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@ShowPending is null) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null or Article.StartDate < ''' + convert(nvarchar, DateAdd(mi, 1, GetDate())) + ''')' +END + +IF( @GroupBy = 'Month' ) +BEGIN +EXEC(' + select Month(StartDate) as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] + from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article + where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' + group by Year(StartDate), Month(StartDate) + order by [Year] desc, [Month] desc') +END +ELSE +BEGIN +EXEC(' + select 1 as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] + from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article + where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' + group by Year(StartDate) + order by [Year] desc') +END +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll + @ModuleID int, + @Current int, + @CategoryID varchar(255), + @AuthorID int, + @MaxDepth int, + @ShowPending bit +AS + +SET NOCOUNT ON + +DECLARE @FilterID int +SET @FilterID = @Current + +DECLARE @level int, @line int + +CREATE TABLE #hierarchy(HierarchyID int IDENTITY (1,1), CategoryID int, level int) +CREATE TABLE #stack (item int, level int) +INSERT INTO #stack VALUES (@current, 1) +SELECT @level = 1 + +WHILE @level > 0 +BEGIN + IF EXISTS (SELECT * FROM #stack WHERE level = @level) + BEGIN + SELECT @current = item + FROM #stack + WHERE level = @level + + insert into #hierarchy(CategoryID, level) values(@current, @level) + + DELETE FROM #stack + WHERE level = @level + AND item = @current + + IF( @MaxDepth IS NULL OR @MaxDepth >= @level ) + BEGIN + INSERT #stack + SELECT CategoryID, @level + 1 + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE ParentID = @current and ModuleID = @ModuleID + ORDER BY [SortOrder] DESC, [Name] DESC + + IF @@ROWCOUNT > 0 + SELECT @level = @level + 1 + END + END + ELSE + SELECT @level = @level - 1 +END -- WHILE + +IF( @FilterID IS NOT NULL ) +BEGIN + DELETE FROM #hierarchy WHERE CategoryID = @FilterID +END + +DECLARE @strModuleID nvarchar(50) +SELECT @strModuleID = convert(varchar, @ModuleID) + +DECLARE @strCategoryId nvarchar(255) +IF (@CategoryId is not null) + SELECT @strCategoryId = ' AND c.CategoryID in (' + @CategoryID + ')' + +DECLARE @strAuthorId nvarchar(255) +IF (@authorId is not null) + SELECT @strAuthorId = ' AND a.AuthorID = ' + cast(@AuthorID as nvarchar) + +DECLARE @strPending nvarchar(2000) +IF (@ShowPending is null) + SELECT @strPending = ' AND (a.StartDate IS NULL OR a.StartDate < GetDate())' + +EXEC(' +SELECT + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + REPLICATE(''.'',(level-2)*2) + c.[Name] as ''NameIndented'', + c.[Image], + c.[Description], + c.[SortOrder], + level-1 as ''Level'', + (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a ON ac.ArticleID = a.ArticleID WHERE ac.CategoryID = c.CategoryID AND a.IsDraft = 0 AND a.IsApproved = 1 ' + @strAuthorId + @strPending + ') as ''NumberofArticles'', + (SELECT SUM(a.NumberOfViews) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac ON a.ArticleID = ac.ArticleID WHERE ac.CategoryID = c.CategoryID) as ''NumberofViews'' +FROM + #hierarchy h INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON h.CategoryID = c.CategoryID +WHERE + c.[ModuleID] = ' + @strModuleID + @strCategoryId + ' +ORDER BY + h.HierarchyID ASC') + +drop table #hierarchy +drop table #stack +GO diff --git a/SqlDataProvider/00.07.41.SqlDataProvider b/SqlDataProvider/00.07.41.SqlDataProvider new file mode 100644 index 0000000..2ea988d --- /dev/null +++ b/SqlDataProvider/00.07.41.SqlDataProvider @@ -0,0 +1,217 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(255), + @CategoryIDCount int, + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate < GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' +END +ELSE +BEGIN + IF( @CurrentDate is not null AND @AgedDate is not null ) + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + '''))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' + END +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate > ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) + if(@CategoryIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE ''%' + @Keywords + '%'' OR Article.Summary LIKE ''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE ''%' + @Keywords + '%'') > 0))' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO diff --git a/SqlDataProvider/00.07.44.SqlDataProvider b/SqlDataProvider/00.07.44.SqlDataProvider new file mode 100644 index 0000000..07b58c2 --- /dev/null +++ b/SqlDataProvider/00.07.44.SqlDataProvider @@ -0,0 +1,230 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + MetaTitle nvarchar(200) NULL, + MetaDescription nvarchar(500) NULL, + MetaKeywords nvarchar(500) NULL, + PageHeadText nvarchar(500) NULL +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255), + @IsSecure bit, + @IsNewWindow bit, + @MetaTitle nvarchar(200), + @MetaDescription nvarchar(500), + @MetaKeywords nvarchar(500), + @PageHeadText nvarchar(500) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [AuthorID], + [ApproverID], + [CreatedDate], + [LastUpdate], + [Title], + [Summary], + [IsApproved], + [NumberOfViews], + [IsDraft], + [StartDate], + [EndDate], + [ModuleID], + [ImageUrl], + [IsFeatured], + [LastUpdateID], + [Url], + [IsSecure], + [IsNewWindow], + [MetaTitle], + [MetaDescription], + [MetaKeywords], + [PageHeadText] +) VALUES ( + @AuthorID, + @ApproverID, + @CreatedDate, + @LastUpdate, + @Title, + @Summary, + @IsApproved, + @NumberOfViews, + @IsDraft, + @StartDate, + @EndDate, + @ModuleID, + @ImageUrl, + @IsFeatured, + @LastUpdateID, + @Url, + @IsSecure, + @IsNewWindow, + @MetaTitle, + @MetaDescription, + @MetaKeywords, + @PageHeadText +) + +select SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +WHERE ArticleID = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [Rating] = (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [RatingCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle + @ArticleID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255), + @IsSecure bit, + @IsNewWindow bit, + @MetaTitle nvarchar(200), + @MetaDescription nvarchar(500), + @MetaKeywords nvarchar(500), + @PageHeadText nvarchar(500) +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article SET + [AuthorID] = @AuthorID, + [ApproverID] = @ApproverID, + [CreatedDate] = @CreatedDate, + [LastUpdate] = @LastUpdate, + [Title] = @Title, + [Summary] = @Summary, + [IsApproved] = @IsApproved, + [NumberOfViews] = @NumberOfViews, + [IsDraft] = @IsDraft, + [StartDate] = @StartDate, + [EndDate] = @EndDate, + [ModuleID] = @ModuleID, + [ImageUrl] = @ImageUrl, + [IsFeatured] = @IsFeatured, + [LastUpdateID] = @LastUpdateID, + [Url] = @Url, + [IsSecure] = @IsSecure, + [IsNewWindow] = @IsNewWindow, + [MetaTitle] = @MetaTitle, + [MetaDescription] = @MetaDescription, + [MetaKeywords] = @MetaKeywords, + [PageHeadText] = @PageHeadText +WHERE + [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +WHERE ArticleID = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [Rating] = (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [RatingCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as UpdatedDisplayName, + Page.PageText as 'Body' + +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + Article.[ArticleID] = @ArticleID +GO diff --git a/SqlDataProvider/00.07.46.SqlDataProvider b/SqlDataProvider/00.07.46.SqlDataProvider new file mode 100644 index 0000000..2c30ff8 --- /dev/null +++ b/SqlDataProvider/00.07.46.SqlDataProvider @@ -0,0 +1,221 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate < GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' +END +ELSE +BEGIN + IF( @CurrentDate is not null AND @AgedDate is not null ) + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + '''))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' + END +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate > ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) + if(@CategoryIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE ''%' + @Keywords + '%'' OR Article.Summary LIKE ''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE ''%' + @Keywords + '%'') > 0))' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO diff --git a/SqlDataProvider/00.07.47.SqlDataProvider b/SqlDataProvider/00.07.47.SqlDataProvider new file mode 100644 index 0000000..c4f6d02 --- /dev/null +++ b/SqlDataProvider/00.07.47.SqlDataProvider @@ -0,0 +1,288 @@ +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomField( + [CustomFieldID] [int] IDENTITY(1,1) NOT NULL, + [ModuleID] [int] NOT NULL, + [Name] [nvarchar](255) NOT NULL, + [FieldType] [int] NOT NULL, + [FieldElements] [ntext] NULL, + [DefaultValue] [nvarchar](255) NULL, + [Caption] [nvarchar](255) NULL, + [CaptionHelp] [nvarchar](255) NULL, + [IsRequired] [bit] NOT NULL, + [IsVisible] [bit] NOT NULL, + [SortOrder] [int] NOT NULL, + [ValidationType] [int] NOT NULL, + [RegularExpression] [nvarchar](4000) NULL, + [Length] [int] NULL +) ON [PRIMARY] +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomField ADD + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_CustomField] PRIMARY KEY CLUSTERED + ( + [CustomFieldID] + ) ON [PRIMARY] +GO + +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue( + [CustomValueID] [int] IDENTITY(1,1) NOT NULL, + [ArticleID] [int] NOT NULL, + [CustomFieldID] [int] NOT NULL, + [CustomValue] [ntext] NOT NULL +) ON [PRIMARY] +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue ADD + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_CustomValue] PRIMARY KEY CLUSTERED + ( + [CustomValueID] + ) ON [PRIMARY] +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteArticle + @ArticleID int +AS + +DELETE FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue +WHERE + [ArticleID] = @ArticleID + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories +WHERE + [ArticleID] = @ArticleID + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +WHERE + [ArticleID] = @ArticleID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteCustomField + @CustomFieldID int +AS + +DELETE FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue +WHERE + CustomFieldID = @CustomFieldID + +DELETE FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomField +WHERE + CustomFieldID = @CustomFieldID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteCustomValue + @CustomValueID int +AS + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue +WHERE + [CustomValueID] = @CustomValueID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCustomField + @CustomFieldID int +AS + +SELECT + CustomFieldID, + ModuleID, + [Name], + FieldType, + FieldElements, + DefaultValue, + Caption, + CaptionHelp, + IsRequired, + IsVisible, + SortOrder, + ValidationType, + RegularExpression, + [Length] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomField +WHERE + [CustomFieldID] = @CustomFieldID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCustomFieldList + @ModuleID int +AS + +SELECT + CustomFieldID, + ModuleID, + [Name], + FieldType, + FieldElements, + DefaultValue, + Caption, + CaptionHelp, + IsRequired, + IsVisible, + SortOrder, + ValidationType, + RegularExpression, + [Length] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomField +WHERE + [ModuleID] = @ModuleID +ORDER BY + SortOrder +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCustomValueByField + @ArticleID int, + @CustomFieldID int +AS + +SELECT + [CustomValueID], + [ArticleID], + [CustomFieldID], + [CustomValue] +FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue +WHERE + [ArticleID] = @ArticleID + and + [CustomFieldID] = @CustomFieldID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCustomValueList + @ArticleID int +AS + +SELECT + [CustomValueID], + [ArticleID], + [CustomFieldID], + [CustomValue] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue +WHERE + [ArticleID] = @ArticleID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCustomField + @CustomFieldID int, + @ModuleID int, + @Name nvarchar(255), + @FieldType int, + @FieldElements ntext, + @DefaultValue nvarchar(255), + @Caption nvarchar(255), + @CaptionHelp nvarchar(255), + @IsRequired bit, + @IsVisible bit, + @SortOrder int, + @ValidationType int, + @Length int, + @RegularExpression nvarchar(4000) +AS + +UPDATE + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomField +SET + [ModuleID] = @ModuleID, + [Name] = @Name, + [FieldType] = @FieldType, + [FieldElements] = @FieldElements, + [DefaultValue] = @DefaultValue, + [Caption] = @Caption, + [CaptionHelp] = @CaptionHelp, + [IsRequired] = @IsRequired, + [IsVisible] = @IsVisible, + [SortOrder] = @SortOrder, + [ValidationType] = @ValidationType, + [Length] = @Length, + [RegularExpression] = @RegularExpression +WHERE + CustomFieldID = @CustomFieldID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCustomValue + @CustomValueID int, + @ArticleID int, + @CustomFieldID int, + @CustomValue ntext +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue SET + [ArticleID] = @ArticleID, + [CustomFieldID] = @CustomFieldID, + [CustomValue] = @CustomValue +WHERE + [CustomValueID] = @CustomValueID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCustomField + @ModuleID int, + @Name nvarchar(255), + @FieldType int, + @FieldElements ntext, + @DefaultValue nvarchar(255), + @Caption nvarchar(255), + @CaptionHelp nvarchar(255), + @IsRequired bit, + @IsVisible bit, + @SortOrder int, + @ValidationType int, + @Length int, + @RegularExpression nvarchar(4000) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomField ( + [ModuleID], + [Name], + [FieldType], + [FieldElements], + [DefaultValue], + [Caption], + [CaptionHelp], + [IsRequired], + [IsVisible], + [SortOrder], + [ValidationType], + [Length], + [RegularExpression] +) VALUES ( + @ModuleID, + @Name, + @FieldType, + @FieldElements, + @DefaultValue, + @Caption, + @CaptionHelp, + @IsRequired, + @IsVisible, + @SortOrder, + @ValidationType, + @Length, + @RegularExpression +) + +select SCOPE_IDENTITY() +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCustomValue + @ArticleID int, + @CustomFieldID int, + @CustomValue ntext +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue ( + [ArticleID], + [CustomFieldID], + [CustomValue] +) VALUES ( + @ArticleID, + @CustomFieldID, + @CustomValue +) + +select SCOPE_IDENTITY() +GO diff --git a/SqlDataProvider/00.07.48.SqlDataProvider b/SqlDataProvider/00.07.48.SqlDataProvider new file mode 100644 index 0000000..6c5a327 --- /dev/null +++ b/SqlDataProvider/00.07.48.SqlDataProvider @@ -0,0 +1,10 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue DROP + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_CustomValue] +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue ADD + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_CustomValue] PRIMARY KEY CLUSTERED + ( + [CustomValueID] + ) ON [PRIMARY] +GO diff --git a/SqlDataProvider/00.07.52.SqlDataProvider b/SqlDataProvider/00.07.52.SqlDataProvider new file mode 100644 index 0000000..35eb390 --- /dev/null +++ b/SqlDataProvider/00.07.52.SqlDataProvider @@ -0,0 +1,6 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Handout ADD + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_Handout] PRIMARY KEY CLUSTERED + ( + [HandoutID] + ) ON [PRIMARY] +GO diff --git a/SqlDataProvider/00.07.53.SqlDataProvider b/SqlDataProvider/00.07.53.SqlDataProvider new file mode 100644 index 0000000..dc85c42 --- /dev/null +++ b/SqlDataProvider/00.07.53.SqlDataProvider @@ -0,0 +1,487 @@ +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Tag( + [TagID] [int] IDENTITY(1,1) NOT NULL, + [ModuleID] [int] NOT NULL, + [Name] [nvarchar](255) NOT NULL, + [NameLowered] [nvarchar](255) NOT NULL, + [Usages] [int] NULL +) ON [PRIMARY] +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Tag ADD + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_Tag] PRIMARY KEY CLUSTERED + ( + [TagID] + ) ON [PRIMARY] +GO + +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag( + [ArticleID] [int] NOT NULL, + [TagID] [int] NOT NULL +) ON [PRIMARY] +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag ADD + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_ArticleTag] PRIMARY KEY CLUSTERED + ( + [ArticleID] ASC, + [TagID] ASC + ) ON [PRIMARY] +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_TagAdd + @ModuleID int, + @Name nvarchar(50), + @NameLowered nvarchar(50) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Tag ( + [ModuleID], + [Name], + [NameLowered] +) VALUES ( + @ModuleID, + @Name, + @NameLowered +) + +select SCOPE_IDENTITY() +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_TagGet + @TagID int +AS + +SELECT + [TagID], + [ModuleID], + [Name], + [NameLowered], + [Usages] +FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Tag +WHERE + [TagID] = @TagID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_TagGetByName + @ModuleID int, + @NameLowered nvarchar(50) +AS + +SELECT TOP 1 + [TagID], + [ModuleID], + [Name], + [NameLowered], + [Usages] +FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Tag +WHERE + [ModuleID] = @ModuleID + and + [NameLowered] = @NameLowered +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_TagList + @ModuleID int, + @MaxCount int +AS + +if( @MaxCount is not null ) +begin + SET ROWCOUNT @MaxCount +end + +SELECT + t.[TagID], + t.[ModuleID], + t.[Name], + t.[NameLowered], + t.[Usages] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Tag t +WHERE + t.[ModuleID] = @ModuleID +ORDER BY + t.[Usages] DESC +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_TagUpdate + @TagID int, + @ModuleID int, + @Name nvarchar(50), + @NameLowered nvarchar(50), + @Usages int +AS + +UPDATE + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Tag +SET + [ModuleID] = @ModuleID, + [Name] = @Name, + [NameLowered] = @NameLowered, + [Usages] = @Usages +WHERE + [TagID] = @TagID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTagAdd + @ArticleID int, + @TagID int +AS + +IF( (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag WHERE ArticleID = @ArticleID and TagID = @TagID) = 0 ) +BEGIN + INSERT INTO + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag(ArticleID, TagID) + VALUES(@ArticleID, @TagID) + + UPDATE + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Tag + SET + Usages = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag pt where pt.TagID = @TagID) + WHERE + TagID = @TagID +END +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTagDelete + @ArticleID int +AS + +UPDATE + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Tag +SET + Usages = Usages - 1 +WHERE + TagID in (SELECT pt.TagID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag pt where ArticleID = @ArticleID) + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Tag +WHERE Usages = 0 + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag +WHERE ArticleID = @ArticleID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTagDeleteByTag + @TagID int +AS + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag +WHERE TagID = @TagID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_TagDelete + @TagID int +AS + +exec {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTagDeleteByTag @TagID + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Tag +WHERE + [TagID] = @TagID +GO + +CREATE FUNCTION {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags +(@ArticleID int) +RETURNS nvarchar(2000) +AS + BEGIN + + DECLARE @p_str nvarchar(2000) + SET @p_str = '' + + SELECT @p_str = @p_str + ' ' + CAST(t.[Name] AS NVARCHAR(50)) + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Tag t, {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag at + WHERE t.TagID = at.TagID and at.ArticleID = @ArticleID + + RETURN LTRIM(@p_str) + +END +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255), + @TagID varchar(2000), + @TagIDCount int +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate < GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' +END +ELSE +BEGIN + IF( @CurrentDate is not null AND @AgedDate is not null ) + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + '''))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' + END +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate > ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) + if(@CategoryIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE ''%' + @Keywords + '%'' OR Article.Summary LIKE ''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE ''%' + @Keywords + '%'') > 0))' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +IF (@TagID is not null) + if(@TagIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + ') group by articleID having count(*) > ' + convert(nvarchar, @TagIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + '))' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as UpdatedDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + Article.[ArticleID] = @ArticleID +GO diff --git a/SqlDataProvider/00.07.55.SqlDataProvider b/SqlDataProvider/00.07.55.SqlDataProvider new file mode 100644 index 0000000..de1d46b --- /dev/null +++ b/SqlDataProvider/00.07.55.SqlDataProvider @@ -0,0 +1,469 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + ShortUrl nvarchar(50) NULL +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255), + @IsSecure bit, + @IsNewWindow bit, + @MetaTitle nvarchar(200), + @MetaDescription nvarchar(500), + @MetaKeywords nvarchar(500), + @PageHeadText nvarchar(500), + @ShortUrl nvarchar(50) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [AuthorID], + [ApproverID], + [CreatedDate], + [LastUpdate], + [Title], + [Summary], + [IsApproved], + [NumberOfViews], + [IsDraft], + [StartDate], + [EndDate], + [ModuleID], + [ImageUrl], + [IsFeatured], + [LastUpdateID], + [Url], + [IsSecure], + [IsNewWindow], + [MetaTitle], + [MetaDescription], + [MetaKeywords], + [PageHeadText], + [ShortUrl] +) VALUES ( + @AuthorID, + @ApproverID, + @CreatedDate, + @LastUpdate, + @Title, + @Summary, + @IsApproved, + @NumberOfViews, + @IsDraft, + @StartDate, + @EndDate, + @ModuleID, + @ImageUrl, + @IsFeatured, + @LastUpdateID, + @Url, + @IsSecure, + @IsNewWindow, + @MetaTitle, + @MetaDescription, + @MetaKeywords, + @PageHeadText, + @ShortUrl +) + +select SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +WHERE ArticleID = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [Rating] = (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [RatingCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle + @ArticleID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255), + @IsSecure bit, + @IsNewWindow bit, + @MetaTitle nvarchar(200), + @MetaDescription nvarchar(500), + @MetaKeywords nvarchar(500), + @PageHeadText nvarchar(500), + @ShortUrl nvarchar(50) +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article SET + [AuthorID] = @AuthorID, + [ApproverID] = @ApproverID, + [CreatedDate] = @CreatedDate, + [LastUpdate] = @LastUpdate, + [Title] = @Title, + [Summary] = @Summary, + [IsApproved] = @IsApproved, + [NumberOfViews] = @NumberOfViews, + [IsDraft] = @IsDraft, + [StartDate] = @StartDate, + [EndDate] = @EndDate, + [ModuleID] = @ModuleID, + [ImageUrl] = @ImageUrl, + [IsFeatured] = @IsFeatured, + [LastUpdateID] = @LastUpdateID, + [Url] = @Url, + [IsSecure] = @IsSecure, + [IsNewWindow] = @IsNewWindow, + [MetaTitle] = @MetaTitle, + [MetaDescription] = @MetaDescription, + [MetaKeywords] = @MetaKeywords, + [PageHeadText] = @PageHeadText, + [ShortUrl] = @ShortUrl +WHERE + [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +WHERE ArticleID = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [Rating] = (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [RatingCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255), + @TagID varchar(2000), + @TagIDCount int +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate < GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' +END +ELSE +BEGIN + IF( @CurrentDate is not null AND @AgedDate is not null ) + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + '''))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' + END +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate > ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) + if(@CategoryIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE ''%' + @Keywords + '%'' OR Article.Summary LIKE ''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE ''%' + @Keywords + '%'') > 0))' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +IF (@TagID is not null) + if(@TagIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + ') group by articleID having count(*) > ' + convert(nvarchar, @TagIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + '))' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as UpdatedDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + Article.[ArticleID] = @ArticleID +GO diff --git a/SqlDataProvider/00.07.56.SqlDataProvider b/SqlDataProvider/00.07.56.SqlDataProvider new file mode 100644 index 0000000..d129b8c --- /dev/null +++ b/SqlDataProvider/00.07.56.SqlDataProvider @@ -0,0 +1,261 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255), + @TagID varchar(2000), + @TagIDCount int +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate < GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' +END +ELSE +BEGIN + IF( @CurrentDate is not null AND @AgedDate is not null ) + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + '''))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' + END +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate > ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) + if(@CategoryIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''%' + @Keywords + '%'' OR Article.Summary LIKE N''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE N''%' + @Keywords + '%'') > 0))' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +IF (@TagID is not null) + if(@TagIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + ') group by articleID having count(*) > ' + convert(nvarchar, @TagIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + '))' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO + +DROP FUNCTION {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags +GO + +CREATE FUNCTION {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags +(@ArticleID int) +RETURNS nvarchar(2000) +AS + BEGIN + + DECLARE @p_str nvarchar(2000) + SET @p_str = '' + + SELECT @p_str = @p_str + ',' + CAST(t.[Name] AS NVARCHAR(50)) + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Tag t, {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag at + WHERE t.TagID = at.TagID and at.ArticleID = @ArticleID + + IF( LEN(@p_str) > 0 ) + BEGIN + SELECT @p_str = SUBSTRING(@p_str, 2, (LEN(@p_str)-1)) + END + + RETURN LTRIM(@p_str) + +END +GO diff --git a/SqlDataProvider/00.07.57.SqlDataProvider b/SqlDataProvider/00.07.57.SqlDataProvider new file mode 100644 index 0000000..3f2a0eb --- /dev/null +++ b/SqlDataProvider/00.07.57.SqlDataProvider @@ -0,0 +1,615 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + RssGuid nvarchar(255) NULL +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255), + @TagID varchar(2000), + @TagIDCount int, + @RssGuid nvarchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate < GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' +END +ELSE +BEGIN + IF( @CurrentDate is not null AND @AgedDate is not null ) + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + '''))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' + END +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate > ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) + if(@CategoryIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''%' + @Keywords + '%'' OR Article.Summary LIKE N''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE N''%' + @Keywords + '%'') > 0))' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +IF (@TagID is not null) + if(@TagIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + ') group by articleID having count(*) > ' + convert(nvarchar, @TagIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + '))' + +IF (@RssGuid is not null) + SELECT @strWhere = @strWhere + ' AND Article.RssGuid = N''' + @RssGuid + '''' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO + +DROP FUNCTION {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags +GO + +CREATE FUNCTION {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags +(@ArticleID int) +RETURNS nvarchar(2000) +AS + BEGIN + + DECLARE @p_str nvarchar(2000) + SET @p_str = '' + + SELECT @p_str = @p_str + ',' + CAST(t.[Name] AS NVARCHAR(50)) + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Tag t, {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag at + WHERE t.TagID = at.TagID and at.ArticleID = @ArticleID + + IF( LEN(@p_str) > 0 ) + BEGIN + SELECT @p_str = SUBSTRING(@p_str, 2, (LEN(@p_str)-1)) + END + + RETURN LTRIM(@p_str) + +END +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255), + @IsSecure bit, + @IsNewWindow bit, + @MetaTitle nvarchar(200), + @MetaDescription nvarchar(500), + @MetaKeywords nvarchar(500), + @PageHeadText nvarchar(500), + @ShortUrl nvarchar(50), + @RssGuid nvarchar(255) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [AuthorID], + [ApproverID], + [CreatedDate], + [LastUpdate], + [Title], + [Summary], + [IsApproved], + [NumberOfViews], + [IsDraft], + [StartDate], + [EndDate], + [ModuleID], + [ImageUrl], + [IsFeatured], + [LastUpdateID], + [Url], + [IsSecure], + [IsNewWindow], + [MetaTitle], + [MetaDescription], + [MetaKeywords], + [PageHeadText], + [ShortUrl], + [RssGuid] +) VALUES ( + @AuthorID, + @ApproverID, + @CreatedDate, + @LastUpdate, + @Title, + @Summary, + @IsApproved, + @NumberOfViews, + @IsDraft, + @StartDate, + @EndDate, + @ModuleID, + @ImageUrl, + @IsFeatured, + @LastUpdateID, + @Url, + @IsSecure, + @IsNewWindow, + @MetaTitle, + @MetaDescription, + @MetaKeywords, + @PageHeadText, + @ShortUrl, + @RssGuid +) + +select SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +WHERE ArticleID = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [Rating] = (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [RatingCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle + @ArticleID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255), + @IsSecure bit, + @IsNewWindow bit, + @MetaTitle nvarchar(200), + @MetaDescription nvarchar(500), + @MetaKeywords nvarchar(500), + @PageHeadText nvarchar(500), + @ShortUrl nvarchar(50), + @RssGuid nvarchar(255) +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article SET + [AuthorID] = @AuthorID, + [ApproverID] = @ApproverID, + [CreatedDate] = @CreatedDate, + [LastUpdate] = @LastUpdate, + [Title] = @Title, + [Summary] = @Summary, + [IsApproved] = @IsApproved, + [NumberOfViews] = @NumberOfViews, + [IsDraft] = @IsDraft, + [StartDate] = @StartDate, + [EndDate] = @EndDate, + [ModuleID] = @ModuleID, + [ImageUrl] = @ImageUrl, + [IsFeatured] = @IsFeatured, + [LastUpdateID] = @LastUpdateID, + [Url] = @Url, + [IsSecure] = @IsSecure, + [IsNewWindow] = @IsNewWindow, + [MetaTitle] = @MetaTitle, + [MetaDescription] = @MetaDescription, + [MetaKeywords] = @MetaKeywords, + [PageHeadText] = @PageHeadText, + [ShortUrl] = @ShortUrl, + [RssGuid] = @RssGuid +WHERE + [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +WHERE ArticleID = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [Rating] = (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [RatingCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID +GO + +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Feed( + [FeedID] [int] IDENTITY(1,1) NOT NULL, + [ModuleID] [int] NOT NULL, + [Title] [nvarchar](255) NULL, + [Url] [nvarchar](255) NOT NULL, + [UserID] [int] NOT NULL, + [AutoFeature] [bit] NOT NULL, + [IsActive] [bit] NOT NULL, +) ON [PRIMARY] +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Feed ADD + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_Feed] PRIMARY KEY CLUSTERED + ( + [FeedID] + ) ON [PRIMARY] +GO + +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedCategory( + [FeedID] [int] NOT NULL, + [CategoryID] [int] NOT NULL, +) ON [PRIMARY] +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedCategory ADD + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_FeedCategory] PRIMARY KEY CLUSTERED + ( + [FeedID], + [CategoryID] + ) ON [PRIMARY] +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedAdd + @ModuleID int, + @Title nvarchar(255), + @Url nvarchar(255), + @UserID int, + @AutoFeature bit, + @IsActive bit +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Feed ( + [ModuleID], + [Title], + [Url], + [UserID], + [AutoFeature], + [IsActive] +) VALUES ( + @ModuleID, + @Title, + @Url, + @UserID, + @AutoFeature, + @IsActive +) + +select SCOPE_IDENTITY() +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedCategoryAdd + @FeedID int, + @CategoryID int +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedCategory(FeedID, CategoryID) + VALUES(@FeedID, @CategoryID) +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedCategoryDelete + @FeedID int +AS + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedCategory +WHERE FeedID = @FeedID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedCategoryList + @FeedID int +AS + +SELECT + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + c.[Image], + c.[Description], + c.[SortOrder] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedCategory fc INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON fc.categoryID = c.categoryID +WHERE + fc.FeedID = @FeedID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedDelete + @FeedID int +AS + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Feed +WHERE + [FeedID] = @FeedID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedGet + @FeedID int +AS + +SELECT + FeedID, + ModuleID, + Title, + Url, + UserID, + AutoFeature, + IsActive +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Feed +WHERE + FeedID = @FeedID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedList + @ModuleID int, + @ShowActiveOnly bit +AS + +SELECT + FeedID, + ModuleID, + Title, + Url, + UserID, + AutoFeature, + IsActive +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Feed +WHERE + (@ModuleID = -1 OR ModuleID = @ModuleID) + AND + (@ShowActiveOnly = 0 OR IsActive = 1) +ORDER BY + Title +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedUpdate + @FeedID int, + @ModuleID int, + @Title nvarchar(255), + @Url nvarchar(255), + @UserID int, + @AutoFeature bit, + @IsActive bit +AS + +UPDATE + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Feed +SET + [ModuleID] = @ModuleID, + [Title] = @Title, + [Url] = @Url, + [UserID] = @UserID, + [AutoFeature] = @AutoFeature, + [IsActive] = @IsActive +WHERE + [FeedID] = @FeedID +GO diff --git a/SqlDataProvider/00.07.58.SqlDataProvider b/SqlDataProvider/00.07.58.SqlDataProvider new file mode 100644 index 0000000..979be18 --- /dev/null +++ b/SqlDataProvider/00.07.58.SqlDataProvider @@ -0,0 +1,299 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255), + @TagID varchar(2000), + @TagIDCount int, + @RssGuid nvarchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate < GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' +END +ELSE +BEGIN + IF( @CurrentDate is not null AND @AgedDate is not null ) + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate < ''' + convert(nvarchar, @CurrentDate) + '''))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate > ''' + convert(nvarchar, @AgedDate) + '''' + END +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate > ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) + if(@CategoryIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''%' + @Keywords + '%'' OR Article.Summary LIKE N''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE N''%' + @Keywords + '%'') > 0))' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +IF (@TagID is not null) + if(@TagIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + ') group by articleID having count(*) > ' + convert(nvarchar, @TagIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + '))' + +IF (@RssGuid is not null) + SELECT @strWhere = @strWhere + ' AND Article.RssGuid = N''' + @RssGuid + '''' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Article.[RssGuid], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Article.[RssGuid], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as UpdatedDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + Article.[ArticleID] = @ArticleID +GO diff --git a/SqlDataProvider/00.07.59.SqlDataProvider b/SqlDataProvider/00.07.59.SqlDataProvider new file mode 100644 index 0000000..fdfe20a --- /dev/null +++ b/SqlDataProvider/00.07.59.SqlDataProvider @@ -0,0 +1,240 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255), + @TagID varchar(2000), + @TagIDCount int, + @RssGuid nvarchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate <= ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate <= GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + convert(nvarchar, @AgedDate) + '''' +END +ELSE +BEGIN + IF( @CurrentDate is not null AND @AgedDate is not null ) + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate <= ''' + convert(nvarchar, @CurrentDate) + '''))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + convert(nvarchar, @AgedDate) + '''' + END +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate >= ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) + if(@CategoryIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''%' + @Keywords + '%'' OR Article.Summary LIKE N''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE N''%' + @Keywords + '%'') > 0))' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +IF (@TagID is not null) + if(@TagIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + ') group by articleID having count(*) > ' + convert(nvarchar, @TagIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + '))' + +IF (@RssGuid is not null) + SELECT @strWhere = @strWhere + ' AND Article.RssGuid = N''' + @RssGuid + '''' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Article.[RssGuid], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO diff --git a/SqlDataProvider/00.07.61.SqlDataProvider b/SqlDataProvider/00.07.61.SqlDataProvider new file mode 100644 index 0000000..ca873c0 --- /dev/null +++ b/SqlDataProvider/00.07.61.SqlDataProvider @@ -0,0 +1,806 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Feed ADD + DateMode int NOT NULL CONSTRAINT DF_{objectQualifier}DnnForge_NewsArticles_Feed_DateMode DEFAULT 0, + AutoExpire int NULL, + AutoExpireUnit int NULL +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedAdd +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedAdd + @ModuleID int, + @Title nvarchar(255), + @Url nvarchar(255), + @UserID int, + @AutoFeature bit, + @IsActive bit, + @DateMode int, + @AutoExpire int, + @AutoExpireUnit int +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Feed ( + [ModuleID], + [Title], + [Url], + [UserID], + [AutoFeature], + [IsActive], + [DateMode], + [AutoExpire], + [AutoExpireUnit] +) VALUES ( + @ModuleID, + @Title, + @Url, + @UserID, + @AutoFeature, + @IsActive, + @DateMode, + @AutoExpire, + @AutoExpireUnit +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedGet +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedGet + @FeedID int +AS + +SELECT + FeedID, + ModuleID, + Title, + Url, + UserID, + AutoFeature, + IsActive, + DateMode, + AutoExpire, + AutoExpireUnit +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Feed +WHERE + FeedID = @FeedID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedList + @ModuleID int, + @ShowActiveOnly bit +AS + +SELECT + FeedID, + ModuleID, + Title, + Url, + UserID, + AutoFeature, + IsActive, + DateMode, + AutoExpire, + AutoExpireUnit +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Feed +WHERE + (@ModuleID = -1 OR ModuleID = @ModuleID) + AND + (@ShowActiveOnly = 0 OR IsActive = 1) +ORDER BY + Title +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedUpdate +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FeedUpdate + @FeedID int, + @ModuleID int, + @Title nvarchar(255), + @Url nvarchar(255), + @UserID int, + @AutoFeature bit, + @IsActive bit, + @DateMode int, + @AutoExpire int, + @AutoExpireUnit int +AS + +UPDATE + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Feed +SET + [ModuleID] = @ModuleID, + [Title] = @Title, + [Url] = @Url, + [UserID] = @UserID, + [AutoFeature] = @AutoFeature, + [IsActive] = @IsActive, + [DateMode] = @DateMode, + [AutoExpire] = @AutoExpire, + [AutoExpireUnit] = @AutoExpireUnit +WHERE + [FeedID] = @FeedID +GO + +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image( + [ImageID] [int] IDENTITY(1,1) NOT NULL, + [ArticleID] [int] NULL, + [Title] [nvarchar](100) NULL, + [FileName] [nvarchar](100) NULL, + [Extension] [nvarchar](100) NULL, + [Size] [int] NULL, + [Width] [int] NULL, + [Height] [int] NULL, + [ContentType] [nvarchar](200) NULL, + [Folder] [nvarchar](200) NULL, + [SortOrder] [int] NOT NULL CONSTRAINT [DF_{objectQualifier}DnnForge_NewsArticles_Image_SortOrder] DEFAULT ((0)), + [ImageGuid] [nvarchar](50) NULL, + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_Image] PRIMARY KEY CLUSTERED +( + [ImageID] ASC +) +) ON [PRIMARY] +GO + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image(ArticleID, Title, FileName, Extension, Size, Width, Height, ContentType, Folder, SortOrder) +SELECT + a.ArticleID, + f.FileName, + f.FileName, + f.Extension, + f.Size, + f.Width, + f.Height, + f.ContentType, + f.Folder, + 0 +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a INNER JOIN + {databaseOwner}{objectQualifier}Files f ON 'FileID=' + CONVERT(varchar, f.FileID) = a.ImageUrl +GO + +UPDATE + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET + ImageUrl = NULL +WHERE + ArticleID IN (SELECT a.ArticleID FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a INNER JOIN {databaseOwner}{objectQualifier}Files f ON 'FileID=' + CONVERT(varchar, f.FileID) = a.ImageUrl) +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageAdd + @ArticleID int, + @Title nvarchar(100), + @FileName nvarchar(100), + @Extension nvarchar(100), + @Size int, + @Width int, + @Height int, + @ContentType nvarchar(200), + @Folder nvarchar(200), + @SortOrder int, + @ImageGuid nvarchar(50) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image ( + [ArticleID], + [Title], + [FileName], + [Extension], + [Size], + [Width], + [Height], + [ContentType], + [Folder], + [SortOrder], + [ImageGuid] +) VALUES ( + @ArticleID, + @Title, + @FileName, + @Extension, + @Size, + @Width, + @Height, + @ContentType, + @Folder, + @SortOrder, + @ImageGuid +) + +select SCOPE_IDENTITY() +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageUpdate + @ImageID int, + @ArticleID int, + @Title nvarchar(100), + @FileName nvarchar(100), + @Extension nvarchar(100), + @Size int, + @Width int, + @Height int, + @ContentType nvarchar(200), + @Folder nvarchar(200), + @SortOrder int, + @ImageGuid nvarchar(50) +AS + +UPDATE + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image +SET + [ArticleID] = @ArticleID, + [Title] = @Title, + [FileName] = @FileName, + [Extension] = @Extension, + [Size] = @Size, + [Width] = @Width, + [Height] = @Height, + [ContentType] = @ContentType, + [Folder] = @Folder, + [SortOrder] = @SortOrder, + [ImageGuid] = @ImageGuid +WHERE + [ImageID] = @ImageID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageGet + @ImageID int +AS + +SELECT + ImageID, + ArticleID, + Title, + FileName, + Extension, + Size, + Width, + Height, + ContentType, + Folder, + SortOrder, + ImageGuid +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image +WHERE + ImageID = @ImageID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageList + @ArticleID int, + @ImageGuid nvarchar(50) +AS + +SELECT + ImageID, + ArticleID, + Title, + FileName, + Extension, + Size, + Width, + Height, + ContentType, + Folder, + SortOrder, + ImageGuid +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image +WHERE + (@ArticleID IS NULL OR ArticleID = @ArticleID) + AND + (@ImageGuid IS NULL OR ImageGuid = @ImageGuid) +ORDER BY + SortOrder +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageDelete + @ImageID int +AS + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image WHERE ImageID = @ImageID +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + ImageCount int NULL +GO + +UPDATE + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET + ImageCount = (SELECT count(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image i WHERE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID = i.ArticleID) +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255), + @TagID varchar(2000), + @TagIDCount int, + @RssGuid nvarchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate <= ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate <= GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + convert(nvarchar, @AgedDate) + '''' +END +ELSE +BEGIN + IF( @CurrentDate is not null AND @AgedDate is not null ) + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate <= ''' + convert(nvarchar, @CurrentDate) + '''))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + convert(nvarchar, @AgedDate) + '''' + END +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate >= ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) + if(@CategoryIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''%' + @Keywords + '%'' OR Article.Summary LIKE N''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE N''%' + @Keywords + '%'') > 0))' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +IF (@TagID is not null) + if(@TagIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + ') group by articleID having count(*) > ' + convert(nvarchar, @TagIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + '))' + +IF (@RssGuid is not null) + SELECT @strWhere = @strWhere + ' AND Article.RssGuid = N''' + @RssGuid + '''' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[ImageCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Article.[RssGuid], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[ImageCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Article.[RssGuid], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as UpdatedDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + Article.[ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255), + @IsSecure bit, + @IsNewWindow bit, + @MetaTitle nvarchar(200), + @MetaDescription nvarchar(500), + @MetaKeywords nvarchar(500), + @PageHeadText nvarchar(500), + @ShortUrl nvarchar(50), + @RssGuid nvarchar(255) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [AuthorID], + [ApproverID], + [CreatedDate], + [LastUpdate], + [Title], + [Summary], + [IsApproved], + [NumberOfViews], + [IsDraft], + [StartDate], + [EndDate], + [ModuleID], + [ImageUrl], + [IsFeatured], + [LastUpdateID], + [Url], + [IsSecure], + [IsNewWindow], + [MetaTitle], + [MetaDescription], + [MetaKeywords], + [PageHeadText], + [ShortUrl], + [RssGuid] +) VALUES ( + @AuthorID, + @ApproverID, + @CreatedDate, + @LastUpdate, + @Title, + @Summary, + @IsApproved, + @NumberOfViews, + @IsDraft, + @StartDate, + @EndDate, + @ModuleID, + @ImageUrl, + @IsFeatured, + @LastUpdateID, + @Url, + @IsSecure, + @IsNewWindow, + @MetaTitle, + @MetaDescription, + @MetaKeywords, + @PageHeadText, + @ShortUrl, + @RssGuid +) + +select SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +WHERE ArticleID = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [Rating] = (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [RatingCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [ImageCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image i where i.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle + @ArticleID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255), + @IsSecure bit, + @IsNewWindow bit, + @MetaTitle nvarchar(200), + @MetaDescription nvarchar(500), + @MetaKeywords nvarchar(500), + @PageHeadText nvarchar(500), + @ShortUrl nvarchar(50), + @RssGuid nvarchar(255) +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article SET + [AuthorID] = @AuthorID, + [ApproverID] = @ApproverID, + [CreatedDate] = @CreatedDate, + [LastUpdate] = @LastUpdate, + [Title] = @Title, + [Summary] = @Summary, + [IsApproved] = @IsApproved, + [NumberOfViews] = @NumberOfViews, + [IsDraft] = @IsDraft, + [StartDate] = @StartDate, + [EndDate] = @EndDate, + [ModuleID] = @ModuleID, + [ImageUrl] = @ImageUrl, + [IsFeatured] = @IsFeatured, + [LastUpdateID] = @LastUpdateID, + [Url] = @Url, + [IsSecure] = @IsSecure, + [IsNewWindow] = @IsNewWindow, + [MetaTitle] = @MetaTitle, + [MetaDescription] = @MetaDescription, + [MetaKeywords] = @MetaKeywords, + [PageHeadText] = @PageHeadText, + [ShortUrl] = @ShortUrl, + [RssGuid] = @RssGuid +WHERE + [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +WHERE ArticleID = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [Rating] = (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [RatingCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [ImageCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image i where i.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID +GO diff --git a/SqlDataProvider/00.07.63.SqlDataProvider b/SqlDataProvider/00.07.63.SqlDataProvider new file mode 100644 index 0000000..ecd96e9 --- /dev/null +++ b/SqlDataProvider/00.07.63.SqlDataProvider @@ -0,0 +1,236 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255), + @TagID varchar(2000), + @TagIDCount int, + @RssGuid nvarchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate <= ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate <= GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + convert(nvarchar, @AgedDate) + '''' +END +ELSE +BEGIN + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + convert(nvarchar, @AgedDate) + '''' +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate >= ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) + if(@CategoryIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''%' + @Keywords + '%'' OR Article.Summary LIKE N''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE N''%' + @Keywords + '%'') > 0))' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +IF (@TagID is not null) + if(@TagIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + ') group by articleID having count(*) > ' + convert(nvarchar, @TagIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + '))' + +IF (@RssGuid is not null) + SELECT @strWhere = @strWhere + ' AND Article.RssGuid = N''' + @RssGuid + '''' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[ImageCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Article.[RssGuid], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO diff --git a/SqlDataProvider/00.07.64.SqlDataProvider b/SqlDataProvider/00.07.64.SqlDataProvider new file mode 100644 index 0000000..6e61c57 --- /dev/null +++ b/SqlDataProvider/00.07.64.SqlDataProvider @@ -0,0 +1,241 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255), + @TagID varchar(2000), + @TagIDCount int, + @RssGuid nvarchar(255), + @CustomFieldID int, + @CustomValue nvarchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate <= ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate <= GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + convert(nvarchar, @AgedDate) + '''' +END +ELSE +BEGIN + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + convert(nvarchar, @AgedDate) + '''' +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate >= ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) + if(@CategoryIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''%' + @Keywords + '%'' OR Article.Summary LIKE N''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE N''%' + @Keywords + '%'') > 0))' + +IF (@CustomFieldID is not null AND @CustomValue is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID IN (SELECT ArticleID FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue cv WHERE cv.customFieldID = ' + convert(nvarchar, @CustomFieldID) + ' AND cv.CustomValue LIKE N''%' + @CustomValue + '%'')' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +IF (@TagID is not null) + if(@TagIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + ') group by articleID having count(*) > ' + convert(nvarchar, @TagIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + '))' + +IF (@RssGuid is not null) + SELECT @strWhere = @strWhere + ' AND Article.RssGuid = N''' + @RssGuid + '''' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[ImageCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Article.[RssGuid], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO diff --git a/SqlDataProvider/00.07.66.SqlDataProvider b/SqlDataProvider/00.07.66.SqlDataProvider new file mode 100644 index 0000000..2b1c5c7 --- /dev/null +++ b/SqlDataProvider/00.07.66.SqlDataProvider @@ -0,0 +1,13 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteCustomValue +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteCustomValue + @ArticleID int, + @CustomFieldID int +AS + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue +WHERE + [ArticleID] = @ArticleID AND + [CustomFieldID] = @CustomFieldID +GO diff --git a/SqlDataProvider/00.07.67.SqlDataProvider b/SqlDataProvider/00.07.67.SqlDataProvider new file mode 100644 index 0000000..da532f6 --- /dev/null +++ b/SqlDataProvider/00.07.67.SqlDataProvider @@ -0,0 +1,110 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll + @ModuleID int, + @Current int, + @CategoryID varchar(255), + @AuthorID int, + @MaxDepth int, + @ShowPending bit, + @SortType int +AS + +SET NOCOUNT ON + +DECLARE @FilterID int +SET @FilterID = @Current + +DECLARE @level int, @line int + +CREATE TABLE #hierarchy(HierarchyID int IDENTITY (1,1), CategoryID int, level int) +CREATE TABLE #stack (item int, level int) +INSERT INTO #stack VALUES (@current, 1) +SELECT @level = 1 + +WHILE @level > 0 +BEGIN + IF EXISTS (SELECT * FROM #stack WHERE level = @level) + BEGIN + SELECT @current = item + FROM #stack + WHERE level = @level + + insert into #hierarchy(CategoryID, level) values(@current, @level) + + DELETE FROM #stack + WHERE level = @level + AND item = @current + + IF( @MaxDepth IS NULL OR @MaxDepth >= @level ) + BEGIN + IF( @SortType = 0 ) + BEGIN + INSERT #stack + SELECT CategoryID, @level + 1 + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE ParentID = @current and ModuleID = @ModuleID + ORDER BY [SortOrder] DESC, [Name] DESC + END + ELSE + BEGIN + INSERT #stack + SELECT CategoryID, @level + 1 + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE ParentID = @current and ModuleID = @ModuleID + ORDER BY [Name] DESC + END + + IF @@ROWCOUNT > 0 + SELECT @level = @level + 1 + END + END + ELSE + SELECT @level = @level - 1 +END -- WHILE + +IF( @FilterID IS NOT NULL ) +BEGIN + DELETE FROM #hierarchy WHERE CategoryID = @FilterID +END + +DECLARE @strModuleID nvarchar(50) +SELECT @strModuleID = convert(varchar, @ModuleID) + +DECLARE @strCategoryId nvarchar(255) +IF (@CategoryId is not null) + SELECT @strCategoryId = ' AND c.CategoryID in (' + @CategoryID + ')' + +DECLARE @strAuthorId nvarchar(255) +IF (@authorId is not null) + SELECT @strAuthorId = ' AND a.AuthorID = ' + cast(@AuthorID as nvarchar) + +DECLARE @strPending nvarchar(2000) +IF (@ShowPending is null) + SELECT @strPending = ' AND (a.StartDate IS NULL OR a.StartDate < GetDate())' + +EXEC(' +SELECT + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + REPLICATE(''.'',(level-2)*2) + c.[Name] as ''NameIndented'', + c.[Image], + c.[Description], + c.[SortOrder], + level-1 as ''Level'', + (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a ON ac.ArticleID = a.ArticleID WHERE ac.CategoryID = c.CategoryID AND a.IsDraft = 0 AND a.IsApproved = 1 ' + @strAuthorId + @strPending + ') as ''NumberofArticles'', + (SELECT SUM(a.NumberOfViews) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac ON a.ArticleID = ac.ArticleID WHERE ac.CategoryID = c.CategoryID) as ''NumberofViews'' +FROM + #hierarchy h INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON h.CategoryID = c.CategoryID +WHERE + c.[ModuleID] = ' + @strModuleID + @strCategoryId + ' +ORDER BY + h.HierarchyID ASC') + +drop table #hierarchy +drop table #stack +GO diff --git a/SqlDataProvider/00.07.68.SqlDataProvider b/SqlDataProvider/00.07.68.SqlDataProvider new file mode 100644 index 0000000..5891c66 --- /dev/null +++ b/SqlDataProvider/00.07.68.SqlDataProvider @@ -0,0 +1,601 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ADD + FileCount int NULL +GO + +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_File ( + [FileID] [int] IDENTITY(1,1) NOT NULL, + [ArticleID] [int] NULL, + [Title] [nvarchar](255) NULL, + [FileName] [nvarchar](255) NULL, + [Extension] [nvarchar](100) NULL, + [Size] [int] NULL, + [ContentType] [nvarchar](255) NULL, + [Folder] [nvarchar](255) NULL, + [SortOrder] [int] NOT NULL, + [FileGuid] [nvarchar](50) NULL +) ON [PRIMARY] +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_File ADD + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_File] PRIMARY KEY CLUSTERED + ( + [FileID] + ) ON [PRIMARY] +GO + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_File +SELECT + a.ArticleID, + f.FileName, + CASE WHEN fo.StorageLocation = 0 THEN f.FileName ELSE f.FileName + '.resources' END AS 'FileName', + f.Extension, + f.Size, + f.ContentType, + f.Folder, + 0 AS 'SortOrder', + '' AS 'FileGuid' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a INNER JOIN + {databaseOwner}{objectQualifier}Files f ON replace(a.Url, 'FileID=', '') = f.FileID INNER JOIN + {databaseOwner}{objectQualifier}Folders fo ON f.FolderID = fo.FolderID +WHERE + a.Url LIKE 'FileID=%' +GO + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET Url = null +WHERE articleID IN +( + SELECT a.articleID + FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a INNER JOIN + {databaseOwner}{objectQualifier}Files f ON replace(a.Url, 'FileID=', '') = f.FileID INNER JOIN + {databaseOwner}{objectQualifier}Folders fo ON f.FolderID = fo.FolderID + WHERE + a.Url LIKE 'FileID=%' +) +GO + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [FileCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_File f where f.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FileAdd + @ArticleID int, + @Title nvarchar(255), + @FileName nvarchar(255), + @Extension nvarchar(200), + @Size int, + @ContentType nvarchar(200), + @Folder nvarchar(255), + @SortOrder int, + @FileGuid nvarchar(50) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_File ( + [ArticleID], + [Title], + [FileName], + [Extension], + [Size], + [ContentType], + [Folder], + [SortOrder], + [FileGuid] +) VALUES ( + @ArticleID, + @Title, + @FileName, + @Extension, + @Size, + @ContentType, + @Folder, + @SortOrder, + @FileGuid +) + +select SCOPE_IDENTITY() +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FileDelete + @FileID int +AS + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_File WHERE FileID = @FileID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FileGet + @FileID int +AS + +SELECT + FileID, + ArticleID, + Title, + FileName, + Extension, + Size, + ContentType, + Folder, + SortOrder, + FileGuid +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_File +WHERE + FileID = @FileID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FileList + @ArticleID int, + @FileGuid nvarchar(50) +AS + +SELECT + FileID, + ArticleID, + Title, + FileName, + Extension, + Size, + ContentType, + Folder, + SortOrder, + FileGuid +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_File +WHERE + (@ArticleID IS NULL OR ArticleID = @ArticleID) + AND + (@FileGuid IS NULL OR FileGuid = @FileGuid) +ORDER BY + SortOrder +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_FileUpdate + @FileID int, + @ArticleID int, + @Title nvarchar(255), + @FileName nvarchar(255), + @Extension nvarchar(200), + @Size int, + @ContentType nvarchar(200), + @Folder nvarchar(255), + @SortOrder int, + @FileGuid nvarchar(50) +AS + +UPDATE + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_File +SET + [ArticleID] = @ArticleID, + [Title] = @Title, + [FileName] = @FileName, + [Extension] = @Extension, + [Size] = @Size, + [ContentType] = @ContentType, + [Folder] = @Folder, + [SortOrder] = @SortOrder, + [FileGuid] = @FileGuid +WHERE + [FileID] = @FileID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_DeleteArticle + @ArticleID int +AS + +DELETE FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue +WHERE + [ArticleID] = @ArticleID + +DELETE FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image +WHERE + [ArticleID] = @ArticleID + +DELETE FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_File +WHERE + [ArticleID] = @ArticleID + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories +WHERE + [ArticleID] = @ArticleID + +DELETE FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +WHERE + [ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255), + @TagID varchar(2000), + @TagIDCount int, + @RssGuid nvarchar(255), + @CustomFieldID int, + @CustomValue nvarchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate <= ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate <= GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + convert(nvarchar, @AgedDate) + '''' +END +ELSE +BEGIN + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + convert(nvarchar, @AgedDate) + '''' +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate >= ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) + if(@CategoryIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''%' + @Keywords + '%'' OR Article.Summary LIKE N''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE N''%' + @Keywords + '%'') > 0))' + +IF (@CustomFieldID is not null AND @CustomValue is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID IN (SELECT ArticleID FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue cv WHERE cv.customFieldID = ' + convert(nvarchar, @CustomFieldID) + ' AND cv.CustomValue LIKE N''%' + @CustomValue + '%'')' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +IF (@TagID is not null) + if(@TagIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + ') group by articleID having count(*) > ' + convert(nvarchar, @TagIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + '))' + +IF (@RssGuid is not null) + SELECT @strWhere = @strWhere + ' AND Article.RssGuid = N''' + @RssGuid + '''' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[FileCount], + Article.[ImageCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Article.[RssGuid], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO + + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticle + @ArticleID int, + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255), + @IsSecure bit, + @IsNewWindow bit, + @MetaTitle nvarchar(200), + @MetaDescription nvarchar(500), + @MetaKeywords nvarchar(500), + @PageHeadText nvarchar(500), + @ShortUrl nvarchar(50), + @RssGuid nvarchar(255) +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article SET + [AuthorID] = @AuthorID, + [ApproverID] = @ApproverID, + [CreatedDate] = @CreatedDate, + [LastUpdate] = @LastUpdate, + [Title] = @Title, + [Summary] = @Summary, + [IsApproved] = @IsApproved, + [NumberOfViews] = @NumberOfViews, + [IsDraft] = @IsDraft, + [StartDate] = @StartDate, + [EndDate] = @EndDate, + [ModuleID] = @ModuleID, + [ImageUrl] = @ImageUrl, + [IsFeatured] = @IsFeatured, + [LastUpdateID] = @LastUpdateID, + [Url] = @Url, + [IsSecure] = @IsSecure, + [IsNewWindow] = @IsNewWindow, + [MetaTitle] = @MetaTitle, + [MetaDescription] = @MetaDescription, + [MetaKeywords] = @MetaKeywords, + [PageHeadText] = @PageHeadText, + [ShortUrl] = @ShortUrl, + [RssGuid] = @RssGuid +WHERE + [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +WHERE ArticleID = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [Rating] = (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [RatingCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [ImageCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image i where i.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [FileCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_File f where f.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticle + @ArticleID int +AS +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[IsDraft], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[FileCount], + Article.[ImageCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Article.[RssGuid], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as UpdatedDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + Article.[ArticleID] = @ArticleID +GO diff --git a/SqlDataProvider/00.07.69.SqlDataProvider b/SqlDataProvider/00.07.69.SqlDataProvider new file mode 100644 index 0000000..1893b6a --- /dev/null +++ b/SqlDataProvider/00.07.69.SqlDataProvider @@ -0,0 +1,53 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCommentList + @ModuleID int, + @ArticleID int, + @IsApproved bit, + @SortDirection int, + @MaxCount int +AS + +IF( @MaxCount is not null ) +BEGIN + SET ROWCOUNT @MaxCount +END + +SELECT + Comment.[CommentID], + Comment.[ArticleID], + Comment.[UserID], + Comment.[CreatedDate], + Comment.[Comment], + Comment.[RemoteAddress], + Comment.[Type], + Comment.[TrackbackUrl], + Comment.[TrackbackTitle], + Comment.[TrackbackBlogName], + Comment.[TrackbackExcerpt], + Comment.[AnonymousName], + Comment.[AnonymousEmail], + Comment.[AnonymousURL], + Comment.[NotifyMe], + Comment.[IsApproved], + Comment.[ApprovedBy], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article on Comment.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Comment.UserID = Author.UserID +WHERE + Article.ModuleID = @ModuleID + and + (@ArticleID is null OR Comment.[ArticleID] = @ArticleID) + and + Comment.IsApproved = @IsApproved +ORDER BY + CASE WHEN @SortDirection = 0 THEN Comment.[CreatedDate] END ASC, + CASE WHEN @SortDirection = 1 THEN Comment.[CreatedDate] END DESC +GO diff --git a/SqlDataProvider/00.07.71.SqlDataProvider b/SqlDataProvider/00.07.71.SqlDataProvider new file mode 100644 index 0000000..f9f6dac --- /dev/null +++ b/SqlDataProvider/00.07.71.SqlDataProvider @@ -0,0 +1,223 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category ADD + InheritSecurity bit NOT NULL CONSTRAINT DF_{objectQualifier}DnnForge_NewsArticles_Category_InheritSecurity DEFAULT 1 +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCategory + @ModuleID int, + @ParentID int, + @Name nvarchar(255), + @Image nvarchar(255), + @Description ntext, + @SortOrder int, + @InheritSecurity bit +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category ( + [ModuleID], + [ParentID], + [Name], + [Image], + [Description], + [SortOrder], + [InheritSecurity] +) VALUES ( + @ModuleID, + @ParentID, + @Name, + @Image, + @Description, + @SortOrder, + @InheritSecurity +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategory + @CategoryID int +AS + +SELECT + [CategoryID], + [ParentID], + [ModuleID], + [Name], + [Image], + [Description], + [SortOrder], + [InheritSecurity] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +WHERE + [CategoryID] = @CategoryID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryList + @ModuleID int, + @ParentID int +AS + +SELECT + [CategoryID], + [ParentID], + [ModuleID], + [Name], + [Image], + [Description], + [SortOrder], + [InheritSecurity] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +WHERE + [ModuleID] = @ModuleID + AND + [ParentID] = @ParentID +ORDER BY + [SortOrder], [Name] +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll + @ModuleID int, + @Current int, + @CategoryID varchar(255), + @AuthorID int, + @MaxDepth int, + @ShowPending bit, + @SortType int +AS + +SET NOCOUNT ON + +DECLARE @FilterID int +SET @FilterID = @Current + +DECLARE @level int, @line int + +CREATE TABLE #hierarchy(HierarchyID int IDENTITY (1,1), CategoryID int, level int) +CREATE TABLE #stack (item int, level int) +INSERT INTO #stack VALUES (@current, 1) +SELECT @level = 1 + +WHILE @level > 0 +BEGIN + IF EXISTS (SELECT * FROM #stack WHERE level = @level) + BEGIN + SELECT @current = item + FROM #stack + WHERE level = @level + + insert into #hierarchy(CategoryID, level) values(@current, @level) + + DELETE FROM #stack + WHERE level = @level + AND item = @current + + IF( @MaxDepth IS NULL OR @MaxDepth >= @level ) + BEGIN + IF( @SortType = 0 ) + BEGIN + INSERT #stack + SELECT CategoryID, @level + 1 + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE ParentID = @current and ModuleID = @ModuleID + ORDER BY [SortOrder] DESC, [Name] DESC + END + ELSE + BEGIN + INSERT #stack + SELECT CategoryID, @level + 1 + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE ParentID = @current and ModuleID = @ModuleID + ORDER BY [Name] DESC + END + IF @@ROWCOUNT > 0 + SELECT @level = @level + 1 + END + END + ELSE + SELECT @level = @level - 1 +END -- WHILE + +IF( @FilterID IS NOT NULL ) +BEGIN + DELETE FROM #hierarchy WHERE CategoryID = @FilterID +END + +DECLARE @strModuleID nvarchar(50) +SELECT @strModuleID = convert(varchar, @ModuleID) + +DECLARE @strCategoryId nvarchar(255) +IF (@CategoryId is not null) + SELECT @strCategoryId = ' AND c.CategoryID in (' + @CategoryID + ')' + +DECLARE @strAuthorId nvarchar(255) +IF (@authorId is not null) + SELECT @strAuthorId = ' AND a.AuthorID = ' + cast(@AuthorID as nvarchar) + +DECLARE @strPending nvarchar(2000) +IF (@ShowPending is null) + SELECT @strPending = ' AND (a.StartDate IS NULL OR a.StartDate < GetDate())' + +EXEC(' +SELECT + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + REPLICATE(''.'',(level-2)*2) + c.[Name] as ''NameIndented'', + c.[Image], + c.[Description], + c.[SortOrder], + c.[InheritSecurity], + level-1 as ''Level'', + (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a ON ac.ArticleID = a.ArticleID WHERE ac.CategoryID = c.CategoryID AND a.IsDraft = 0 AND a.IsApproved = 1 ' + @strAuthorId + @strPending + ') as ''NumberofArticles'', + (SELECT SUM(a.NumberOfViews) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac ON a.ArticleID = ac.ArticleID WHERE ac.CategoryID = c.CategoryID) as ''NumberofViews'' +FROM + #hierarchy h INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON h.CategoryID = c.CategoryID +WHERE + c.[ModuleID] = ' + @strModuleID + @strCategoryId + ' +ORDER BY + h.HierarchyID ASC') + +drop table #hierarchy +drop table #stack +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCategory + @CategoryID int, + @ModuleID int, + @ParentID int, + @Name nvarchar(255), + @Image nvarchar(255), + @Description ntext, + @SortOrder int, + @InheritSecurity bit +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category SET + [ModuleID] = @ModuleID, + [ParentID] = @ParentID, + [Name] = @Name, + [Image] = @Image, + [Description] = @Description, + [SortOrder] = @SortOrder, + [InheritSecurity] = @InheritSecurity +WHERE + [CategoryID] = @CategoryID +GO diff --git a/SqlDataProvider/00.07.72.SqlDataProvider b/SqlDataProvider/00.07.72.SqlDataProvider new file mode 100644 index 0000000..b1c6f7d --- /dev/null +++ b/SqlDataProvider/00.07.72.SqlDataProvider @@ -0,0 +1,18 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleCategories +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleCategories + @ArticleID int +AS + +SELECT + Category.CategoryID, + Category.[Name], + Category.[InheritSecurity] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories, {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category Category +WHERE + ArticleCategories.CategoryID = Category.CategoryID + AND + ArticleCategories.ArticleID = @ArticleID +GO diff --git a/SqlDataProvider/00.07.73.SqlDataProvider b/SqlDataProvider/00.07.73.SqlDataProvider new file mode 100644 index 0000000..d735d3a --- /dev/null +++ b/SqlDataProvider/00.07.73.SqlDataProvider @@ -0,0 +1,231 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category ADD + CategorySecurityType int NOT NULL CONSTRAINT DF_{objectQualifier}DnnForge_NewsArticles_Category_CategorySecurityType DEFAULT 0 +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCategory + @ModuleID int, + @ParentID int, + @Name nvarchar(255), + @Image nvarchar(255), + @Description ntext, + @SortOrder int, + @InheritSecurity bit, + @CategorySecurityType int +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category ( + [ModuleID], + [ParentID], + [Name], + [Image], + [Description], + [SortOrder], + [InheritSecurity], + [CategorySecurityType] +) VALUES ( + @ModuleID, + @ParentID, + @Name, + @Image, + @Description, + @SortOrder, + @InheritSecurity, + @CategorySecurityType +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategory + @CategoryID int +AS + +SELECT + [CategoryID], + [ParentID], + [ModuleID], + [Name], + [Image], + [Description], + [SortOrder], + [InheritSecurity], + [CategorySecurityType] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +WHERE + [CategoryID] = @CategoryID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryList + @ModuleID int, + @ParentID int +AS + +SELECT + [CategoryID], + [ParentID], + [ModuleID], + [Name], + [Image], + [Description], + [SortOrder], + [InheritSecurity], + [CategorySecurityType] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +WHERE + [ModuleID] = @ModuleID + AND + [ParentID] = @ParentID +ORDER BY + [SortOrder], [Name] +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll + @ModuleID int, + @Current int, + @CategoryID varchar(255), + @AuthorID int, + @MaxDepth int, + @ShowPending bit, + @SortType int +AS + +SET NOCOUNT ON + +DECLARE @FilterID int +SET @FilterID = @Current + +DECLARE @level int, @line int + +CREATE TABLE #hierarchy(HierarchyID int IDENTITY (1,1), CategoryID int, level int) +CREATE TABLE #stack (item int, level int) +INSERT INTO #stack VALUES (@current, 1) +SELECT @level = 1 + +WHILE @level > 0 +BEGIN + IF EXISTS (SELECT * FROM #stack WHERE level = @level) + BEGIN + SELECT @current = item + FROM #stack + WHERE level = @level + + insert into #hierarchy(CategoryID, level) values(@current, @level) + + DELETE FROM #stack + WHERE level = @level + AND item = @current + + IF( @MaxDepth IS NULL OR @MaxDepth >= @level ) + BEGIN + IF( @SortType = 0 ) + BEGIN + INSERT #stack + SELECT CategoryID, @level + 1 + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE ParentID = @current and ModuleID = @ModuleID + ORDER BY [SortOrder] DESC, [Name] DESC + END + ELSE + BEGIN + INSERT #stack + SELECT CategoryID, @level + 1 + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE ParentID = @current and ModuleID = @ModuleID + ORDER BY [Name] DESC + END + IF @@ROWCOUNT > 0 + SELECT @level = @level + 1 + END + END + ELSE + SELECT @level = @level - 1 +END -- WHILE + +IF( @FilterID IS NOT NULL ) +BEGIN + DELETE FROM #hierarchy WHERE CategoryID = @FilterID +END + +DECLARE @strModuleID nvarchar(50) +SELECT @strModuleID = convert(varchar, @ModuleID) + +DECLARE @strCategoryId nvarchar(255) +IF (@CategoryId is not null) + SELECT @strCategoryId = ' AND c.CategoryID in (' + @CategoryID + ')' + +DECLARE @strAuthorId nvarchar(255) +IF (@authorId is not null) + SELECT @strAuthorId = ' AND a.AuthorID = ' + cast(@AuthorID as nvarchar) + +DECLARE @strPending nvarchar(2000) +IF (@ShowPending is null) + SELECT @strPending = ' AND (a.StartDate IS NULL OR a.StartDate < GetDate())' + +EXEC(' +SELECT + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + REPLICATE(''.'',(level-2)*2) + c.[Name] as ''NameIndented'', + c.[Image], + c.[Description], + c.[SortOrder], + c.[InheritSecurity], + c.[CategorySecurityType], + level-1 as ''Level'', + (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a ON ac.ArticleID = a.ArticleID WHERE ac.CategoryID = c.CategoryID AND a.IsDraft = 0 AND a.IsApproved = 1 ' + @strAuthorId + @strPending + ') as ''NumberofArticles'', + (SELECT SUM(a.NumberOfViews) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac ON a.ArticleID = ac.ArticleID WHERE ac.CategoryID = c.CategoryID) as ''NumberofViews'' +FROM + #hierarchy h INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON h.CategoryID = c.CategoryID +WHERE + c.[ModuleID] = ' + @strModuleID + @strCategoryId + ' +ORDER BY + h.HierarchyID ASC') + +drop table #hierarchy +drop table #stack +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCategory + @CategoryID int, + @ModuleID int, + @ParentID int, + @Name nvarchar(255), + @Image nvarchar(255), + @Description ntext, + @SortOrder int, + @InheritSecurity bit, + @CategorySecurityType int +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category SET + [ModuleID] = @ModuleID, + [ParentID] = @ParentID, + [Name] = @Name, + [Image] = @Image, + [Description] = @Description, + [SortOrder] = @SortOrder, + [InheritSecurity] = @InheritSecurity, + [CategorySecurityType] = @CategorySecurityType +WHERE + [CategoryID] = @CategoryID +GO diff --git a/SqlDataProvider/00.07.74.SqlDataProvider b/SqlDataProvider/00.07.74.SqlDataProvider new file mode 100644 index 0000000..836856f --- /dev/null +++ b/SqlDataProvider/00.07.74.SqlDataProvider @@ -0,0 +1,383 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255), + @TagID varchar(2000), + @TagIDCount int, + @RssGuid nvarchar(255), + @CustomFieldID int, + @CustomValue nvarchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate <= ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate <= GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + convert(nvarchar, @AgedDate) + '''' +END +ELSE +BEGIN + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + convert(nvarchar, @AgedDate) + '''' +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate >= ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) +BEGIN + IF(@CategoryIDCount is not null) + BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + END + ELSE + BEGIN + IF( CHARINDEX('-1', @CategoryID) = 0 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ')) OR Article.ArticleID not in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories))' + END + END +END + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''%' + @Keywords + '%'' OR Article.Summary LIKE N''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE N''%' + @Keywords + '%'') > 0))' + +IF (@CustomFieldID is not null AND @CustomValue is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID IN (SELECT ArticleID FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue cv WHERE cv.customFieldID = ' + convert(nvarchar, @CustomFieldID) + ' AND cv.CustomValue LIKE N''%' + @CustomValue + '%'')' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +IF (@TagID is not null) + if(@TagIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + ') group by articleID having count(*) > ' + convert(nvarchar, @TagIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + '))' + +IF (@RssGuid is not null) + SELECT @strWhere = @strWhere + ' AND Article.RssGuid = N''' + @RssGuid + '''' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[FileCount], + Article.[ImageCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Article.[RssGuid], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive + @ModuleID int, + @CategoryID varchar(2000), + @CategoryIDExclude varchar(2000), + @AuthorID int, + @GroupBy varchar(255), + @ShowPending bit +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) +BEGIN + IF( CHARINDEX('-1', @CategoryID) = 0 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ')) OR Article.ArticleID not in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories))' + END +END + +IF (@CategoryIDExclude is not null) +BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID NOT IN (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' +END + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@ShowPending is null) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null or Article.StartDate < ''' + convert(nvarchar, DateAdd(mi, 1, GetDate())) + ''')' +END + +IF( @GroupBy = 'Month' ) +BEGIN +EXEC(' + select Month(StartDate) as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] + from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article + where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' + group by Year(StartDate), Month(StartDate) + order by [Year] desc, [Month] desc') +END +ELSE +BEGIN +EXEC(' + select 1 as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] + from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article + where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' + group by Year(StartDate) + order by [Year] desc') +END +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics + @ModuleID int, + @CategoryID varchar(2000), + @CategoryIDExclude varchar(2000), + @AuthorID int, + @SortBy varchar(255), + @ShowPending bit +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Articles.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) +BEGIN + IF( CHARINDEX('-1', @CategoryID) = 0 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND Articles.ArticleID in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryID + '))' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Articles.ArticleID in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryID + ')) OR Articles.ArticleID not in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories))' + END +END + +IF (@CategoryIDExclude is not null) +BEGIN + SELECT @strWhere = @strWhere + ' AND Articles.ArticleID NOT IN (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' +END + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Articles.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@ShowPending is null ) + SELECT @strWhere = @strWhere + ' AND (Articles.StartDate is null OR Articles.StartDate < ''' + convert(nvarchar, DateAdd(mi, 1, GetDate())) + ''')' + +EXEC(' +SELECT + UserID, UserName, DisplayName, FirstName, LastName, count(*) as ''ArticleCount'' +FROM + {databaseOwner}{objectQualifier}Users Users, {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Articles +where Articles.IsApproved = 1 and Articles.IsDraft = 0 and Users.UserID = Articles.AuthorID ' + + @strWhere + ' +GROUP BY + UserID, UserName, DisplayName, FirstName, LastName +ORDER BY ' + + @SortBy) +GO diff --git a/SqlDataProvider/00.07.75.SqlDataProvider b/SqlDataProvider/00.07.75.SqlDataProvider new file mode 100644 index 0000000..be29e92 --- /dev/null +++ b/SqlDataProvider/00.07.75.SqlDataProvider @@ -0,0 +1,7 @@ +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_SecureCheck + @PortalID int, + @ArticleID int, + @UserID int +AS + SELECT 1 +GO diff --git a/SqlDataProvider/00.07.77.SqlDataProvider b/SqlDataProvider/00.07.77.SqlDataProvider new file mode 100644 index 0000000..9509b22 --- /dev/null +++ b/SqlDataProvider/00.07.77.SqlDataProvider @@ -0,0 +1,262 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255), + @TagID varchar(2000), + @TagIDCount int, + @RssGuid nvarchar(255), + @CustomFieldID int, + @CustomValue nvarchar(255), + @LinkFilter nvarchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate <= ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate <= GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + convert(nvarchar, @AgedDate) + '''' +END +ELSE +BEGIN + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + convert(nvarchar, @AgedDate) + '''' +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate >= ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) +BEGIN + IF(@CategoryIDCount is not null) + BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + END + ELSE + BEGIN + IF( CHARINDEX('-1', @CategoryID) = 0 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ')) OR Article.ArticleID not in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories))' + END + END +END + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''%' + @Keywords + '%'' OR Article.Summary LIKE N''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE N''%' + @Keywords + '%'') > 0))' + +IF (@CustomFieldID is not null AND @CustomValue is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID IN (SELECT ArticleID FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue cv WHERE cv.customFieldID = ' + convert(nvarchar, @CustomFieldID) + ' AND cv.CustomValue LIKE N''%' + @CustomValue + '%'')' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +IF (@TagID is not null) + if(@TagIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + ') group by articleID having count(*) > ' + convert(nvarchar, @TagIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + '))' + +IF (@RssGuid is not null) + SELECT @strWhere = @strWhere + ' AND Article.RssGuid = N''' + @RssGuid + '''' + +IF (@LinkFilter is not null) + SELECT @strWhere = @strWhere + ' AND Article.Url = N''' + @LinkFilter + '''' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[FileCount], + Article.[ImageCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Article.[RssGuid], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO diff --git a/SqlDataProvider/00.07.81.SqlDataProvider b/SqlDataProvider/00.07.81.SqlDataProvider new file mode 100644 index 0000000..a7871e9 --- /dev/null +++ b/SqlDataProvider/00.07.81.SqlDataProvider @@ -0,0 +1,257 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category ADD + MetaTitle nvarchar(200) NULL, + MetaDescription nvarchar(500) NULL, + MetaKeywords nvarchar(500) NULL +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddCategory + @ModuleID int, + @ParentID int, + @Name nvarchar(255), + @Image nvarchar(255), + @Description ntext, + @SortOrder int, + @InheritSecurity bit, + @CategorySecurityType bit, + @MetaTitle nvarchar(200), + @MetaDescription nvarchar(500), + @MetaKeywords nvarchar(500) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category ( + [ModuleID], + [ParentID], + [Name], + [Image], + [Description], + [SortOrder], + [InheritSecurity], + [CategorySecurityType], + [MetaTitle], + [MetaDescription], + [MetaKeywords] +) VALUES ( + @ModuleID, + @ParentID, + @Name, + @Image, + @Description, + @SortOrder, + @InheritSecurity, + @CategorySecurityType, + @MetaTitle, + @MetaDescription, + @MetaKeywords +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateCategory + @CategoryID int, + @ModuleID int, + @ParentID int, + @Name nvarchar(255), + @Image nvarchar(255), + @Description ntext, + @SortOrder int, + @InheritSecurity bit, + @CategorySecurityType int, + @MetaTitle nvarchar(200), + @MetaDescription nvarchar(500), + @MetaKeywords nvarchar(500) +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category SET + [ModuleID] = @ModuleID, + [ParentID] = @ParentID, + [Name] = @Name, + [Image] = @Image, + [Description] = @Description, + [SortOrder] = @SortOrder, + [InheritSecurity] = @InheritSecurity, + [CategorySecurityType] = @CategorySecurityType, + [MetaTitle] = @MetaTitle, + [MetaDescription] = @MetaDescription, + [MetaKeywords] = @MetaKeywords +WHERE + [CategoryID] = @CategoryID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategory +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategory + @CategoryID int +AS + +SELECT + [CategoryID], + [ParentID], + [ModuleID], + [Name], + [Image], + [Description], + [SortOrder], + [InheritSecurity], + [CategorySecurityType], + [MetaTitle], + [MetaDescription], + [MetaKeywords] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +WHERE + [CategoryID] = @CategoryID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryList + @ModuleID int, + @ParentID int +AS + +SELECT + [CategoryID], + [ParentID], + [ModuleID], + [Name], + [Image], + [Description], + [SortOrder], + [InheritSecurity], + [CategorySecurityType], + [MetaTitle], + [MetaDescription], + [MetaKeywords] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category +WHERE + [ModuleID] = @ModuleID + AND + [ParentID] = @ParentID +ORDER BY + [SortOrder], [Name] +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll + @ModuleID int, + @Current int, + @CategoryID varchar(255), + @AuthorID int, + @MaxDepth int, + @ShowPending bit, + @SortType int +AS + +SET NOCOUNT ON + +DECLARE @FilterID int +SET @FilterID = @Current + +DECLARE @level int, @line int + +CREATE TABLE #hierarchy(HierarchyID int IDENTITY (1,1), CategoryID int, level int) +CREATE TABLE #stack (item int, level int) +INSERT INTO #stack VALUES (@current, 1) +SELECT @level = 1 + +WHILE @level > 0 +BEGIN + IF EXISTS (SELECT * FROM #stack WHERE level = @level) + BEGIN + SELECT @current = item + FROM #stack + WHERE level = @level + + insert into #hierarchy(CategoryID, level) values(@current, @level) + + DELETE FROM #stack + WHERE level = @level + AND item = @current + + IF( @MaxDepth IS NULL OR @MaxDepth >= @level ) + BEGIN + IF( @SortType = 0 ) + BEGIN + INSERT #stack + SELECT CategoryID, @level + 1 + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE ParentID = @current and ModuleID = @ModuleID + ORDER BY [SortOrder] DESC, [Name] DESC + END + ELSE + BEGIN + INSERT #stack + SELECT CategoryID, @level + 1 + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE ParentID = @current and ModuleID = @ModuleID + ORDER BY [Name] DESC + END + IF @@ROWCOUNT > 0 + SELECT @level = @level + 1 + END + END + ELSE + SELECT @level = @level - 1 +END -- WHILE + +IF( @FilterID IS NOT NULL ) +BEGIN + DELETE FROM #hierarchy WHERE CategoryID = @FilterID +END + +DECLARE @strModuleID nvarchar(50) +SELECT @strModuleID = convert(varchar, @ModuleID) + +DECLARE @strCategoryId nvarchar(255) +IF (@CategoryId is not null) + SELECT @strCategoryId = ' AND c.CategoryID in (' + @CategoryID + ')' + +DECLARE @strAuthorId nvarchar(255) +IF (@authorId is not null) + SELECT @strAuthorId = ' AND a.AuthorID = ' + cast(@AuthorID as nvarchar) + +DECLARE @strPending nvarchar(2000) +IF (@ShowPending is null) + SELECT @strPending = ' AND (a.StartDate IS NULL OR a.StartDate < GetDate())' + +EXEC(' +SELECT + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + REPLICATE(''.'',(level-2)*2) + c.[Name] as ''NameIndented'', + c.[Image], + c.[Description], + c.[SortOrder], + c.[InheritSecurity], + c.[CategorySecurityType], + c.[MetaTitle], + c.[MetaDescription], + c.[MetaKeywords], + level-1 as ''Level'', + (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a ON ac.ArticleID = a.ArticleID WHERE ac.CategoryID = c.CategoryID AND a.IsDraft = 0 AND a.IsApproved = 1 ' + @strAuthorId + @strPending + ') as ''NumberofArticles'', + (SELECT SUM(a.NumberOfViews) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac ON a.ArticleID = ac.ArticleID WHERE ac.CategoryID = c.CategoryID) as ''NumberofViews'' +FROM + #hierarchy h INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON h.CategoryID = c.CategoryID +WHERE + c.[ModuleID] = ' + @strModuleID + @strCategoryId + ' +ORDER BY + h.HierarchyID ASC') + +drop table #hierarchy +drop table #stack +GO diff --git a/SqlDataProvider/00.07.84.SqlDataProvider b/SqlDataProvider/00.07.84.SqlDataProvider new file mode 100644 index 0000000..2b3c7b0 --- /dev/null +++ b/SqlDataProvider/00.07.84.SqlDataProvider @@ -0,0 +1,105 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image +ADD Title2 nvarchar(100) +GO + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image +SET Title2 = Title +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image +DROP COLUMN Title +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image +ADD Title nvarchar(255) +GO + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image +SET Title = Title2 +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image +DROP COLUMN Title2 +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageAdd +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageAdd + @ArticleID int, + @Title nvarchar(255), + @FileName nvarchar(100), + @Extension nvarchar(100), + @Size int, + @Width int, + @Height int, + @ContentType nvarchar(200), + @Folder nvarchar(200), + @SortOrder int, + @ImageGuid nvarchar(50) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image ( + [ArticleID], + [Title], + [FileName], + [Extension], + [Size], + [Width], + [Height], + [ContentType], + [Folder], + [SortOrder], + [ImageGuid] +) VALUES ( + @ArticleID, + @Title, + @FileName, + @Extension, + @Size, + @Width, + @Height, + @ContentType, + @Folder, + @SortOrder, + @ImageGuid +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageUpdate +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageUpdate + @ImageID int, + @ArticleID int, + @Title nvarchar(255), + @FileName nvarchar(100), + @Extension nvarchar(100), + @Size int, + @Width int, + @Height int, + @ContentType nvarchar(200), + @Folder nvarchar(200), + @SortOrder int, + @ImageGuid nvarchar(50) +AS + +UPDATE + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image +SET + [ArticleID] = @ArticleID, + [Title] = @Title, + [FileName] = @FileName, + [Extension] = @Extension, + [Size] = @Size, + [Width] = @Width, + [Height] = @Height, + [ContentType] = @ContentType, + [Folder] = @Folder, + [SortOrder] = @SortOrder, + [ImageGuid] = @ImageGuid +WHERE + [ImageID] = @ImageID +GO diff --git a/SqlDataProvider/00.07.85.SqlDataProvider b/SqlDataProvider/00.07.85.SqlDataProvider new file mode 100644 index 0000000..026d8fb --- /dev/null +++ b/SqlDataProvider/00.07.85.SqlDataProvider @@ -0,0 +1,39 @@ +CREATE NONCLUSTERED INDEX [_dta_index_{objectQualifier}DnnForge_NewsArticles_Page] ON {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page +( + [SortOrder] ASC, + [ArticleID] ASC +) ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [_dta_index_{objectQualifier}DnnForge_NewsArticles_Article] ON {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +( + [ModuleID] ASC, + [ArticleID] ASC, + [IsApproved] ASC, + [IsDraft] ASC, + [EndDate] ASC, + [StartDate] ASC +) ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [_dta_index_{objectQualifier}DnnForge_NewsArticles_Article_Category] ON {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories +( + [ArticleID] ASC, + [CategoryID] ASC +)ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [_dta_index_{objectQualifier}DnnForge_NewsArticles_Article_Views] ON {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +( + [ArticleID] ASC +) +INCLUDE ( [NumberOfViews]) ON [PRIMARY] +GO + +CREATE NONCLUSTERED INDEX [_dta_index_{objectQualifier}DnnForge_NewsArticles_Article_Status] ON {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +( + [ArticleID] ASC, + [IsDraft] ASC, + [IsApproved] ASC +)ON [PRIMARY] +GO diff --git a/SqlDataProvider/00.07.87.SqlDataProvider b/SqlDataProvider/00.07.87.SqlDataProvider new file mode 100644 index 0000000..4c1f01e --- /dev/null +++ b/SqlDataProvider/00.07.87.SqlDataProvider @@ -0,0 +1,271 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255), + @TagID varchar(2000), + @TagIDCount int, + @RssGuid nvarchar(255), + @CustomFieldID int, + @CustomValue nvarchar(255), + @LinkFilter nvarchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate <= ''' + convert(nvarchar, @CurrentDate) + ''' AND Article.StartDate <= GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + convert(nvarchar, @AgedDate) + '''' +END +ELSE +BEGIN + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + convert(nvarchar, @AgedDate) + '''' +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate >= ''' + convert(nvarchar, @CurrentDate) + ''')' +END + +IF (@CategoryId is not null) +BEGIN + IF(@CategoryIDCount is not null) + BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + END + ELSE + BEGIN + IF( CHARINDEX('-1', @CategoryID) = 0 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ')) OR Article.ArticleID not in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories))' + END + END +END + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) +BEGIN + IF( LEN(@Keywords) = 1 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''' + @Keywords + '%'')' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''%' + @Keywords + '%'' OR Article.Summary LIKE N''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE N''%' + @Keywords + '%'') > 0))' + END +END + +IF (@CustomFieldID is not null AND @CustomValue is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID IN (SELECT ArticleID FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue cv WHERE cv.customFieldID = ' + convert(nvarchar, @CustomFieldID) + ' AND cv.CustomValue LIKE N''%' + @CustomValue + '%'')' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +IF (@TagID is not null) + if(@TagIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + ') group by articleID having count(*) > ' + convert(nvarchar, @TagIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + '))' + +IF (@RssGuid is not null) + SELECT @strWhere = @strWhere + ' AND Article.RssGuid = N''' + @RssGuid + '''' + +IF (@LinkFilter is not null) + SELECT @strWhere = @strWhere + ' AND Article.Url = N''' + @LinkFilter + '''' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[FileCount], + Article.[ImageCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Article.[RssGuid], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO diff --git a/SqlDataProvider/00.07.88.SqlDataProvider b/SqlDataProvider/00.07.88.SqlDataProvider new file mode 100644 index 0000000..ad7300b --- /dev/null +++ b/SqlDataProvider/00.07.88.SqlDataProvider @@ -0,0 +1,61 @@ +CREATE TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Mirror( + [ArticleID] [int] NOT NULL, + [LinkedArticleID] [int] NOT NULL, + [LinkedPortalID] [int] NOT NULL, + [AutoUpdate] [bit] NOT NULL, + CONSTRAINT [PK_{objectQualifier}DnnForge_NewsArticles_Mirror] PRIMARY KEY CLUSTERED +( + [ArticleID] ASC +) +) ON [PRIMARY] +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetMirrorArticle + @ArticleID int +AS + +SELECT + m.[ArticleID], + m.[LinkedArticleID], + m.[LinkedPortalID], + m.[AutoUpdate] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Mirror m +WHERE + m.[ArticleID] = @ArticleID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetMirrorArticleList + @LinkedArticleID int +AS + +SELECT + m.[ArticleID], + m.[LinkedArticleID], + m.[LinkedPortalID], + m.[AutoUpdate] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Mirror m +WHERE + m.[LinkedArticleID] = @LinkedArticleID +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddMirrorArticle + @ArticleID int, + @LinkedArticleID int, + @LinkedPortalID int, + @AutoUpdate bit +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Mirror ( + [ArticleID], + [LinkedArticleID], + [LinkedPortalID], + [AutoUpdate] +) VALUES ( + @ArticleID, + @LinkedArticleID, + @LinkedPortalID, + @AutoUpdate +) +GO diff --git a/SqlDataProvider/00.07.89.SqlDataProvider b/SqlDataProvider/00.07.89.SqlDataProvider new file mode 100644 index 0000000..07f29bc --- /dev/null +++ b/SqlDataProvider/00.07.89.SqlDataProvider @@ -0,0 +1,21 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetMirrorArticleList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetMirrorArticleList + @LinkedArticleID int +AS + +SELECT + m.[ArticleID], + m.[LinkedArticleID], + m.[LinkedPortalID], + m.[AutoUpdate], + mo.[PortalID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Mirror m INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a ON m.ArticleID = a.ArticleID INNER JOIN + {databaseOwner}{objectQualifier}Modules mo ON a.ModuleID = mo.ModuleID +WHERE + m.[LinkedArticleID] = @LinkedArticleID +GO + \ No newline at end of file diff --git a/SqlDataProvider/00.07.96.SqlDataProvider b/SqlDataProvider/00.07.96.SqlDataProvider new file mode 100644 index 0000000..6a7fc91 --- /dev/null +++ b/SqlDataProvider/00.07.96.SqlDataProvider @@ -0,0 +1,396 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255), + @TagID varchar(2000), + @TagIDCount int, + @RssGuid nvarchar(255), + @CustomFieldID int, + @CustomValue nvarchar(255), + @LinkFilter nvarchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate <= ''' + CONVERT(char(24), @CurrentDate, 126) + ''' AND Article.StartDate <= GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + CONVERT(char(24), @AgedDate, 126) + '''' +END +ELSE +BEGIN + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + CONVERT(char(24), @AgedDate, 126) + '''' +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate >= ''' + CONVERT(char(24), @CurrentDate, 126) + ''')' +END + +IF (@CategoryId is not null) +BEGIN + IF(@CategoryIDCount is not null) + BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + END + ELSE + BEGIN + IF( CHARINDEX('-1', @CategoryID) = 0 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ')) OR Article.ArticleID not in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories))' + END + END +END + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) +BEGIN + IF( LEN(@Keywords) = 1 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''' + @Keywords + '%'')' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''%' + @Keywords + '%'' OR Article.Summary LIKE N''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE N''%' + @Keywords + '%'') > 0))' + END +END + +IF (@CustomFieldID is not null AND @CustomValue is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID IN (SELECT ArticleID FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue cv WHERE cv.customFieldID = ' + convert(nvarchar, @CustomFieldID) + ' AND cv.CustomValue LIKE N''%' + @CustomValue + '%'')' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +IF (@TagID is not null) + if(@TagIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + ') group by articleID having count(*) > ' + convert(nvarchar, @TagIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + '))' + +IF (@RssGuid is not null) + SELECT @strWhere = @strWhere + ' AND Article.RssGuid = N''' + @RssGuid + '''' + +IF (@LinkFilter is not null) + SELECT @strWhere = @strWhere + ' AND Article.Url = N''' + @LinkFilter + '''' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[FileCount], + Article.[ImageCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Article.[RssGuid], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive + @ModuleID int, + @CategoryID varchar(2000), + @CategoryIDExclude varchar(2000), + @AuthorID int, + @GroupBy varchar(255), + @ShowPending bit +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) +BEGIN + IF( CHARINDEX('-1', @CategoryID) = 0 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ')) OR Article.ArticleID not in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories))' + END +END + +IF (@CategoryIDExclude is not null) +BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID NOT IN (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' +END + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@ShowPending is null) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null or Article.StartDate < ''' + CONVERT(char(24), DateAdd(mi, 1, GetDate()), 126) + ''')' +END + +IF( @GroupBy = 'Month' ) +BEGIN +EXEC(' + select Month(StartDate) as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] + from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article + where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' + group by Year(StartDate), Month(StartDate) + order by [Year] desc, [Month] desc') +END +ELSE +BEGIN +EXEC(' + select 1 as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] + from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article + where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' + group by Year(StartDate) + order by [Year] desc') +END +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics + @ModuleID int, + @CategoryID varchar(2000), + @CategoryIDExclude varchar(2000), + @AuthorID int, + @SortBy varchar(255), + @ShowPending bit +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Articles.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) +BEGIN + IF( CHARINDEX('-1', @CategoryID) = 0 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND Articles.ArticleID in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryID + '))' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Articles.ArticleID in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryID + ')) OR Articles.ArticleID not in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories))' + END +END + +IF (@CategoryIDExclude is not null) +BEGIN + SELECT @strWhere = @strWhere + ' AND Articles.ArticleID NOT IN (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' +END + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Articles.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@ShowPending is null ) + SELECT @strWhere = @strWhere + ' AND (Articles.StartDate is null OR Articles.StartDate < ''' + CONVERT(char(24), DateAdd(mi, 1, GetDate()), 126) + ''')' + +EXEC(' +SELECT + UserID, UserName, DisplayName, FirstName, LastName, count(*) as ''ArticleCount'' +FROM + {databaseOwner}{objectQualifier}Users Users, {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Articles +where Articles.IsApproved = 1 and Articles.IsDraft = 0 and Users.UserID = Articles.AuthorID ' + + @strWhere + ' +GROUP BY + UserID, UserName, DisplayName, FirstName, LastName +ORDER BY ' + + @SortBy) +GO diff --git a/SqlDataProvider/00.07.97.SqlDataProvider b/SqlDataProvider/00.07.97.SqlDataProvider new file mode 100644 index 0000000..9c1bea1 --- /dev/null +++ b/SqlDataProvider/00.07.97.SqlDataProvider @@ -0,0 +1,149 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image ADD + Description ntext NULL +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageAdd +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageAdd + @ArticleID int, + @Title nvarchar(255), + @FileName nvarchar(100), + @Extension nvarchar(100), + @Size int, + @Width int, + @Height int, + @ContentType nvarchar(200), + @Folder nvarchar(200), + @SortOrder int, + @ImageGuid nvarchar(50), + @Description ntext +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image ( + [ArticleID], + [Title], + [FileName], + [Extension], + [Size], + [Width], + [Height], + [ContentType], + [Folder], + [SortOrder], + [ImageGuid], + [Description] +) VALUES ( + @ArticleID, + @Title, + @FileName, + @Extension, + @Size, + @Width, + @Height, + @ContentType, + @Folder, + @SortOrder, + @ImageGuid, + @Description +) + +select SCOPE_IDENTITY() +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageGet +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageGet + @ImageID int +AS + +SELECT + ImageID, + ArticleID, + Title, + FileName, + Extension, + Size, + Width, + Height, + ContentType, + Folder, + SortOrder, + ImageGuid, + Description +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image +WHERE + ImageID = @ImageID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageList +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageList + @ArticleID int, + @ImageGuid nvarchar(50) +AS + +SELECT + ImageID, + ArticleID, + Title, + FileName, + Extension, + Size, + Width, + Height, + ContentType, + Folder, + SortOrder, + ImageGuid, + Description +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image +WHERE + (@ArticleID IS NULL OR ArticleID = @ArticleID) + AND + (@ImageGuid IS NULL OR ImageGuid = @ImageGuid) +ORDER BY + SortOrder +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageUpdate +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ImageUpdate + @ImageID int, + @ArticleID int, + @Title nvarchar(255), + @FileName nvarchar(100), + @Extension nvarchar(100), + @Size int, + @Width int, + @Height int, + @ContentType nvarchar(200), + @Folder nvarchar(200), + @SortOrder int, + @ImageGuid nvarchar(50), + @Description ntext +AS + +UPDATE + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image +SET + [ArticleID] = @ArticleID, + [Title] = @Title, + [FileName] = @FileName, + [Extension] = @Extension, + [Size] = @Size, + [Width] = @Width, + [Height] = @Height, + [ContentType] = @ContentType, + [Folder] = @Folder, + [SortOrder] = @SortOrder, + [ImageGuid] = @ImageGuid, + [Description] = @Description +WHERE + [ImageID] = @ImageID +GO diff --git a/SqlDataProvider/00.07.98.SqlDataProvider b/SqlDataProvider/00.07.98.SqlDataProvider new file mode 100644 index 0000000..66fa360 --- /dev/null +++ b/SqlDataProvider/00.07.98.SqlDataProvider @@ -0,0 +1,402 @@ +CREATE NONCLUSTERED INDEX [_dta_index_{objectQualifier}DnnForge_NewsArticles_Articl_5_160719625__K2] ON {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories +( + [CategoryID] ASC +)WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY] +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255), + @TagID varchar(2000), + @TagIDCount int, + @RssGuid nvarchar(255), + @CustomFieldID int, + @CustomValue nvarchar(255), + @LinkFilter nvarchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate <= ''' + CONVERT(char(24), @CurrentDate, 126) + ''' AND Article.StartDate <= GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + CONVERT(char(24), @AgedDate, 126) + '''' +END +ELSE +BEGIN + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + CONVERT(char(24), @AgedDate, 126) + '''' +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate >= ''' + CONVERT(char(24), @CurrentDate, 126) + ''')' +END + +IF (@CategoryId is not null) +BEGIN + IF(@CategoryIDCount is not null) + BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + END + ELSE + BEGIN + IF( CHARINDEX('-1', @CategoryID) = 0 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ')) OR Article.ArticleID not in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories))' + END + END +END + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) +BEGIN + IF( LEN(@Keywords) = 1 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''' + @Keywords + '%'')' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''%' + @Keywords + '%'' OR Article.Summary LIKE N''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE N''%' + @Keywords + '%'') > 0) OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue cv where cv.ArticleID = Article.ArticleID and cv.CustomValue LIKE N''%' + @Keywords + '%'') > 0))' + END +END + +IF (@CustomFieldID is not null AND @CustomValue is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID IN (SELECT ArticleID FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue cv WHERE cv.customFieldID = ' + convert(nvarchar, @CustomFieldID) + ' AND cv.CustomValue LIKE N''%' + @CustomValue + '%'')' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +IF (@TagID is not null) + if(@TagIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + ') group by articleID having count(*) > ' + convert(nvarchar, @TagIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + '))' + +IF (@RssGuid is not null) + SELECT @strWhere = @strWhere + ' AND Article.RssGuid = N''' + @RssGuid + '''' + +IF (@LinkFilter is not null) + SELECT @strWhere = @strWhere + ' AND Article.Url = N''' + @LinkFilter + '''' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[FileCount], + Article.[ImageCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Article.[RssGuid], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive + @ModuleID int, + @CategoryID varchar(2000), + @CategoryIDExclude varchar(2000), + @AuthorID int, + @GroupBy varchar(255), + @ShowPending bit +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) +BEGIN + IF( CHARINDEX('-1', @CategoryID) = 0 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ')) OR Article.ArticleID not in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories))' + END +END + +IF (@CategoryIDExclude is not null) +BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID NOT IN (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' +END + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@ShowPending is null) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null or Article.StartDate < ''' + CONVERT(char(24), DateAdd(mi, 1, GetDate()), 126) + ''')' +END + +IF( @GroupBy = 'Month' ) +BEGIN +EXEC(' + select Month(StartDate) as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] + from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article + where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' + group by Year(StartDate), Month(StartDate) + order by [Year] desc, [Month] desc') +END +ELSE +BEGIN +EXEC(' + select 1 as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] + from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article + where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' + group by Year(StartDate) + order by [Year] desc') +END +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics + @ModuleID int, + @CategoryID varchar(2000), + @CategoryIDExclude varchar(2000), + @AuthorID int, + @SortBy varchar(255), + @ShowPending bit +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Articles.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) +BEGIN + IF( CHARINDEX('-1', @CategoryID) = 0 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND Articles.ArticleID in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryID + '))' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Articles.ArticleID in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryID + ')) OR Articles.ArticleID not in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories))' + END +END + +IF (@CategoryIDExclude is not null) +BEGIN + SELECT @strWhere = @strWhere + ' AND Articles.ArticleID NOT IN (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' +END + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Articles.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@ShowPending is null ) + SELECT @strWhere = @strWhere + ' AND (Articles.StartDate is null OR Articles.StartDate < ''' + CONVERT(char(24), DateAdd(mi, 1, GetDate()), 126) + ''')' + +EXEC(' +SELECT + UserID, UserName, DisplayName, FirstName, LastName, count(*) as ''ArticleCount'' +FROM + {databaseOwner}{objectQualifier}Users Users, {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Articles +where Articles.IsApproved = 1 and Articles.IsDraft = 0 and Users.UserID = Articles.AuthorID ' + + @strWhere + ' +GROUP BY + UserID, UserName, DisplayName, FirstName, LastName +ORDER BY ' + + @SortBy) +GO diff --git a/SqlDataProvider/00.07.99.SqlDataProvider b/SqlDataProvider/00.07.99.SqlDataProvider new file mode 100644 index 0000000..e8b91a0 --- /dev/null +++ b/SqlDataProvider/00.07.99.SqlDataProvider @@ -0,0 +1,396 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetArticleListBySearchCriteria + @ModuleID int, + @CurrentDate datetime, + @AgedDate datetime, + @CategoryID varchar(2000), + @CategoryIDCount int, + @CategoryIDExclude varchar(2000), + @MaxCount int, + @PageNumber int, + @PageSize int, + @SortBy varchar(50), + @SortDirection varchar(50), + @IsApproved bit, + @IsDraft bit, + @KeyWords nvarchar(255), + @AuthorID int, + @ShowPending bit, + @ShowExpired bit, + @ShowFeaturedOnly bit, + @ShowNotFeaturedOnly bit, + @ShowSecuredOnly bit, + @ShowNotSecuredOnly bit, + @ArticleIDs varchar(255), + @TagID varchar(2000), + @TagIDCount int, + @RssGuid nvarchar(255), + @CustomFieldID int, + @CustomValue nvarchar(255), + @LinkFilter nvarchar(255) +AS + +-- Form Where Query + +DECLARE @strWhere nvarchar(4000) +SELECT @strWhere = 'Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF( @CurrentDate is null ) + SELECT @CurrentDate = GetDate() + +IF( @ShowPending is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null OR (Article.StartDate <= ''' + CONVERT(char(24), @CurrentDate, 126) + ''' AND Article.StartDate <= GetDate()))' + + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + CONVERT(char(24), @AgedDate, 126) + '''' +END +ELSE +BEGIN + IF( @AgedDate is not null ) + SELECT @strWhere = @strWhere + ' AND Article.StartDate >= ''' + CONVERT(char(24), @AgedDate, 126) + '''' +END + +IF( @ShowExpired is null ) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.EndDate is null OR Article.EndDate >= ''' + CONVERT(char(24), @CurrentDate, 126) + ''')' +END + +IF (@CategoryId is not null) +BEGIN + IF(@CategoryIDCount is not null) + BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ') group by articleID having count(*) > ' + convert(nvarchar, @CategoryIDCount) + ')' + END + ELSE + BEGIN + IF( CHARINDEX('-1', @CategoryID) = 0 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ')) OR Article.ArticleID not in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories))' + END + END +END + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@CategoryIDExclude is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID not in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@IsApproved = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 1' + +IF (@IsApproved = 0 ) + SELECT @strWhere = @strWhere + ' AND Article.IsApproved = 0' + +IF (@IsDraft = 0) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 0' + +IF (@IsDraft = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsDraft = 1' + +IF (@ShowFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 1' + +IF (@ShowNotFeaturedOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsFeatured = 0' + +IF (@ShowSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 1' + +IF (@ShowNotSecuredOnly = 1 ) + SELECT @strWhere = @strWhere + ' AND Article.IsSecure = 0' + +IF (@Keywords is not null) +BEGIN + IF( LEN(@Keywords) = 1 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''' + @Keywords + '%'')' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.Title LIKE N''%' + @Keywords + '%'' OR Article.Summary LIKE N''%' + @Keywords + '%'' OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = Article.ArticleID and Page.PageText LIKE N''%' + @Keywords + '%'') > 0) OR ((select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue cv where cv.ArticleID = Article.ArticleID and cv.CustomValue LIKE N''%' + @Keywords + '%'') > 0))' + END +END + +IF (@CustomFieldID is not null AND @CustomValue is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID IN (SELECT ArticleID FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_CustomValue cv WHERE cv.customFieldID = ' + convert(nvarchar, @CustomFieldID) + ' AND cv.CustomValue LIKE N''%' + @CustomValue + '%'')' + +IF (@ArticleIDs is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in (' + @ArticleIDs + ')' + +IF (@SortBy = 'Title') + SELECT @SortBy = 'Article.Title' + +IF (@SortBy = 'IsFeatured DESC, Title') + SELECT @SortBy = 'IsFeatured DESC, Article.Title' + +IF (@TagID is not null) + if(@TagIDCount is not null) + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + ') group by articleID having count(*) > ' + convert(nvarchar, @TagIDCount) + ')' + else + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleTag.TagID in (' + @TagID + '))' + +IF (@RssGuid is not null) + SELECT @strWhere = @strWhere + ' AND Article.RssGuid = N''' + @RssGuid + '''' + +IF (@LinkFilter is not null) + SELECT @strWhere = @strWhere + ' AND Article.Url = N''' + @LinkFilter + '''' + +-- Set Paging Options + +IF( @PageNumber is null ) + SET @PageNumber = 1 + +IF( @PageSize is null ) + SET @PageSize = 100 + +SET @PageNumber = @PageNumber - 1 + +DECLARE @startRowIndex int +SET @startRowIndex = (@PageNumber * @PageSize) + +DECLARE @maxRow int +SET @maxRow = (@startRowIndex + @PageSize) +IF( @MaxCount is not null ) +BEGIN + IF( @MaxCount < @MaxRow ) + BEGIN + SET ROWCOUNT @MaxCount + END + ELSE + BEGIN + SET ROWCOUNT @maxRow + END +END +ELSE +BEGIN + SET ROWCOUNT @maxRow +END + +-- Create Temporary Table + +CREATE TABLE #TempItems +( + ID int IDENTITY, + ArticleID int +) + +EXEC(' +INSERT INTO #TempItems (ArticleID) +SELECT + Article.[ArticleID] +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID +WHERE ' + + @strWhere + ' +ORDER BY + ' + @SortBy + ' ' + @SortDirection) + +SET ROWCOUNT 0 + +SELECT + Article.[ArticleID], + Article.[AuthorID], + Article.[ApproverID], + Article.[CreatedDate], + Article.[LastUpdate], + Article.[Title], + Article.[Summary], + Article.[IsApproved], + Article.[NumberOfViews], + Article.[StartDate], + Article.[EndDate], + Article.[ModuleID], + Article.[IsFeatured], + Article.[ImageUrl], + Article.[LastUpdateID], + Article.[IsSecure], + Article.[IsNewWindow], + Article.[ImageUrl], + Article.[Url], + Article.[PageCount], + Article.[CommentCount], + Article.[Rating], + Article.[RatingCount], + Article.[FileCount], + Article.[ImageCount], + Article.[MetaTitle], + Article.[MetaDescription], + Article.[MetaKeywords], + Article.[PageHeadText], + Article.[ShortUrl], + Article.[RssGuid], + Author.[Email] as AuthorEmail, + Author.[UserName] as AuthorUserName, + Author.[FirstName] as AuthorFirstName, + Author.[LastName] as AuthorLastName, + Author.[DisplayName] as AuthorDisplayName, + Updated.[Email] as LastUpdateEmail, + Updated.[UserName] as LastUpdateUserName, + Updated.[FirstName] as LastUpdateFirstName, + Updated.[LastName] as LastUpdateLastName, + Updated.[DisplayName] as LastUpdateDisplayName, + Page.PageText as 'Body', + {databaseOwner}{objectQualifier}Ventrian_NewsArticles_SplitTags(Article.[ArticleID]) as 'Tags' + +FROM + #TempItems t INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article ON t.ArticleID = Article.ArticleID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page on Page.ArticleID = Article.ArticleID AND Page.SortOrder = 0 LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Author ON Article.AuthorID = Author.UserID LEFT OUTER JOIN + {databaseOwner}{objectQualifier}Users Updated ON Article.LastUpdateID = Updated.UserID + +WHERE + ID > @startRowIndex + +ORDER BY + ID + +DROP TABLE #TempItems + +EXEC(' +SELECT + COUNT(Article.ArticleID) as ''TotalRecords'' +FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Article +WHERE ' + + @strWhere ) +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetNewsArchive + @ModuleID int, + @CategoryID varchar(2000), + @CategoryIDExclude varchar(2000), + @AuthorID int, + @GroupBy varchar(255), + @ShowPending bit +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Article.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) +BEGIN + IF( CHARINDEX('-1', @CategoryID) = 0 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + '))' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.ArticleID in ( select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories where {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.ArticleID = Article.ArticleID and {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories.CategoryID in (' + @CategoryID + ')) OR Article.ArticleID not in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories))' + END +END + +IF (@CategoryIDExclude is not null) +BEGIN + SELECT @strWhere = @strWhere + ' AND Article.ArticleID NOT IN (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' +END + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Article.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@ShowPending is null) +BEGIN + SELECT @strWhere = @strWhere + ' AND (Article.StartDate is null or Article.StartDate < ''' + CONVERT(char(24), DateAdd(mi, 1, GetDate()), 126) + ''')' +END + +IF( @GroupBy = 'Month' ) +BEGIN +EXEC(' + select Month(StartDate) as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] + from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article + where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' + group by Year(StartDate), Month(StartDate) + order by [Year] desc, [Month] desc') +END +ELSE +BEGIN +EXEC(' + select 1 as [Month], Year(StartDate) as [Year], 1 as Day, Count(*) as [Count] + from {databaseOwner}{objectQualifier}dnnforge_newsarticles_article Article + where IsApproved = 1 and IsDraft = 0 ' + + @strWhere + ' + group by Year(StartDate) + order by [Year] desc') +END +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetAuthorStatistics + @ModuleID int, + @CategoryID varchar(2000), + @CategoryIDExclude varchar(2000), + @AuthorID int, + @SortBy varchar(255), + @ShowPending bit +AS + +DECLARE @strTop nvarchar(2000) +DECLARE @strWhere nvarchar(2000) + +SELECT @strTop = '' +SELECT @strWhere = '' + +IF (@ModuleID is not null) + SELECT @strWhere = @strWhere + ' AND Articles.ModuleID = ' + convert(nvarchar, @ModuleId) + +IF (@CategoryId is not null) +BEGIN + IF( CHARINDEX('-1', @CategoryID) = 0 ) + BEGIN + SELECT @strWhere = @strWhere + ' AND Articles.ArticleID in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryID + '))' + END + ELSE + BEGIN + SELECT @strWhere = @strWhere + ' AND (Articles.ArticleID in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryID + ')) OR Articles.ArticleID not in (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories))' + END +END + +IF (@CategoryIDExclude is not null) +BEGIN + SELECT @strWhere = @strWhere + ' AND Articles.ArticleID NOT IN (select ArticleID from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ArticleCategories where ArticleCategories.CategoryID in (' + @CategoryIDExclude + '))' +END + +IF (@AuthorID is not null) + SELECT @strWhere = @strWhere + ' AND Articles.AuthorID = ' + convert(nvarchar, @AuthorID) + +IF (@ShowPending is null ) + SELECT @strWhere = @strWhere + ' AND (Articles.StartDate is null OR Articles.StartDate < ''' + CONVERT(char(24), DateAdd(mi, 1, GetDate()), 126) + ''')' + +EXEC(' +SELECT + UserID, UserName, DisplayName, FirstName, LastName, count(*) as ''ArticleCount'' +FROM + {databaseOwner}{objectQualifier}Users Users, {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article Articles +where Articles.IsApproved = 1 and Articles.IsDraft = 0 and Users.UserID = Articles.AuthorID ' + + @strWhere + ' +GROUP BY + UserID, UserName, DisplayName, FirstName, LastName +ORDER BY ' + + @SortBy) +GO diff --git a/SqlDataProvider/00.08.00.SqlDataProvider b/SqlDataProvider/00.08.00.SqlDataProvider new file mode 100644 index 0000000..aa20273 --- /dev/null +++ b/SqlDataProvider/00.08.00.SqlDataProvider @@ -0,0 +1,114 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll + @ModuleID int, + @Current int, + @CategoryID varchar(255), + @AuthorID int, + @MaxDepth int, + @ShowPending bit, + @SortType int +AS + +SET NOCOUNT ON + +DECLARE @FilterID int +SET @FilterID = @Current + +DECLARE @level int, @line int + +CREATE TABLE #hierarchy(HierarchyID int IDENTITY (1,1), CategoryID int, level int) +CREATE TABLE #stack (StackID int IDENTITY (1,1), item int, level int) +INSERT INTO #stack VALUES (@current, 1) +SELECT @level = 1 + +WHILE @level > 0 +BEGIN + IF EXISTS (SELECT TOP 1 * FROM #stack WHERE level = @level ORDER BY StackID) + BEGIN + SELECT @current = item + FROM #stack + WHERE level = @level + + insert into #hierarchy(CategoryID, level) values(@current, @level) + + DELETE FROM #stack + WHERE level = @level + AND item = @current + + IF( @MaxDepth IS NULL OR @MaxDepth >= @level ) + BEGIN + IF( @SortType = 0 ) + BEGIN + INSERT #stack + SELECT CategoryID, @level + 1 + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE ParentID = @current and ModuleID = @ModuleID + ORDER BY [SortOrder] DESC, [Name] DESC + END + ELSE + BEGIN + INSERT #stack + SELECT CategoryID, @level + 1 + FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE ParentID = @current and ModuleID = @ModuleID + ORDER BY [Name] DESC + END + IF @@ROWCOUNT > 0 + SELECT @level = @level + 1 + END + END + ELSE + SELECT @level = @level - 1 +END -- WHILE + +IF( @FilterID IS NOT NULL ) +BEGIN + DELETE FROM #hierarchy WHERE CategoryID = @FilterID +END + +DECLARE @strModuleID nvarchar(50) +SELECT @strModuleID = convert(varchar, @ModuleID) + +DECLARE @strCategoryId nvarchar(255) +IF (@CategoryId is not null) + SELECT @strCategoryId = ' AND c.CategoryID in (' + @CategoryID + ')' + +DECLARE @strAuthorId nvarchar(255) +IF (@authorId is not null) + SELECT @strAuthorId = ' AND a.AuthorID = ' + cast(@AuthorID as nvarchar) + +DECLARE @strPending nvarchar(2000) +IF (@ShowPending is null) + SELECT @strPending = ' AND (a.StartDate IS NULL OR a.StartDate < GetDate())' + +EXEC(' +SELECT + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + REPLICATE(''.'',(level-2)*2) + c.[Name] as ''NameIndented'', + c.[Image], + c.[Description], + c.[SortOrder], + c.[InheritSecurity], + c.[CategorySecurityType], + c.[MetaTitle], + c.[MetaDescription], + c.[MetaKeywords], + level-1 as ''Level'', + (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a ON ac.ArticleID = a.ArticleID WHERE ac.CategoryID = c.CategoryID AND a.IsDraft = 0 AND a.IsApproved = 1 ' + @strAuthorId + @strPending + ') as ''NumberofArticles'', + (SELECT SUM(a.NumberOfViews) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac ON a.ArticleID = ac.ArticleID WHERE ac.CategoryID = c.CategoryID) as ''NumberofViews'' +FROM + #hierarchy h INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON h.CategoryID = c.CategoryID +WHERE + c.[ModuleID] = ' + @strModuleID + @strCategoryId + ' +ORDER BY + h.HierarchyID ASC') + +drop table #hierarchy +drop table #stack +GO diff --git a/SqlDataProvider/00.08.04.SqlDataProvider b/SqlDataProvider/00.08.04.SqlDataProvider new file mode 100644 index 0000000..be5a1be --- /dev/null +++ b/SqlDataProvider/00.08.04.SqlDataProvider @@ -0,0 +1,134 @@ +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdateArticleCount + @ArticleID int, + @NumberOfViews int +AS + UPDATE + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article + SET + [NumberOfViews] = @NumberOfViews + WHERE + [ArticleID] = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll + @ModuleID int, + @AuthorID int, + @ShowPending bit, + @SortType int +AS + +;WITH CategoryHierarchy AS +( + SELECT + CategoryID, + ParentID, + CONVERT(nvarchar(max), Name) AS Path, + 1 as level, + SortOrder * (CONVERT(bigint, '1' + REPLICATE('0', 10))) AS 'SortOrderCount' + FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE + ParentID = -1 + AND + ModuleID = @ModuleID + + UNION ALL + + SELECT + TH.CategoryID, + TH.ParentID, + CONVERT(nvarchar(max), CategoryHierarchy.Path + ' \ ' + TH.Name) AS Path, + level = level + 1, + CategoryHierarchy.SortOrderCount + (CONVERT(bigint, CONVERT(varchar, TH.SortOrder) + REPLICATE('0', 10-level))) AS 'SortOrderCount' + FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category TH INNER JOIN + CategoryHierarchy ON CategoryHierarchy.CategoryID = TH.ParentID +) + +SELECT + SortOrderCount, + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + REPLICATE('.',(level-1)*2) + c.[Name] as 'NameIndented', + c.[Image], + c.[Description], + c.[SortOrder], + c.[InheritSecurity], + c.[CategorySecurityType], + c.[MetaTitle], + c.[MetaDescription], + c.[MetaKeywords], + ch.[level], + (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a ON ac.ArticleID = a.ArticleID WHERE ac.CategoryID = c.CategoryID AND a.IsDraft = 0 AND a.IsApproved = 1 AND (@authorId IS NULL OR a.AuthorID = @authorID) AND (@ShowPending IS NOT NULL OR (a.StartDate IS NULL OR a.StartDate < GetDate()))) as 'NumberofArticles' +FROM + CategoryHierarchy ch INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON ch.CategoryID = c.CategoryID +ORDER BY + CASE WHEN @SortType = 0 THEN CAST(ch.SortOrderCount AS VARCHAR) ELSE ch.Path END +GO + +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page +ALTER COLUMN PageText nvarchar(max) +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddPage +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddPage + @ArticleID int, + @Title nvarchar(255), + @PageText nvarchar(max), + @SortOrder int +AS + +declare @count int + +select @count = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page where ArticleID = @ArticleID) + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page ( + [ArticleID], + [Title], + [PageText], + [SortOrder] +) VALUES ( + @ArticleID, + @Title, + @PageText, + @count +) + +select SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = @ArticleID +GO + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdatePage +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_UpdatePage + @PageID int, + @ArticleID int, + @Title nvarchar(255), + @PageText nvarchar(max), + @SortOrder int +AS + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page SET + [ArticleID] = @ArticleID, + [Title] = @Title, + [PageText] = @PageText, + [SortOrder] = @SortOrder +WHERE + [PageID] = @PageID + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = @ArticleID +GO diff --git a/SqlDataProvider/00.08.05.SqlDataProvider b/SqlDataProvider/00.08.05.SqlDataProvider new file mode 100644 index 0000000..02a5445 --- /dev/null +++ b/SqlDataProvider/00.08.05.SqlDataProvider @@ -0,0 +1,62 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll + @ModuleID int, + @AuthorID int, + @ShowPending bit, + @SortType int +AS + +;WITH CategoryHierarchy AS +( + SELECT + CategoryID, + ParentID, + CONVERT(nvarchar(max), Name) AS Path, + 1 as level, + (SortOrder+1) * (CONVERT(bigint, '1' + REPLICATE('0', 10))) AS 'SortOrderCount' + FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE + ParentID = -1 + AND + ModuleID = @ModuleID + + UNION ALL + + SELECT + TH.CategoryID, + TH.ParentID, + CONVERT(nvarchar(max), CategoryHierarchy.Path + ' \ ' + TH.Name) AS Path, + level = level + 1, + CategoryHierarchy.SortOrderCount + (CONVERT(bigint, CONVERT(varchar, TH.SortOrder) + REPLICATE('0', 10-level))) AS 'SortOrderCount' + FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category TH INNER JOIN + CategoryHierarchy ON CategoryHierarchy.CategoryID = TH.ParentID +) + +SELECT + SortOrderCount, + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + REPLICATE('.',(level-1)*2) + c.[Name] as 'NameIndented', + c.[Image], + c.[Description], + c.[SortOrder], + c.[InheritSecurity], + c.[CategorySecurityType], + c.[MetaTitle], + c.[MetaDescription], + c.[MetaKeywords], + ch.[level], + (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a ON ac.ArticleID = a.ArticleID WHERE ac.CategoryID = c.CategoryID AND a.IsDraft = 0 AND a.IsApproved = 1 AND (@authorId IS NULL OR a.AuthorID = @authorID) AND (@ShowPending IS NOT NULL OR (a.StartDate IS NULL OR a.StartDate < GetDate()))) as 'NumberofArticles' +FROM + CategoryHierarchy ch INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON ch.CategoryID = c.CategoryID +ORDER BY + CASE WHEN @SortType = 0 THEN CAST(ch.SortOrderCount AS VARCHAR) ELSE ch.Path END +GO + diff --git a/SqlDataProvider/00.08.06.SqlDataProvider b/SqlDataProvider/00.08.06.SqlDataProvider new file mode 100644 index 0000000..97665bb --- /dev/null +++ b/SqlDataProvider/00.08.06.SqlDataProvider @@ -0,0 +1,62 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll + @ModuleID int, + @AuthorID int, + @ShowPending bit, + @SortType int +AS + +;WITH CategoryHierarchy AS +( + SELECT + CategoryID, + ParentID, + CONVERT(nvarchar(max), Name) AS Path, + 1 as level, + (SortOrder+1) * (CONVERT(bigint, '1' + REPLICATE('0', 10))) AS 'SortOrderCount' + FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE + ParentID = -1 + AND + ModuleID = @ModuleID + + UNION ALL + + SELECT + TH.CategoryID, + TH.ParentID, + CONVERT(nvarchar(max), CategoryHierarchy.Path + ' \ ' + TH.Name) AS Path, + level = level + 1, + CategoryHierarchy.SortOrderCount + (CONVERT(bigint, CONVERT(varchar, (TH.SortOrder+1)) + REPLICATE('0', 10-(level*2)))) AS 'SortOrderCount' + FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category TH INNER JOIN + CategoryHierarchy ON CategoryHierarchy.CategoryID = TH.ParentID +) + +SELECT + SortOrderCount, + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + REPLICATE('.',(level-1)*2) + c.[Name] as 'NameIndented', + c.[Image], + c.[Description], + c.[SortOrder], + c.[InheritSecurity], + c.[CategorySecurityType], + c.[MetaTitle], + c.[MetaDescription], + c.[MetaKeywords], + ch.[level], + (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a ON ac.ArticleID = a.ArticleID WHERE ac.CategoryID = c.CategoryID AND a.IsDraft = 0 AND a.IsApproved = 1 AND (@authorId IS NULL OR a.AuthorID = @authorID) AND (@ShowPending IS NOT NULL OR (a.StartDate IS NULL OR a.StartDate < GetDate()))) as 'NumberofArticles' +FROM + CategoryHierarchy ch INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON ch.CategoryID = c.CategoryID +ORDER BY + CASE WHEN @SortType = 0 THEN CAST(ch.SortOrderCount AS VARCHAR) ELSE ch.Path END +GO + diff --git a/SqlDataProvider/00.09.02.SqlDataProvider b/SqlDataProvider/00.09.02.SqlDataProvider new file mode 100644 index 0000000..9ccaab6 --- /dev/null +++ b/SqlDataProvider/00.09.02.SqlDataProvider @@ -0,0 +1,109 @@ + +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddArticle + @AuthorID int, + @ApproverID int, + @CreatedDate datetime, + @LastUpdate datetime, + @Title nvarchar(255), + @Summary ntext, + @IsApproved bit, + @NumberOfViews int, + @IsDraft bit, + @StartDate DateTime, + @EndDate DateTime, + @ModuleID int, + @ImageUrl nvarchar(255), + @IsFeatured bit, + @LastUpdateID int, + @Url nvarchar(255), + @IsSecure bit, + @IsNewWindow bit, + @MetaTitle nvarchar(200), + @MetaDescription nvarchar(500), + @MetaKeywords nvarchar(500), + @PageHeadText nvarchar(500), + @ShortUrl nvarchar(50), + @RssGuid nvarchar(255) +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article ( + [AuthorID], + [ApproverID], + [CreatedDate], + [LastUpdate], + [Title], + [Summary], + [IsApproved], + [NumberOfViews], + [IsDraft], + [StartDate], + [EndDate], + [ModuleID], + [ImageUrl], + [IsFeatured], + [LastUpdateID], + [Url], + [IsSecure], + [IsNewWindow], + [MetaTitle], + [MetaDescription], + [MetaKeywords], + [PageHeadText], + [ShortUrl], + [RssGuid] +) VALUES ( + @AuthorID, + @ApproverID, + @CreatedDate, + @LastUpdate, + @Title, + @Summary, + @IsApproved, + @NumberOfViews, + @IsDraft, + @StartDate, + @EndDate, + @ModuleID, + @ImageUrl, + @IsFeatured, + @LastUpdateID, + @Url, + @IsSecure, + @IsNewWindow, + @MetaTitle, + @MetaDescription, + @MetaKeywords, + @PageHeadText, + @ShortUrl, + @RssGuid +) + +select SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [PageCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Page Page where Page.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE ArticleID = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +WHERE ArticleID = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [Rating] = (select AVG(rating) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [RatingCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Rating Rating where Rating.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [ImageCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Image i where i.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [FileCount] = (select COUNT(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_File f where f.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID) +WHERE [ArticleID] = SCOPE_IDENTITY() +GO \ No newline at end of file diff --git a/SqlDataProvider/00.09.05.SqlDataProvider b/SqlDataProvider/00.09.05.SqlDataProvider new file mode 100644 index 0000000..f4e9b2a --- /dev/null +++ b/SqlDataProvider/00.09.05.SqlDataProvider @@ -0,0 +1,71 @@ +ALTER TABLE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_HandoutArticle ADD CONSTRAINT + PK_{objectQualifier}DnnForge_NewsArticles_HandoutArticle PRIMARY KEY CLUSTERED + ( + HandoutID, + ArticleID + ) ON [PRIMARY] + +GO + +ALTER PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_AddComment + @ArticleID int, + @CreatedDate datetime, + @UserID int, + @Comment ntext, + @RemoteAddress nvarchar(50) , + @Type int, + @TrackbackUrl nvarchar(255), + @TrackbackTitle nvarchar(255), + @TrackbackBlogName nvarchar(255), + @TrackbackExcerpt ntext, + @AnonymousName nvarchar(255), + @AnonymousEmail nvarchar(255), + @AnonymousURL nvarchar(255), + @NotifyMe bit, + @IsApproved bit, + @ApprovedBy int +AS + +INSERT INTO {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment ( + [ArticleID], + [CreatedDate], + [UserID], + [Comment], + [RemoteAddress], + [Type], + [TrackbackUrl], + [TrackbackTitle], + [TrackbackBlogName], + [TrackbackExcerpt], + [AnonymousName], + [AnonymousEmail], + [AnonymousURL], + [NotifyMe], + [IsApproved], + [ApprovedBy] +) VALUES ( + @ArticleID, + @CreatedDate, + @UserID, + @Comment, + @RemoteAddress, + @Type, + @TrackbackUrl, + @TrackbackTitle, + @TrackbackBlogName, + @TrackbackExcerpt, + @AnonymousName, + @AnonymousEmail, + @AnonymousURL, + @NotifyMe, + @IsApproved, + @ApprovedBy +) + +select SCOPE_IDENTITY() + +UPDATE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article +SET [CommentCount] = (select count(*) from {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Comment Comment where Comment.ArticleID = {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article.ArticleID and Comment.IsApproved = 1) +WHERE ArticleID = @ArticleID +GO + diff --git a/SqlDataProvider/00.09.06.SqlDataProvider b/SqlDataProvider/00.09.06.SqlDataProvider new file mode 100644 index 0000000..7fe888d --- /dev/null +++ b/SqlDataProvider/00.09.06.SqlDataProvider @@ -0,0 +1,62 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll + @ModuleID int, + @AuthorID int, + @ShowPending bit, + @SortType int +AS + +;WITH CategoryHierarchy AS +( + SELECT + CategoryID, + ParentID, + CONVERT(nvarchar(max), Name) AS Path, + 1 as level, + SortOrder * (CONVERT(bigint, '1' + REPLICATE('0', 10))) AS 'SortOrderCount' + FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE + ParentID = -1 + AND + ModuleID = @ModuleID + + UNION ALL + + SELECT + TH.CategoryID, + TH.ParentID, + CONVERT(nvarchar(max), CategoryHierarchy.Path + ' \ ' + TH.Name) AS Path, + level = level + 1, + CategoryHierarchy.SortOrderCount + (CONVERT(bigint, CONVERT(varchar, TH.SortOrder) + REPLICATE('0', 10-level))) AS 'SortOrderCount' + FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category TH INNER JOIN + CategoryHierarchy ON CategoryHierarchy.CategoryID = TH.ParentID +) + +SELECT + SortOrderCount, + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + REPLICATE('.',(level-1)*2) + c.[Name] as 'NameIndented', + c.[Image], + c.[Description], + c.[SortOrder], + c.[InheritSecurity], + c.[CategorySecurityType], + c.[MetaTitle], + c.[MetaDescription], + c.[MetaKeywords], + ch.[level], + (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a ON ac.ArticleID = a.ArticleID WHERE ac.CategoryID = c.CategoryID AND a.IsDraft = 0 AND a.IsApproved = 1 AND (@authorId IS NULL OR a.AuthorID = @authorID) AND (@ShowPending IS NOT NULL OR (a.StartDate IS NULL OR a.StartDate < GetDate()))) as 'NumberofArticles' +FROM + CategoryHierarchy ch INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON ch.CategoryID = c.CategoryID +ORDER BY + CASE WHEN @SortType = 0 THEN ch.SortOrderCount END, + CASE WHEN @SortType = 1 THEN CH.Path END +GO diff --git a/SqlDataProvider/00.09.11.SqlDataProvider b/SqlDataProvider/00.09.11.SqlDataProvider new file mode 100644 index 0000000..32f5608 --- /dev/null +++ b/SqlDataProvider/00.09.11.SqlDataProvider @@ -0,0 +1,61 @@ +DROP PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll +GO + +CREATE PROCEDURE {databaseOwner}{objectQualifier}DnnForge_NewsArticles_GetCategoryListAll + @ModuleID int, + @AuthorID int, + @ShowPending bit, + @SortType int +AS + +;WITH CategoryHierarchy AS +( + SELECT + CategoryID, + ParentID, + CONVERT(nvarchar(max), Name) AS Path, + 1 as level, + (SortOrder+1) * (CONVERT(bigint, '1' + REPLICATE('0', 15))) AS 'SortOrderCount' + FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category + WHERE + ParentID = -1 + AND + ModuleID = @ModuleID + + UNION ALL + + SELECT + TH.CategoryID, + TH.ParentID, + CONVERT(nvarchar(max), CategoryHierarchy.Path + ' \ ' + TH.Name) AS Path, + level = level + 1, + CategoryHierarchy.SortOrderCount + 1 + (CONVERT(bigint, CONVERT(varchar, TH.SortOrder) + REPLICATE('0', 15-level*2))) AS 'SortOrderCount' + FROM + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category TH INNER JOIN + CategoryHierarchy ON CategoryHierarchy.CategoryID = TH.ParentID +) + +SELECT + SortOrderCount, + c.[CategoryID], + c.[ParentID], + c.[ModuleID], + c.[Name], + REPLICATE('.',(level-1)*2) + c.[Name] as 'NameIndented', + c.[Image], + c.[Description], + c.[SortOrder], + c.[InheritSecurity], + c.[CategorySecurityType], + c.[MetaTitle], + c.[MetaDescription], + c.[MetaKeywords], + ch.[level], + (SELECT COUNT(*) FROM {databaseOwner}{objectQualifier}DnnForge_NewsArticles_ArticleCategories ac INNER JOIN {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Article a ON ac.ArticleID = a.ArticleID WHERE ac.CategoryID = c.CategoryID AND a.IsDraft = 0 AND a.IsApproved = 1 AND (@authorId IS NULL OR a.AuthorID = @authorID) AND (@ShowPending IS NOT NULL OR (a.StartDate IS NULL OR a.StartDate < GetDate()))) as 'NumberofArticles' +FROM + CategoryHierarchy ch INNER JOIN + {databaseOwner}{objectQualifier}DnnForge_NewsArticles_Category c ON ch.CategoryID = c.CategoryID +ORDER BY + CASE WHEN @SortType = 0 THEN CAST(ch.SortOrderCount AS VARCHAR) ELSE ch.Path END +GO \ No newline at end of file diff --git a/SqlDataProvider/Uninstall.SqlDataProvider b/SqlDataProvider/Uninstall.SqlDataProvider new file mode 100644 index 0000000..34b48db Binary files /dev/null and b/SqlDataProvider/Uninstall.SqlDataProvider differ diff --git a/Ventrian.NewsArticles.vbproj b/Ventrian.NewsArticles.vbproj index 9fbfe53..439ec85 100755 --- a/Ventrian.NewsArticles.vbproj +++ b/Ventrian.NewsArticles.vbproj @@ -18,13 +18,15 @@ 3.5 - v3.5 + v4.5 false + + true @@ -32,31 +34,37 @@ true true ..\..\bin\ - Ventrian.xml + + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42353,42354,42355 + false pdbonly false true true - bin\ - Ventrian.xml + ..\..\bin\ + + 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42353,42354,42355 + false - + False - ..\..\..\..\DotNetNuke482\Website\Bin\DotNetNuke.dll + Libraries\DotNetNuke.dll + False - + False - ..\..\bin\DotNetNuke.Web.Client.dll + Libraries\DotNetNuke.Web.Client.dll + False @@ -65,6 +73,9 @@ + + + @@ -73,7 +84,8 @@ - False + False + Libraries\Ventrian.ImageResizer.dll @@ -153,7 +165,6 @@ - @@ -214,12 +225,8 @@ - - - SWFUploaderFiles.ashx - UploadFiles.ascx @@ -248,9 +255,6 @@ PostRating.ascx ASPXCodeBehind - - SWFUploader.ashx - UploadImages.ascx @@ -807,21 +811,9 @@ - - - - - - - - - - - - @@ -841,7 +833,6 @@ - @@ -884,11 +875,8 @@ - - - MyApplicationCodeGenerator Application.Designer.vb @@ -901,7 +889,6 @@ Designer - @@ -991,9 +978,9 @@ True 55764 / - http://localhost/DotNetNuke455 + http://europedirect.dnndev.me True - http://localhost/DotNetNuke455 + http://europedirect.dnndev.me False False diff --git a/Ventrian.NewsArticles.vbproj.user b/Ventrian.NewsArticles.vbproj.user index b8e4aa5..a036481 100755 --- a/Ventrian.NewsArticles.vbproj.user +++ b/Ventrian.NewsArticles.vbproj.user @@ -1,5 +1,16 @@  - + + + Release|Any CPU + ShowAllFiles + false + + + + + + + @@ -19,7 +30,7 @@ - False + True True diff --git a/ViewArticle.ascx.vb b/ViewArticle.ascx.vb index ebb90ff..e59bfb4 100755 --- a/ViewArticle.ascx.vb +++ b/ViewArticle.ascx.vb @@ -8,6 +8,7 @@ Imports DotNetNuke.Services.Exceptions Imports DotNetNuke.Services.Localization Imports System.Text +Imports DotNetNuke.Security.Permissions Imports Ventrian.NewsArticles.Base Namespace Ventrian.NewsArticles @@ -184,7 +185,8 @@ Namespace Ventrian.NewsArticles Dim objModule As ModuleInfo = objModuleController.GetModule(objArticle.ModuleID, Me.TabId) If Not (objModule Is Nothing) Then - If (DotNetNuke.Security.PortalSecurity.IsInRoles(objModule.AuthorizedViewRoles) = False) Then + If (ModulePermissionController.CanViewModule(objModule) = False) Then + 'If (DotNetNuke.Security.PortalSecurity.IsInRoles(objModule.AuthorizedViewRoles) = False) Then Response.Redirect(NavigateURL(Me.TabId), True) End If End If @@ -263,7 +265,43 @@ Namespace Ventrian.NewsArticles Me.BasePage.Header.Controls.Add(phPageHeaderTitle) End If - End Sub + + ' set metatags for sharing + Dim sb As New StringBuilder() + Dim desc As String = StripHtml(Server.HtmlDecode(objArticle.Summary.Trim()), True) + If String.IsNullOrEmpty(desc) Then + Dim pageController As New PageController + Dim pageList As ArrayList = pageController.GetPageList(objArticle.ArticleID) + If pageList.Count > 0 Then + Dim p As PageInfo = pageList(0) + desc = StripHtml(Server.HtmlDecode(p.PageText), True) + End If + End If + desc = desc.Substring(0, Math.Min(300, desc.Length)) + + Dim img As String = "" + If (objArticle.ImageUrl <> "") Then + img = FormatImageUrl(objArticle.ImageUrl) + Else + If (objArticle.ImageCount > 0) Then + Dim objImageController As New ImageController + Dim objImages As List(Of ImageInfo) = objImageController.GetImageList(objArticle.ArticleID, Null.NullString()) + If (objImages.Count > 0) Then + img = AddHTTP(System.Web.HttpContext.Current.Request.Url.Host & PortalSettings.HomeDirectory & objImages(0).Folder & objImages(0).FileName) + End If + End If + End If + + sb.AppendFormat("{1}", "article", System.Environment.NewLine) + sb.AppendFormat("{1}", objArticle.Title, System.Environment.NewLine) + sb.AppendFormat("{1}", desc, System.Environment.NewLine) + sb.AppendFormat("{1}", targetUrl, System.Environment.NewLine) + If (Not String.IsNullOrEmpty(img)) Then + sb.AppendFormat("{1}", img, System.Environment.NewLine) + End If + Me.Parent.Page.Header.Controls.Add(New LiteralControl(sb.ToString())) + + End Sub Private Sub ReadQueryString() diff --git a/ViewCategory.ascx.vb b/ViewCategory.ascx.vb index cd8a775..f32745a 100755 --- a/ViewCategory.ascx.vb +++ b/ViewCategory.ascx.vb @@ -9,6 +9,7 @@ Imports DotNetNuke.Common.Utilities Imports DotNetNuke.Services.Exceptions Imports DotNetNuke.Services.Localization Imports DotNetNuke.Security +Imports DotNetNuke.Services.FileSystem Imports Ventrian.NewsArticles.Base @@ -138,8 +139,7 @@ Namespace Ventrian.NewsArticles If (objCategory.Image.Split("="c).Length = 2) Then If (IsNumeric(objCategory.Image.Split("="c)(1))) Then - Dim objFileController As New DotNetNuke.Services.FileSystem.FileController() - Dim objFile As DotNetNuke.Services.FileSystem.FileInfo = objFileController.GetFileById(Convert.ToInt32(objCategory.Image.Split("="c)(1)), PortalId) + Dim objFile As DotNetNuke.Services.FileSystem.FileInfo = FileManager.Instance.GetFile(Convert.ToInt32(objCategory.Image.Split("="c)(1))) If (objFile IsNot Nothing) Then Dim objImage As New Image @@ -158,8 +158,7 @@ Namespace Ventrian.NewsArticles If (objCategory.Image.Split("="c).Length = 2) Then If (IsNumeric(objCategory.Image.Split("="c)(1))) Then - Dim objFileController As New DotNetNuke.Services.FileSystem.FileController() - Dim objFile As DotNetNuke.Services.FileSystem.FileInfo = objFileController.GetFileById(Convert.ToInt32(objCategory.Image.Split("="c)(1)), PortalId) + Dim objFile As DotNetNuke.Services.FileSystem.FileInfo = FileManager.Instance.GetFile(Convert.ToInt32(objCategory.Image.Split("="c)(1))) If (objFile IsNot Nothing) Then Dim objLiteral As New Literal @@ -281,8 +280,7 @@ Namespace Ventrian.NewsArticles If (objCategory.Image.Split("="c).Length = 2) Then If (IsNumeric(objCategory.Image.Split("="c)(1))) Then - Dim objFileController As New DotNetNuke.Services.FileSystem.FileController() - Dim objFile As DotNetNuke.Services.FileSystem.FileInfo = objFileController.GetFileById(Convert.ToInt32(objCategory.Image.Split("="c)(1)), PortalId) + Dim objFile As DotNetNuke.Services.FileSystem.FileInfo = FileManager.Instance.GetFile(Convert.ToInt32(objCategory.Image.Split("="c)(1))) If (objFile IsNot Nothing) Then @@ -582,8 +580,7 @@ Namespace Ventrian.NewsArticles If (objCategory.Image.Split("="c).Length = 2) Then If (IsNumeric(objCategory.Image.Split("="c)(1))) Then - Dim objFileController As New DotNetNuke.Services.FileSystem.FileController() - Dim objFile As DotNetNuke.Services.FileSystem.FileInfo = objFileController.GetFileById(Convert.ToInt32(objCategory.Image.Split("="c)(1)), PortalId) + Dim objFile As DotNetNuke.Services.FileSystem.FileInfo = FileManager.Instance.GetFile(Convert.ToInt32(objCategory.Image.Split("="c)(1))) If (objFile IsNot Nothing) Then Dim objImage As New Image @@ -602,8 +599,7 @@ Namespace Ventrian.NewsArticles If (objCategory.Image.Split("="c).Length = 2) Then If (IsNumeric(objCategory.Image.Split("="c)(1))) Then - Dim objFileController As New DotNetNuke.Services.FileSystem.FileController() - Dim objFile As DotNetNuke.Services.FileSystem.FileInfo = objFileController.GetFileById(Convert.ToInt32(objCategory.Image.Split("="c)(1)), PortalId) + Dim objFile As DotNetNuke.Services.FileSystem.FileInfo = FileManager.Instance.GetFile(Convert.ToInt32(objCategory.Image.Split("="c)(1))) If (objFile IsNot Nothing) Then Dim objLiteral As New Literal @@ -779,8 +775,7 @@ Namespace Ventrian.NewsArticles If (objCategory.Image.Split("="c).Length = 2) Then If (IsNumeric(objCategory.Image.Split("="c)(1))) Then - Dim objFileController As New DotNetNuke.Services.FileSystem.FileController() - Dim objFile As DotNetNuke.Services.FileSystem.FileInfo = objFileController.GetFileById(Convert.ToInt32(objCategory.Image.Split("="c)(1)), PortalId) + Dim objFile As DotNetNuke.Services.FileSystem.FileInfo = FileManager.Instance.GetFile(Convert.ToInt32(objCategory.Image.Split("="c)(1))) If (objFile IsNot Nothing) Then diff --git a/Web References/wsStoryFeed/Reference.vb b/Web References/wsStoryFeed/Reference.vb index 4ad4606..7d13939 100755 --- a/Web References/wsStoryFeed/Reference.vb +++ b/Web References/wsStoryFeed/Reference.vb @@ -1,7 +1,7 @@ '------------------------------------------------------------------------------ ' ' This code was generated by a tool. -' Runtime Version:4.0.30319.17929 +' Runtime Version:4.0.30319.42000 ' ' Changes to this file may cause incorrect behavior and will be lost if ' the code is regenerated. @@ -19,12 +19,12 @@ Imports System.Web.Services.Protocols Imports System.Xml.Serialization ' -'This source code was auto-generated by Microsoft.VSDesigner, Version 4.0.30319.17929. +'This source code was auto-generated by Microsoft.VSDesigner, Version 4.0.30319.42000. ' Namespace wsStoryFeed ''' - _ @@ -153,11 +153,11 @@ Namespace wsStoryFeed End Class ''' - _ + _ Public Delegate Sub AddActionCompletedEventHandler(ByVal sender As Object, ByVal e As AddActionCompletedEventArgs) ''' - _ Partial Public Class AddActionCompletedEventArgs @@ -180,11 +180,11 @@ Namespace wsStoryFeed End Class ''' - _ + _ Public Delegate Sub AddActionIfNotExistsCompletedEventHandler(ByVal sender As Object, ByVal e As AddActionIfNotExistsCompletedEventArgs) ''' - _ Partial Public Class AddActionIfNotExistsCompletedEventArgs diff --git a/ucApproveArticles.ascx.vb b/ucApproveArticles.ascx.vb index eb8ed17..cc3015c 100755 --- a/ucApproveArticles.ascx.vb +++ b/ucApproveArticles.ascx.vb @@ -116,7 +116,7 @@ Namespace Ventrian.NewsArticles Dim objEmailTemplateController As New EmailTemplateController If Not (objUser Is Nothing) Then - objEmailTemplateController.SendFormattedEmail(Me.ModuleId, Common.GetArticleLink(objArticle, PortalSettings.ActiveTab, ArticleSettings, False), objArticle, EmailTemplateType.ArticleApproved, objUser.Membership.Email, ArticleSettings) + objEmailTemplateController.SendFormattedEmail(Me.ModuleId, Common.GetArticleLink(objArticle, PortalSettings.ActiveTab, ArticleSettings, False), objArticle, EmailTemplateType.ArticleApproved, objUser.Email, ArticleSettings) End If End If @@ -235,7 +235,7 @@ Namespace Ventrian.NewsArticles Dim objRoleController As New RoleController() - Dim objRoles As ArrayList = objRoleController.GetRoles() + Dim objRoles As IList(Of RoleInfo) = objRoleController.GetRoles(PortalId) For Each objRole As RoleInfo In objRoles Dim roleAccess As Boolean = False diff --git a/ucApproveComments.ascx.vb b/ucApproveComments.ascx.vb index 68527a8..24fed38 100755 --- a/ucApproveComments.ascx.vb +++ b/ucApproveComments.ascx.vb @@ -59,7 +59,7 @@ Namespace Ventrian.NewsArticles Dim sendTo As String = "" If Not (objUser Is Nothing) Then - sendTo = objUser.Membership.Email + sendTo = objUser.Email End If objEventLog.AddLog("News Articles Email Failure", "Failure to send [Author Comment] to '" & sendTo & "' from '" & Me.PortalSettings.Email, PortalSettings, -1, DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.ADMIN_ALERT) End Try diff --git a/ucEditCategory.ascx.vb b/ucEditCategory.ascx.vb index 220ea6f..06757c6 100755 --- a/ucEditCategory.ascx.vb +++ b/ucEditCategory.ascx.vb @@ -85,9 +85,8 @@ Namespace Ventrian.NewsArticles Private Sub BindRoles() - Dim objRole As New RoleController Dim availableRoles As New ArrayList - Dim roles As ArrayList = objRole.GetPortalRoles(PortalId) + Dim roles As IList(Of RoleInfo) = RoleController.Instance.GetRoles(PortalId) If Not roles Is Nothing Then For Each Role As RoleInfo In roles diff --git a/ucImportFeed.ascx.vb b/ucImportFeed.ascx.vb index e4ad273..c4c0c81 100755 --- a/ucImportFeed.ascx.vb +++ b/ucImportFeed.ascx.vb @@ -83,7 +83,7 @@ Namespace Ventrian.NewsArticles End If drpAutoExpire.SelectedValue = Convert.ToInt32(objFeed.AutoExpireUnit).ToString() - Dim objUser As UserInfo = UserController.GetUser(PortalId, objFeed.UserID, True) + Dim objUser As UserInfo = UserController.Instance.GetUser(PortalId, objFeed.UserID) If (objUser IsNot Nothing) Then lblAuthor.Text = objUser.Username Else diff --git a/ucSubmitNews.ascx b/ucSubmitNews.ascx index b2dff06..148802b 100755 --- a/ucSubmitNews.ascx +++ b/ucSubmitNews.ascx @@ -12,9 +12,6 @@ - - -
diff --git a/ucSubmitNews.ascx.vb b/ucSubmitNews.ascx.vb index 1ce2319..f63059b 100755 --- a/ucSubmitNews.ascx.vb +++ b/ucSubmitNews.ascx.vb @@ -249,7 +249,7 @@ Namespace Ventrian.NewsArticles chkFeatured.Checked = ArticleSettings.IsAutoFeatured chkSecure.Checked = ArticleSettings.IsAutoSecured If (ArticleSettings.AuthorDefault <> Null.NullInteger) Then - Dim objUser As UserInfo = UserController.GetUser(PortalId, ArticleSettings.AuthorDefault, True) + Dim objUser As UserInfo = UserController.Instance.GetUser(PortalId, ArticleSettings.AuthorDefault) If (objUser IsNot Nothing) Then lblAuthor.Text = objUser.Username @@ -372,7 +372,7 @@ Namespace Ventrian.NewsArticles Public Function GetAuthorList(ByVal moduleID As Integer) As ArrayList - Dim moduleSettings As Hashtable = DotNetNuke.Entities.Portals.PortalSettings.GetModuleSettings(moduleID) + Dim moduleSettings As Hashtable = Common.GetModuleSettings(moduleId) Dim distributionList As String = "" Dim userList As New ArrayList @@ -389,8 +389,8 @@ Namespace Ventrian.NewsArticles Dim objRole As DotNetNuke.Security.Roles.RoleInfo = objRoleController.GetRoleByName(PortalSettings.PortalId, role) If Not (objRole Is Nothing) Then - Dim objUsers As ArrayList = objRoleController.GetUserRolesByRoleName(PortalSettings.PortalId, objRole.RoleName) - For Each objUser As DotNetNuke.Entities.Users.UserRoleInfo In objUsers + Dim objUsers As List(Of UserInfo) = RoleController.Instance.GetUsersByRole(PortalSettings.PortalId, objRole.RoleName) + For Each objUser As UserInfo In objUsers If (userIDs.Contains(objUser.UserID) = False) Then Dim objUserController As DotNetNuke.Entities.Users.UserController = New DotNetNuke.Entities.Users.UserController Dim objSelectedUser As DotNetNuke.Entities.Users.UserInfo = objUserController.GetUser(PortalSettings.PortalId, objUser.UserID) @@ -594,13 +594,12 @@ Namespace Ventrian.NewsArticles Dim folderLinked As String = "" Dim objModuleController As New ModuleController() - Dim objSettingsLinked As Hashtable = objModuleController.GetModuleSettings(drpMirrorModule.SelectedValue.Split("-"c)(1)) + Dim objSettingsLinked As Hashtable = Common.GetModuleSettings(drpMirrorModule.SelectedValue.Split("-"c)(1)) If (objSettingsLinked.ContainsKey(ArticleConstants.DEFAULT_FILES_FOLDER_SETTING)) Then If (IsNumeric(objSettingsLinked(ArticleConstants.DEFAULT_FILES_FOLDER_SETTING))) Then Dim folderID As Integer = Convert.ToInt32(objSettingsLinked(ArticleConstants.DEFAULT_FILES_FOLDER_SETTING)) - Dim objFolderController As New FolderController - Dim objFolder As FolderInfo = objFolderController.GetFolderInfo(Convert.ToInt32(drpMirrorModule.SelectedValue.Split("-"c)(0)), folderID) + Dim objFolder As FolderInfo = FolderManager.Instance.GetFolder(folderID) If (objFolder IsNot Nothing) Then folderLinked = objFolder.FolderPath End If @@ -614,13 +613,12 @@ Namespace Ventrian.NewsArticles Dim folder As String = "" - Dim objSettings As Hashtable = objModuleController.GetModuleSettings(ModuleId) + Dim objSettings As Hashtable = Common.GetModuleSettings(ModuleId) If (objSettings.ContainsKey(ArticleConstants.DEFAULT_FILES_FOLDER_SETTING)) Then If (IsNumeric(objSettings(ArticleConstants.DEFAULT_FILES_FOLDER_SETTING))) Then Dim folderID As Integer = Convert.ToInt32(objSettings(ArticleConstants.DEFAULT_FILES_FOLDER_SETTING)) - Dim objFolderController As New FolderController - Dim objFolder As FolderInfo = objFolderController.GetFolderInfo(PortalId, folderID) + Dim objFolder As FolderInfo = FolderManager.Instance.GetFolder(folderID) If (objFolder IsNot Nothing) Then folder = objFolder.FolderPath End If @@ -667,8 +665,7 @@ Namespace Ventrian.NewsArticles If (objSettingsLinked.ContainsKey(ArticleConstants.DEFAULT_IMAGES_FOLDER_SETTING)) Then If (IsNumeric(objSettingsLinked(ArticleConstants.DEFAULT_IMAGES_FOLDER_SETTING))) Then Dim folderID As Integer = Convert.ToInt32(objSettingsLinked(ArticleConstants.DEFAULT_IMAGES_FOLDER_SETTING)) - Dim objFolderController As New FolderController - Dim objFolder As FolderInfo = objFolderController.GetFolderInfo(Convert.ToInt32(drpMirrorModule.SelectedValue.Split("-"c)(0)), folderID) + Dim objFolder As FolderInfo = FolderManager.Instance.GetFolder(folderID) If (objFolder IsNot Nothing) Then folderImagesLinked = objFolder.FolderPath End If @@ -682,8 +679,7 @@ Namespace Ventrian.NewsArticles If (objSettings.ContainsKey(ArticleConstants.DEFAULT_IMAGES_FOLDER_SETTING)) Then If (IsNumeric(objSettings(ArticleConstants.DEFAULT_IMAGES_FOLDER_SETTING))) Then Dim folderID As Integer = Convert.ToInt32(objSettings(ArticleConstants.DEFAULT_IMAGES_FOLDER_SETTING)) - Dim objFolderController As New FolderController - Dim objFolder As FolderInfo = objFolderController.GetFolderInfo(PortalId, folderID) + Dim objFolder As FolderInfo = FolderManager.Instance.GetFolder(folderID) If (objFolder IsNot Nothing) Then folderImages = objFolder.FolderPath End If @@ -763,7 +759,7 @@ Namespace Ventrian.NewsArticles Dim objRoleController As New RoleController() - Dim objRoles As ArrayList = objRoleController.GetRoles() + Dim objRoles As IList(Of RoleInfo) = RoleController.Instance.GetRoles(PortalId) For Each objRole As RoleInfo In objRoles Dim roleAccess As Boolean = False @@ -963,14 +959,12 @@ Namespace Ventrian.NewsArticles 'Copy Files Dim folderLinked As String = "" - Dim objModuleController As New ModuleController() - Dim objSettingsLinked As Hashtable = objModuleController.GetModuleSettings(objArticleMirrored.ModuleID) + Dim objSettingsLinked As Hashtable = Common.GetModuleSettings(objArticleMirrored.ModuleID) If (objSettingsLinked.ContainsKey(ArticleConstants.DEFAULT_FILES_FOLDER_SETTING)) Then If (IsNumeric(objSettingsLinked(ArticleConstants.DEFAULT_FILES_FOLDER_SETTING))) Then Dim folderID As Integer = Convert.ToInt32(objSettingsLinked(ArticleConstants.DEFAULT_FILES_FOLDER_SETTING)) - Dim objFolderController As New FolderController - Dim objFolder As FolderInfo = objFolderController.GetFolderInfo(objArticleMirrored.ModuleID, folderID) + Dim objFolder As FolderInfo = FolderManager.Instance.GetFolder(folderID) If (objFolder IsNot Nothing) Then folderLinked = objFolder.FolderPath End If @@ -984,13 +978,12 @@ Namespace Ventrian.NewsArticles Dim folder As String = "" - Dim objSettings As Hashtable = objModuleController.GetModuleSettings(ModuleId) + Dim objSettings As Hashtable = Common.GetModuleSettings(ModuleId) If (objSettings.ContainsKey(ArticleConstants.DEFAULT_FILES_FOLDER_SETTING)) Then If (IsNumeric(objSettings(ArticleConstants.DEFAULT_FILES_FOLDER_SETTING))) Then Dim folderID As Integer = Convert.ToInt32(objSettings(ArticleConstants.DEFAULT_FILES_FOLDER_SETTING)) - Dim objFolderController As New FolderController - Dim objFolder As FolderInfo = objFolderController.GetFolderInfo(PortalId, folderID) + Dim objFolder As FolderInfo = FolderManager.Instance.GetFolder(folderID) If (objFolder IsNot Nothing) Then folder = objFolder.FolderPath End If @@ -1036,8 +1029,7 @@ Namespace Ventrian.NewsArticles If (objSettingsLinked.ContainsKey(ArticleConstants.DEFAULT_IMAGES_FOLDER_SETTING)) Then If (IsNumeric(objSettingsLinked(ArticleConstants.DEFAULT_IMAGES_FOLDER_SETTING))) Then Dim folderID As Integer = Convert.ToInt32(objSettingsLinked(ArticleConstants.DEFAULT_IMAGES_FOLDER_SETTING)) - Dim objFolderController As New FolderController - Dim objFolder As FolderInfo = objFolderController.GetFolderInfo(objArticleMirrored.ModuleID, folderID) + Dim objFolder As FolderInfo = FolderManager.Instance.GetFolder(folderID) If (objFolder IsNot Nothing) Then folderImagesLinked = objFolder.FolderPath End If @@ -1051,8 +1043,7 @@ Namespace Ventrian.NewsArticles If (objSettings.ContainsKey(ArticleConstants.DEFAULT_IMAGES_FOLDER_SETTING)) Then If (IsNumeric(objSettings(ArticleConstants.DEFAULT_IMAGES_FOLDER_SETTING))) Then Dim folderID As Integer = Convert.ToInt32(objSettings(ArticleConstants.DEFAULT_IMAGES_FOLDER_SETTING)) - Dim objFolderController As New FolderController - Dim objFolder As FolderInfo = objFolderController.GetFolderInfo(PortalId, folderID) + Dim objFolder As FolderInfo = FolderManager.Instance.GetFolder(folderID) If (objFolder IsNot Nothing) Then folderImages = objFolder.FolderPath End If diff --git a/ucViewOptions.ascx.designer.vb b/ucViewOptions.ascx.designer.vb index 7553520..4ab0bef 100755 --- a/ucViewOptions.ascx.designer.vb +++ b/ucViewOptions.ascx.designer.vb @@ -11,9 +11,9 @@ Option Strict On Option Explicit On Namespace Ventrian.NewsArticles - + Partial Public Class ucViewOptions - + ''' '''ucHeader1 control. ''' @@ -22,7 +22,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. '''
Protected WithEvents ucHeader1 As Global.Ventrian.NewsArticles.ucHeader - + ''' '''dshBasic control. ''' @@ -31,7 +31,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. '''
Protected WithEvents dshBasic As Global.System.Web.UI.UserControl - + ''' '''tblArticle control. ''' @@ -40,7 +40,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. '''
Protected WithEvents tblArticle As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''lblArticleSettingsHelp control. ''' @@ -49,7 +49,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. '''
Protected WithEvents lblArticleSettingsHelp As Global.System.Web.UI.WebControls.Label - + ''' '''dshDetails control. ''' @@ -58,7 +58,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. '''
Protected WithEvents dshDetails As Global.System.Web.UI.UserControl - + ''' '''tblDetails control. ''' @@ -67,7 +67,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblDetails As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plEnableRatings control. ''' @@ -76,7 +76,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plEnableRatings As Global.System.Web.UI.UserControl - + ''' '''chkEnableRatingsAuthenticated control. ''' @@ -85,7 +85,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkEnableRatingsAuthenticated As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plEnableAnonymousRatings control. ''' @@ -94,7 +94,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plEnableAnonymousRatings As Global.System.Web.UI.UserControl - + ''' '''chkEnableRatingsAnonymous control. ''' @@ -103,7 +103,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkEnableRatingsAnonymous As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plEnableCoreSearch control. ''' @@ -112,7 +112,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plEnableCoreSearch As Global.System.Web.UI.UserControl - + ''' '''chkEnableCoreSearch control. ''' @@ -121,7 +121,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkEnableCoreSearch As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plEnableNotificationPing control. ''' @@ -130,7 +130,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plEnableNotificationPing As Global.System.Web.UI.UserControl - + ''' '''chkEnableNotificationPing control. ''' @@ -139,7 +139,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkEnableNotificationPing As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plEnableAutoTrackback control. ''' @@ -148,7 +148,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plEnableAutoTrackback As Global.System.Web.UI.UserControl - + ''' '''chkEnableAutoTrackback control. ''' @@ -157,7 +157,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkEnableAutoTrackback As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plEnableIncomingTrackback control. ''' @@ -166,7 +166,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plEnableIncomingTrackback As Global.System.Web.UI.UserControl - + ''' '''chkEnableIncomingTrackback control. ''' @@ -175,7 +175,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkEnableIncomingTrackback As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plLaunchLinks control. ''' @@ -184,7 +184,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plLaunchLinks As Global.System.Web.UI.UserControl - + ''' '''chkLaunchLinks control. ''' @@ -193,7 +193,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkLaunchLinks As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plBubbleFeaturedArticles control. ''' @@ -202,7 +202,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plBubbleFeaturedArticles As Global.System.Web.UI.UserControl - + ''' '''chkBubbleFeaturedArticles control. ''' @@ -211,7 +211,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkBubbleFeaturedArticles As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plProcessPostTokens control. ''' @@ -220,7 +220,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plProcessPostTokens As Global.System.Web.UI.UserControl - + ''' '''chkProcessPostTokens control. ''' @@ -229,7 +229,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkProcessPostTokens As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plDisplayType control. ''' @@ -238,7 +238,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plDisplayType As Global.System.Web.UI.UserControl - + ''' '''drpDisplayType control. ''' @@ -247,7 +247,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents drpDisplayType As Global.System.Web.UI.WebControls.DropDownList - + ''' '''plArticlePageSize control. ''' @@ -256,7 +256,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plArticlePageSize As Global.System.Web.UI.UserControl - + ''' '''drpNumber control. ''' @@ -265,7 +265,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents drpNumber As Global.System.Web.UI.WebControls.DropDownList - + ''' '''plTemplate control. ''' @@ -274,7 +274,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plTemplate As Global.System.Web.UI.UserControl - + ''' '''drpTemplates control. ''' @@ -283,7 +283,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents drpTemplates As Global.System.Web.UI.WebControls.DropDownList - + ''' '''plTimeZone control. ''' @@ -292,7 +292,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plTimeZone As Global.System.Web.UI.UserControl - + ''' '''drpTimeZone control. ''' @@ -301,7 +301,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents drpTimeZone As Global.System.Web.UI.WebControls.DropDownList - + ''' '''plSortBy control. ''' @@ -310,7 +310,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plSortBy As Global.System.Web.UI.UserControl - + ''' '''drpSortBy control. ''' @@ -319,7 +319,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents drpSortBy As Global.System.Web.UI.WebControls.DropDownList - + ''' '''plSortDirection control. ''' @@ -328,7 +328,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plSortDirection As Global.System.Web.UI.UserControl - + ''' '''drpSortDirection control. ''' @@ -337,7 +337,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents drpSortDirection As Global.System.Web.UI.WebControls.DropDownList - + ''' '''plMenuPosition control. ''' @@ -346,7 +346,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plMenuPosition As Global.System.Web.UI.UserControl - + ''' '''lstMenuPosition control. ''' @@ -355,7 +355,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lstMenuPosition As Global.System.Web.UI.WebControls.RadioButtonList - + ''' '''dshArchive control. ''' @@ -364,7 +364,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshArchive As Global.System.Web.UI.UserControl - + ''' '''tblArchive control. ''' @@ -373,7 +373,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblArchive As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''Label1 control. ''' @@ -382,7 +382,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents Label1 As Global.System.Web.UI.UserControl - + ''' '''chkArchiveCurrentArticles control. ''' @@ -391,7 +391,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkArchiveCurrentArticles As Global.System.Web.UI.WebControls.CheckBox - + ''' '''Label2 control. ''' @@ -400,7 +400,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents Label2 As Global.System.Web.UI.UserControl - + ''' '''chkArchiveCategories control. ''' @@ -409,7 +409,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkArchiveCategories As Global.System.Web.UI.WebControls.CheckBox - + ''' '''Label3 control. ''' @@ -418,7 +418,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents Label3 As Global.System.Web.UI.UserControl - + ''' '''chkArchiveAuthor control. ''' @@ -427,7 +427,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkArchiveAuthor As Global.System.Web.UI.WebControls.CheckBox - + ''' '''Label4 control. ''' @@ -436,7 +436,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents Label4 As Global.System.Web.UI.UserControl - + ''' '''chkArchiveMonth control. ''' @@ -445,7 +445,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkArchiveMonth As Global.System.Web.UI.WebControls.CheckBox - + ''' '''dshCategory control. ''' @@ -454,7 +454,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshCategory As Global.System.Web.UI.UserControl - + ''' '''tblCategory control. ''' @@ -463,7 +463,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblCategory As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plRequireCategory control. ''' @@ -472,7 +472,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plRequireCategory As Global.System.Web.UI.UserControl - + ''' '''chkRequireCategory control. ''' @@ -481,7 +481,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkRequireCategory As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plDefaultCategories control. ''' @@ -490,7 +490,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plDefaultCategories As Global.System.Web.UI.UserControl - + ''' '''lstDefaultCategories control. ''' @@ -499,7 +499,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lstDefaultCategories As Global.System.Web.UI.WebControls.ListBox - + ''' '''plCategorySelectionHeight control. ''' @@ -508,7 +508,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plCategorySelectionHeight As Global.System.Web.UI.UserControl - + ''' '''txtCategorySelectionHeight control. ''' @@ -517,7 +517,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtCategorySelectionHeight As Global.System.Web.UI.WebControls.TextBox - + ''' '''valCategorySelectionHeight control. ''' @@ -526,7 +526,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valCategorySelectionHeight As Global.System.Web.UI.WebControls.RequiredFieldValidator - + ''' '''valCategorySelectionHeightIsValid control. ''' @@ -535,7 +535,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valCategorySelectionHeightIsValid As Global.System.Web.UI.WebControls.CompareValidator - + ''' '''plCategoryBreadcrumb control. ''' @@ -544,7 +544,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plCategoryBreadcrumb As Global.System.Web.UI.UserControl - + ''' '''chkCategoryBreadcrumb control. ''' @@ -553,7 +553,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkCategoryBreadcrumb As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plCategoryName control. ''' @@ -562,7 +562,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plCategoryName As Global.System.Web.UI.UserControl - + ''' '''chkCategoryName control. ''' @@ -571,7 +571,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkCategoryName As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plCategorySortOrder control. ''' @@ -580,7 +580,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plCategorySortOrder As Global.System.Web.UI.UserControl - + ''' '''lstCategorySortOrder control. ''' @@ -589,7 +589,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lstCategorySortOrder As Global.System.Web.UI.WebControls.RadioButtonList - + ''' '''plCategoryFilterSubmit control. ''' @@ -598,7 +598,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plCategoryFilterSubmit As Global.System.Web.UI.UserControl - + ''' '''chkCategoryFilterSubmit control. ''' @@ -607,7 +607,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkCategoryFilterSubmit As Global.System.Web.UI.WebControls.CheckBox - + ''' '''dshComments control. ''' @@ -616,7 +616,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshComments As Global.System.Web.UI.UserControl - + ''' '''tblComments control. ''' @@ -625,7 +625,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblComments As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plEnableComments control. ''' @@ -634,7 +634,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plEnableComments As Global.System.Web.UI.UserControl - + ''' '''chkEnableComments control. ''' @@ -643,7 +643,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkEnableComments As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plEnableAnonymousComments control. ''' @@ -652,7 +652,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plEnableAnonymousComments As Global.System.Web.UI.UserControl - + ''' '''chkEnableAnonymousComments control. ''' @@ -661,7 +661,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkEnableAnonymousComments As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plEnableCommentModeration control. ''' @@ -670,7 +670,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plEnableCommentModeration As Global.System.Web.UI.UserControl - + ''' '''chkEnableCommentModeration control. ''' @@ -679,7 +679,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkEnableCommentModeration As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plUseCaptcha control. ''' @@ -688,7 +688,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plUseCaptcha As Global.System.Web.UI.UserControl - + ''' '''chkUseCaptcha control. ''' @@ -697,7 +697,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkUseCaptcha As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plHideWebsite control. ''' @@ -706,7 +706,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plHideWebsite As Global.System.Web.UI.UserControl - + ''' '''chkHideWebsite control. ''' @@ -715,7 +715,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkHideWebsite As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plRequireName control. ''' @@ -724,7 +724,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plRequireName As Global.System.Web.UI.UserControl - + ''' '''chkRequireName control. ''' @@ -733,7 +733,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkRequireName As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plRequireEmail control. ''' @@ -742,7 +742,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plRequireEmail As Global.System.Web.UI.UserControl - + ''' '''chkRequireEmail control. ''' @@ -751,7 +751,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkRequireEmail As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plNotifyDefault control. ''' @@ -760,7 +760,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plNotifyDefault As Global.System.Web.UI.UserControl - + ''' '''chkNotifyDefault control. ''' @@ -769,7 +769,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkNotifyDefault As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plSortDirectionComments control. ''' @@ -778,7 +778,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plSortDirectionComments As Global.System.Web.UI.UserControl - + ''' '''drpSortDirectionComments control. ''' @@ -787,7 +787,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents drpSortDirectionComments As Global.System.Web.UI.WebControls.DropDownList - + ''' '''plAkismetKey control. ''' @@ -796,7 +796,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plAkismetKey As Global.System.Web.UI.UserControl - + ''' '''txtAkismetKey control. ''' @@ -805,7 +805,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtAkismetKey As Global.System.Web.UI.WebControls.TextBox - + ''' '''phContentSharing control. ''' @@ -814,7 +814,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents phContentSharing As Global.System.Web.UI.WebControls.PlaceHolder - + ''' '''dshContentSharing control. ''' @@ -823,7 +823,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshContentSharing As Global.System.Web.UI.UserControl - + ''' '''tblContentSharing control. ''' @@ -832,7 +832,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblContentSharing As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''lblContentSharing control. ''' @@ -841,7 +841,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lblContentSharing As Global.System.Web.UI.WebControls.Label - + ''' '''plAddArticleInstances control. ''' @@ -850,7 +850,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plAddArticleInstances As Global.System.Web.UI.UserControl - + ''' '''drpContentSharingPortals control. ''' @@ -859,7 +859,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents drpContentSharingPortals As Global.System.Web.UI.WebControls.DropDownList - + ''' '''cmdContentSharingAdd control. ''' @@ -868,7 +868,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents cmdContentSharingAdd As Global.System.Web.UI.WebControls.LinkButton - + ''' '''lblContentSharingNoneAvailable control. ''' @@ -877,7 +877,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lblContentSharingNoneAvailable As Global.System.Web.UI.WebControls.Label - + ''' '''plAvailableArticleInstances control. ''' @@ -886,7 +886,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plAvailableArticleInstances As Global.System.Web.UI.UserControl - + ''' '''grdContentSharing control. ''' @@ -895,7 +895,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents grdContentSharing As Global.System.Web.UI.WebControls.DataGrid - + ''' '''lblNoContentSharing control. ''' @@ -904,7 +904,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lblNoContentSharing As Global.System.Web.UI.WebControls.Label - + ''' '''dshFileSettings control. ''' @@ -913,7 +913,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshFileSettings As Global.System.Web.UI.UserControl - + ''' '''tblFile control. ''' @@ -922,7 +922,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblFile As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plDefaultFileFolder control. ''' @@ -931,7 +931,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plDefaultFileFolder As Global.System.Web.UI.UserControl - + ''' '''drpDefaultFileFolder control. ''' @@ -940,7 +940,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents drpDefaultFileFolder As Global.System.Web.UI.WebControls.DropDownList - + ''' '''dshFilter control. ''' @@ -949,7 +949,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshFilter As Global.System.Web.UI.UserControl - + ''' '''tblFilter control. ''' @@ -958,7 +958,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblFilter As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plMaxArticles control. ''' @@ -967,7 +967,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plMaxArticles As Global.System.Web.UI.UserControl - + ''' '''txtMaxArticles control. ''' @@ -976,7 +976,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtMaxArticles As Global.System.Web.UI.WebControls.TextBox - + ''' '''valMaxArticlesIsValid control. ''' @@ -985,7 +985,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valMaxArticlesIsValid As Global.System.Web.UI.WebControls.CompareValidator - + ''' '''plMaxAge control. ''' @@ -994,7 +994,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plMaxAge As Global.System.Web.UI.UserControl - + ''' '''txtMaxAge control. ''' @@ -1003,7 +1003,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtMaxAge As Global.System.Web.UI.WebControls.TextBox - + ''' '''lblMaxAge control. ''' @@ -1012,7 +1012,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lblMaxAge As Global.System.Web.UI.WebControls.Label - + ''' '''valMaxAgeType control. ''' @@ -1021,7 +1021,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valMaxAgeType As Global.System.Web.UI.WebControls.CompareValidator - + ''' '''plCategories control. ''' @@ -1030,7 +1030,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plCategories As Global.System.Web.UI.UserControl - + ''' '''rdoAllCategories control. ''' @@ -1039,7 +1039,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents rdoAllCategories As Global.System.Web.UI.WebControls.RadioButton - + ''' '''rdoSingleCategory control. ''' @@ -1048,7 +1048,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents rdoSingleCategory As Global.System.Web.UI.WebControls.RadioButton - + ''' '''drpCategories control. ''' @@ -1057,7 +1057,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents drpCategories As Global.System.Web.UI.WebControls.DropDownList - + ''' '''rdoMatchAny control. ''' @@ -1066,7 +1066,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents rdoMatchAny As Global.System.Web.UI.WebControls.RadioButton - + ''' '''rdoMatchAll control. ''' @@ -1075,7 +1075,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents rdoMatchAll As Global.System.Web.UI.WebControls.RadioButton - + ''' '''lstCategories control. ''' @@ -1084,7 +1084,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lstCategories As Global.System.Web.UI.WebControls.ListBox - + ''' '''lblHoldCtrl control. ''' @@ -1093,7 +1093,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lblHoldCtrl As Global.System.Web.UI.WebControls.Label - + ''' '''plShowPending control. ''' @@ -1102,7 +1102,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plShowPending As Global.System.Web.UI.UserControl - + ''' '''chkShowPending control. ''' @@ -1111,7 +1111,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkShowPending As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plShowFeaturedOnly control. ''' @@ -1120,7 +1120,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plShowFeaturedOnly As Global.System.Web.UI.UserControl - + ''' '''chkShowFeaturedOnly control. ''' @@ -1129,7 +1129,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkShowFeaturedOnly As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plShowNotFeaturedOnly control. ''' @@ -1138,7 +1138,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plShowNotFeaturedOnly As Global.System.Web.UI.UserControl - + ''' '''chkShowNotFeaturedOnly control. ''' @@ -1147,7 +1147,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkShowNotFeaturedOnly As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plShowSecuredOnly control. ''' @@ -1156,7 +1156,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plShowSecuredOnly As Global.System.Web.UI.UserControl - + ''' '''chkShowSecuredOnly control. ''' @@ -1165,7 +1165,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkShowSecuredOnly As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plShowNotSecuredOnly control. ''' @@ -1174,7 +1174,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plShowNotSecuredOnly As Global.System.Web.UI.UserControl - + ''' '''chkShowNotSecuredOnly control. ''' @@ -1183,7 +1183,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkShowNotSecuredOnly As Global.System.Web.UI.WebControls.CheckBox - + ''' '''dshAuthorFilterSettings control. ''' @@ -1192,7 +1192,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshAuthorFilterSettings As Global.System.Web.UI.UserControl - + ''' '''tblAuthorFilterSettings control. ''' @@ -1201,7 +1201,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblAuthorFilterSettings As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plAuthor control. ''' @@ -1210,7 +1210,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plAuthor As Global.System.Web.UI.UserControl - + ''' '''lblAuthorFilter control. ''' @@ -1219,7 +1219,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lblAuthorFilter As Global.System.Web.UI.WebControls.Label - + ''' '''cmdSelectAuthor control. ''' @@ -1228,7 +1228,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents cmdSelectAuthor As Global.System.Web.UI.WebControls.LinkButton - + ''' '''ddlAuthor control. ''' @@ -1237,7 +1237,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents ddlAuthor As Global.System.Web.UI.WebControls.DropDownList - + ''' '''plQueryStringFilter control. ''' @@ -1246,7 +1246,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plQueryStringFilter As Global.System.Web.UI.UserControl - + ''' '''chkQueryStringFilter control. ''' @@ -1255,7 +1255,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkQueryStringFilter As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plQueryStringParam control. ''' @@ -1264,7 +1264,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plQueryStringParam As Global.System.Web.UI.UserControl - + ''' '''txtQueryStringParam control. ''' @@ -1273,7 +1273,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtQueryStringParam As Global.System.Web.UI.WebControls.TextBox - + ''' '''plUsernameFilter control. ''' @@ -1282,7 +1282,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plUsernameFilter As Global.System.Web.UI.UserControl - + ''' '''chkUsernameFilter control. ''' @@ -1291,7 +1291,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkUsernameFilter As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plUsernameParam control. ''' @@ -1300,7 +1300,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plUsernameParam As Global.System.Web.UI.UserControl - + ''' '''txtUsernameParam control. ''' @@ -1309,7 +1309,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtUsernameParam As Global.System.Web.UI.WebControls.TextBox - + ''' '''plLoggedInUser control. ''' @@ -1318,7 +1318,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plLoggedInUser As Global.System.Web.UI.UserControl - + ''' '''chkLoggedInUser control. ''' @@ -1327,7 +1327,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkLoggedInUser As Global.System.Web.UI.WebControls.CheckBox - + ''' '''dshForm control. ''' @@ -1336,7 +1336,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshForm As Global.System.Web.UI.UserControl - + ''' '''tblForm control. ''' @@ -1345,7 +1345,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblForm As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plAuthorSelection control. ''' @@ -1354,7 +1354,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plAuthorSelection As Global.System.Web.UI.UserControl - + ''' '''lstAuthorSelection control. ''' @@ -1363,7 +1363,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lstAuthorSelection As Global.System.Web.UI.WebControls.RadioButtonList - + ''' '''plAuthorDefault control. ''' @@ -1372,7 +1372,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plAuthorDefault As Global.System.Web.UI.UserControl - + ''' '''lblAuthorDefault control. ''' @@ -1381,7 +1381,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lblAuthorDefault As Global.System.Web.UI.WebControls.Label - + ''' '''cmdSelectAuthorDefault control. ''' @@ -1390,7 +1390,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents cmdSelectAuthorDefault As Global.System.Web.UI.WebControls.LinkButton - + ''' '''drpAuthorDefault control. ''' @@ -1399,7 +1399,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents drpAuthorDefault As Global.System.Web.UI.WebControls.DropDownList - + ''' '''plExpandSummary control. ''' @@ -1408,7 +1408,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plExpandSummary As Global.System.Web.UI.UserControl - + ''' '''chkExpandSummary control. ''' @@ -1417,7 +1417,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkExpandSummary As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plTextEditorWidth control. ''' @@ -1426,7 +1426,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plTextEditorWidth As Global.System.Web.UI.UserControl - + ''' '''txtTextEditorWidth control. ''' @@ -1435,7 +1435,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtTextEditorWidth As Global.System.Web.UI.WebControls.TextBox - + ''' '''valEditorWidth control. ''' @@ -1444,7 +1444,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valEditorWidth As Global.System.Web.UI.WebControls.RequiredFieldValidator - + ''' '''valEditorWidthIsValid control. ''' @@ -1453,7 +1453,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valEditorWidthIsValid As Global.System.Web.UI.WebControls.CustomValidator - + ''' '''plTextEditorHeight control. ''' @@ -1462,7 +1462,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plTextEditorHeight As Global.System.Web.UI.UserControl - + ''' '''txtTextEditorHeight control. ''' @@ -1471,7 +1471,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtTextEditorHeight As Global.System.Web.UI.WebControls.TextBox - + ''' '''valEditorHeight control. ''' @@ -1480,7 +1480,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valEditorHeight As Global.System.Web.UI.WebControls.RequiredFieldValidator - + ''' '''valEditorHeightIsvalid control. ''' @@ -1489,7 +1489,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valEditorHeightIsvalid As Global.System.Web.UI.WebControls.CustomValidator - + ''' '''plTextEditorSummaryMode control. ''' @@ -1498,7 +1498,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plTextEditorSummaryMode As Global.System.Web.UI.UserControl - + ''' '''lstTextEditorSummaryMode control. ''' @@ -1507,7 +1507,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lstTextEditorSummaryMode As Global.System.Web.UI.WebControls.RadioButtonList - + ''' '''plTextEditorSummaryWidth control. ''' @@ -1516,7 +1516,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plTextEditorSummaryWidth As Global.System.Web.UI.UserControl - + ''' '''txtTextEditorSummaryWidth control. ''' @@ -1525,7 +1525,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtTextEditorSummaryWidth As Global.System.Web.UI.WebControls.TextBox - + ''' '''valTextEditorSummaryWidth control. ''' @@ -1534,7 +1534,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valTextEditorSummaryWidth As Global.System.Web.UI.WebControls.RequiredFieldValidator - + ''' '''valTextEditorSummaryWidthIsValid control. ''' @@ -1543,7 +1543,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valTextEditorSummaryWidthIsValid As Global.System.Web.UI.WebControls.CustomValidator - + ''' '''plTextEditorSummaryHeight control. ''' @@ -1552,7 +1552,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plTextEditorSummaryHeight As Global.System.Web.UI.UserControl - + ''' '''txtTextEditorSummaryHeight control. ''' @@ -1561,7 +1561,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtTextEditorSummaryHeight As Global.System.Web.UI.WebControls.TextBox - + ''' '''valTextEditorSummaryHeight control. ''' @@ -1570,7 +1570,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valTextEditorSummaryHeight As Global.System.Web.UI.WebControls.RequiredFieldValidator - + ''' '''valTextEditorSummaryHeightIsValid control. ''' @@ -1579,7 +1579,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valTextEditorSummaryHeightIsValid As Global.System.Web.UI.WebControls.CustomValidator - + ''' '''dshImage control. ''' @@ -1588,7 +1588,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshImage As Global.System.Web.UI.UserControl - + ''' '''tblImage control. ''' @@ -1597,7 +1597,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblImage As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plIncludeJQuery control. ''' @@ -1606,7 +1606,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plIncludeJQuery As Global.System.Web.UI.UserControl - + ''' '''chkIncludeJQuery control. ''' @@ -1615,7 +1615,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkIncludeJQuery As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plJQueryPath control. ''' @@ -1624,7 +1624,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plJQueryPath As Global.System.Web.UI.UserControl - + ''' '''txtJQueryPath control. ''' @@ -1633,7 +1633,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtJQueryPath As Global.System.Web.UI.WebControls.TextBox - + ''' '''plEnableImagesUpload control. ''' @@ -1642,7 +1642,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plEnableImagesUpload As Global.System.Web.UI.UserControl - + ''' '''chkEnableImagesUpload control. ''' @@ -1651,7 +1651,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkEnableImagesUpload As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plEnableImages control. ''' @@ -1660,7 +1660,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plEnableImages As Global.System.Web.UI.UserControl - + ''' '''chkEnablePortalImages control. ''' @@ -1669,7 +1669,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkEnablePortalImages As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plEnableImagesExternal control. ''' @@ -1678,7 +1678,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plEnableImagesExternal As Global.System.Web.UI.UserControl - + ''' '''chkEnableExternalImages control. ''' @@ -1687,7 +1687,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkEnableExternalImages As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plDefaultImageFolder control. ''' @@ -1696,7 +1696,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plDefaultImageFolder As Global.System.Web.UI.UserControl - + ''' '''drpDefaultImageFolder control. ''' @@ -1705,7 +1705,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents drpDefaultImageFolder As Global.System.Web.UI.WebControls.DropDownList - + ''' '''plResizeImages control. ''' @@ -1714,7 +1714,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plResizeImages As Global.System.Web.UI.UserControl - + ''' '''chkResizeImages control. ''' @@ -1723,7 +1723,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkResizeImages As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plImageMaxWidth control. ''' @@ -1732,7 +1732,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plImageMaxWidth As Global.System.Web.UI.UserControl - + ''' '''txtImageMaxWidth control. ''' @@ -1741,7 +1741,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtImageMaxWidth As Global.System.Web.UI.WebControls.TextBox - + ''' '''valImageMaxWidth control. ''' @@ -1750,7 +1750,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valImageMaxWidth As Global.System.Web.UI.WebControls.RequiredFieldValidator - + ''' '''valImageMaxWidthIsNumber control. ''' @@ -1759,7 +1759,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valImageMaxWidthIsNumber As Global.System.Web.UI.WebControls.CompareValidator - + ''' '''plImageMaxHeight control. ''' @@ -1768,7 +1768,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plImageMaxHeight As Global.System.Web.UI.UserControl - + ''' '''txtImageMaxHeight control. ''' @@ -1777,7 +1777,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtImageMaxHeight As Global.System.Web.UI.WebControls.TextBox - + ''' '''valImageMaxHeight control. ''' @@ -1786,7 +1786,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valImageMaxHeight As Global.System.Web.UI.WebControls.RequiredFieldValidator - + ''' '''valImageMaxHeightIsNumber control. ''' @@ -1795,7 +1795,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valImageMaxHeightIsNumber As Global.System.Web.UI.WebControls.CompareValidator - + ''' '''plThumbnailType control. ''' @@ -1804,7 +1804,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plThumbnailType As Global.System.Web.UI.UserControl - + ''' '''rdoThumbnailType control. ''' @@ -1813,7 +1813,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents rdoThumbnailType As Global.System.Web.UI.WebControls.RadioButtonList - + ''' '''plUseWatermark control. ''' @@ -1822,7 +1822,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plUseWatermark As Global.System.Web.UI.UserControl - + ''' '''chkUseWatermark control. ''' @@ -1831,7 +1831,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkUseWatermark As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plWatermarkText control. ''' @@ -1840,7 +1840,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plWatermarkText As Global.System.Web.UI.UserControl - + ''' '''txtWatermarkText control. ''' @@ -1849,7 +1849,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtWatermarkText As Global.System.Web.UI.WebControls.TextBox - + ''' '''plWatermarkImage control. ''' @@ -1858,16 +1858,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plWatermarkImage As Global.System.Web.UI.UserControl - - ''' - '''ctlWatermarkImage control. - ''' - ''' - '''Auto-generated field. - '''To modify move field declaration from designer file to code-behind file. - ''' - Protected WithEvents ctlWatermarkImage As DotNetNuke.UI.UserControls.UrlControl - + ''' '''plWatermarkPosition control. ''' @@ -1876,7 +1867,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plWatermarkPosition As Global.System.Web.UI.UserControl - + ''' '''drpWatermarkPosition control. ''' @@ -1885,7 +1876,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents drpWatermarkPosition As Global.System.Web.UI.WebControls.DropDownList - + ''' '''dshNotification control. ''' @@ -1894,7 +1885,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshNotification As Global.System.Web.UI.UserControl - + ''' '''tblNotification control. ''' @@ -1903,7 +1894,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblNotification As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plNotifySubmission control. ''' @@ -1912,7 +1903,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plNotifySubmission As Global.System.Web.UI.UserControl - + ''' '''chkNotifySubmission control. ''' @@ -1921,7 +1912,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkNotifySubmission As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plNotifySubmissionEmail control. ''' @@ -1930,7 +1921,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plNotifySubmissionEmail As Global.System.Web.UI.UserControl - + ''' '''txtSubmissionEmail control. ''' @@ -1939,7 +1930,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtSubmissionEmail As Global.System.Web.UI.WebControls.TextBox - + ''' '''plNotifyApproval control. ''' @@ -1948,7 +1939,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plNotifyApproval As Global.System.Web.UI.UserControl - + ''' '''chkNotifyApproval control. ''' @@ -1957,7 +1948,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkNotifyApproval As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plNotifyComment control. ''' @@ -1966,7 +1957,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plNotifyComment As Global.System.Web.UI.UserControl - + ''' '''chkNotifyComment control. ''' @@ -1975,7 +1966,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkNotifyComment As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plNotifyCommentEmail control. ''' @@ -1984,7 +1975,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plNotifyCommentEmail As Global.System.Web.UI.UserControl - + ''' '''txtNotifyCommentEmail control. ''' @@ -1993,7 +1984,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtNotifyCommentEmail As Global.System.Web.UI.WebControls.TextBox - + ''' '''plNotifyCommentApproval control. ''' @@ -2002,7 +1993,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plNotifyCommentApproval As Global.System.Web.UI.UserControl - + ''' '''chkNotifyCommentApproval control. ''' @@ -2011,7 +2002,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkNotifyCommentApproval As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plNotifyCommentApprovalEmail control. ''' @@ -2020,7 +2011,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plNotifyCommentApprovalEmail As Global.System.Web.UI.UserControl - + ''' '''txtNotifyCommentApprovalEmail control. ''' @@ -2029,7 +2020,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtNotifyCommentApprovalEmail As Global.System.Web.UI.WebControls.TextBox - + ''' '''dshRelated control. ''' @@ -2038,7 +2029,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshRelated As Global.System.Web.UI.UserControl - + ''' '''tblRelated control. ''' @@ -2047,7 +2038,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblRelated As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plRelatedMode control. ''' @@ -2056,7 +2047,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plRelatedMode As Global.System.Web.UI.UserControl - + ''' '''lstRelatedMode control. ''' @@ -2065,7 +2056,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lstRelatedMode As Global.System.Web.UI.WebControls.RadioButtonList - + ''' '''dshSecurity control. ''' @@ -2074,7 +2065,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshSecurity As Global.System.Web.UI.UserControl - + ''' '''tblSecurity control. ''' @@ -2083,7 +2074,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblSecurity As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plRoleGroup control. ''' @@ -2092,7 +2083,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plRoleGroup As Global.System.Web.UI.UserControl - + ''' '''drpSecurityRoleGroups control. ''' @@ -2101,7 +2092,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents drpSecurityRoleGroups As Global.System.Web.UI.WebControls.DropDownList - + ''' '''plBasicSettings control. ''' @@ -2110,7 +2101,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plBasicSettings As Global.System.Web.UI.UserControl - + ''' '''grdBasicPermissions control. ''' @@ -2119,7 +2110,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents grdBasicPermissions As Global.System.Web.UI.WebControls.DataGrid - + ''' '''plSecureUrl control. ''' @@ -2128,7 +2119,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plSecureUrl As Global.System.Web.UI.UserControl - + ''' '''txtSecureUrl control. ''' @@ -2137,7 +2128,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtSecureUrl As Global.System.Web.UI.WebControls.TextBox - + ''' '''plFormSettings control. ''' @@ -2146,7 +2137,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plFormSettings As Global.System.Web.UI.UserControl - + ''' '''grdFormPermissions control. ''' @@ -2155,7 +2146,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents grdFormPermissions As Global.System.Web.UI.WebControls.DataGrid - + ''' '''lblFormSettingsHelp control. ''' @@ -2164,7 +2155,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lblFormSettingsHelp As Global.System.Web.UI.WebControls.Label - + ''' '''trAdminSettings1 control. ''' @@ -2173,7 +2164,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents trAdminSettings1 As Global.System.Web.UI.HtmlControls.HtmlTableRow - + ''' '''plAdminSettings control. ''' @@ -2182,7 +2173,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plAdminSettings As Global.System.Web.UI.UserControl - + ''' '''trAdminSettings2 control. ''' @@ -2191,7 +2182,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents trAdminSettings2 As Global.System.Web.UI.HtmlControls.HtmlTableRow - + ''' '''grdAdminPermissions control. ''' @@ -2200,7 +2191,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents grdAdminPermissions As Global.System.Web.UI.WebControls.DataGrid - + ''' '''dshSEOSettings control. ''' @@ -2209,7 +2200,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshSEOSettings As Global.System.Web.UI.UserControl - + ''' '''tblSEO control. ''' @@ -2218,7 +2209,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblSEO As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plTitleReplacement control. ''' @@ -2227,7 +2218,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plTitleReplacement As Global.System.Web.UI.UserControl - + ''' '''lstTitleReplacement control. ''' @@ -2236,7 +2227,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lstTitleReplacement As Global.System.Web.UI.WebControls.RadioButtonList - + ''' '''plAlwaysShowPageID control. ''' @@ -2245,7 +2236,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plAlwaysShowPageID As Global.System.Web.UI.UserControl - + ''' '''chkAlwaysShowPageID control. ''' @@ -2254,7 +2245,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkAlwaysShowPageID As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plUrlMode control. ''' @@ -2263,7 +2254,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plUrlMode As Global.System.Web.UI.UserControl - + ''' '''lstUrlMode control. ''' @@ -2272,7 +2263,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lstUrlMode As Global.System.Web.UI.WebControls.RadioButtonList - + ''' '''plShorternID control. ''' @@ -2281,7 +2272,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plShorternID As Global.System.Web.UI.UserControl - + ''' '''txtShorternID control. ''' @@ -2290,7 +2281,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtShorternID As Global.System.Web.UI.WebControls.TextBox - + ''' '''valShorternID control. ''' @@ -2299,7 +2290,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valShorternID As Global.System.Web.UI.WebControls.RequiredFieldValidator - + ''' '''plUseCanonicalLink control. ''' @@ -2308,7 +2299,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plUseCanonicalLink As Global.System.Web.UI.UserControl - + ''' '''chkUseCanonicalLink control. ''' @@ -2317,7 +2308,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkUseCanonicalLink As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plExpandMetaInformation control. ''' @@ -2326,7 +2317,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plExpandMetaInformation As Global.System.Web.UI.UserControl - + ''' '''chkExpandMetaInformation control. ''' @@ -2335,7 +2326,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkExpandMetaInformation As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plUniquePageTitles control. ''' @@ -2344,7 +2335,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plUniquePageTitles As Global.System.Web.UI.UserControl - + ''' '''chkUniquePageTitles control. ''' @@ -2353,7 +2344,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkUniquePageTitles As Global.System.Web.UI.WebControls.CheckBox - + ''' '''dshSyndicationSettings control. ''' @@ -2362,7 +2353,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshSyndicationSettings As Global.System.Web.UI.UserControl - + ''' '''tblSyndication control. ''' @@ -2371,7 +2362,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblSyndication As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plEnableSyndication control. ''' @@ -2380,7 +2371,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plEnableSyndication As Global.System.Web.UI.UserControl - + ''' '''chkEnableSyndication control. ''' @@ -2389,7 +2380,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkEnableSyndication As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plEnableSyndicationEnclosures control. ''' @@ -2398,7 +2389,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plEnableSyndicationEnclosures As Global.System.Web.UI.UserControl - + ''' '''chkEnableSyndicationEnclosures control. ''' @@ -2407,7 +2398,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkEnableSyndicationEnclosures As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plSyndicationEnclosureType control. ''' @@ -2416,7 +2407,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plSyndicationEnclosureType As Global.System.Web.UI.UserControl - + ''' '''lstSyndicationEnclosureType control. ''' @@ -2425,7 +2416,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lstSyndicationEnclosureType As Global.System.Web.UI.WebControls.RadioButtonList - + ''' '''plEnableSyndicationHtml control. ''' @@ -2434,7 +2425,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plEnableSyndicationHtml As Global.System.Web.UI.UserControl - + ''' '''chkEnableSyndicationHtml control. ''' @@ -2443,7 +2434,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkEnableSyndicationHtml As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plSyndicationLinkMode control. ''' @@ -2452,7 +2443,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plSyndicationLinkMode As Global.System.Web.UI.UserControl - + ''' '''lstSyndicationLinkMode control. ''' @@ -2461,7 +2452,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lstSyndicationLinkMode As Global.System.Web.UI.WebControls.RadioButtonList - + ''' '''plSyndicationSummaryLength control. ''' @@ -2470,7 +2461,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plSyndicationSummaryLength As Global.System.Web.UI.UserControl - + ''' '''txtSyndicationSummaryLength control. ''' @@ -2479,7 +2470,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtSyndicationSummaryLength As Global.System.Web.UI.WebControls.TextBox - + ''' '''valSyndicationSummaryLength control. ''' @@ -2488,7 +2479,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valSyndicationSummaryLength As Global.System.Web.UI.WebControls.CompareValidator - + ''' '''lblSyndicationSummaryLengthHelp control. ''' @@ -2497,7 +2488,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents lblSyndicationSummaryLengthHelp As Global.System.Web.UI.WebControls.Label - + ''' '''plSyndicationMaxCount control. ''' @@ -2506,7 +2497,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plSyndicationMaxCount As Global.System.Web.UI.UserControl - + ''' '''txtSyndicationMaxCount control. ''' @@ -2515,7 +2506,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtSyndicationMaxCount As Global.System.Web.UI.WebControls.TextBox - + ''' '''valSyndicationMaxCount control. ''' @@ -2524,7 +2515,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valSyndicationMaxCount As Global.System.Web.UI.WebControls.RequiredFieldValidator - + ''' '''valSyndicationMaxCountIsValid control. ''' @@ -2533,7 +2524,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents valSyndicationMaxCountIsValid As Global.System.Web.UI.WebControls.CompareValidator - + ''' '''plSyndicationImagePath control. ''' @@ -2542,7 +2533,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plSyndicationImagePath As Global.System.Web.UI.UserControl - + ''' '''txtSyndicationImagePath control. ''' @@ -2551,7 +2542,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtSyndicationImagePath As Global.System.Web.UI.WebControls.TextBox - + ''' '''dshTwitterSettings control. ''' @@ -2560,7 +2551,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dshTwitterSettings As Global.System.Web.UI.UserControl - + ''' '''tblTwitter control. ''' @@ -2569,7 +2560,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tblTwitter As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plTwitterName control. ''' @@ -2578,7 +2569,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plTwitterName As Global.System.Web.UI.UserControl - + ''' '''txtTwitterName control. ''' @@ -2587,7 +2578,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtTwitterName As Global.System.Web.UI.WebControls.TextBox - + ''' '''plBitLyLogin control. ''' @@ -2596,7 +2587,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plBitLyLogin As Global.System.Web.UI.UserControl - + ''' '''txtBitLyLogin control. ''' @@ -2605,7 +2596,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtBitLyLogin As Global.System.Web.UI.WebControls.TextBox - + ''' '''plBitLyAPIKey control. ''' @@ -2614,7 +2605,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plBitLyAPIKey As Global.System.Web.UI.UserControl - + ''' '''txtBitLyAPIKey control. ''' @@ -2623,7 +2614,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtBitLyAPIKey As Global.System.Web.UI.WebControls.TextBox - + ''' '''dsh3rdPartySettings control. ''' @@ -2632,7 +2623,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents dsh3rdPartySettings As Global.System.Web.UI.UserControl - + ''' '''tbl3rdParty control. ''' @@ -2641,7 +2632,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents tbl3rdParty As Global.System.Web.UI.HtmlControls.HtmlTable - + ''' '''plJournalIntegration control. ''' @@ -2650,7 +2641,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plJournalIntegration As Global.System.Web.UI.UserControl - + ''' '''chkJournalIntegration control. ''' @@ -2659,7 +2650,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkJournalIntegration As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plJournalIntegrationGroups control. ''' @@ -2668,7 +2659,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plJournalIntegrationGroups As Global.System.Web.UI.UserControl - + ''' '''chkJournalIntegrationGroups control. ''' @@ -2677,7 +2668,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkJournalIntegrationGroups As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plActiveSocial control. ''' @@ -2686,7 +2677,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plActiveSocial As Global.System.Web.UI.UserControl - + ''' '''chkActiveSocial control. ''' @@ -2695,7 +2686,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkActiveSocial As Global.System.Web.UI.WebControls.CheckBox - + ''' '''plActiveSocialSubmissionKey control. ''' @@ -2704,7 +2695,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plActiveSocialSubmissionKey As Global.System.Web.UI.UserControl - + ''' '''txtActiveSocialSubmissionKey control. ''' @@ -2713,7 +2704,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtActiveSocialSubmissionKey As Global.System.Web.UI.WebControls.TextBox - + ''' '''plActiveSocialRateKey control. ''' @@ -2722,7 +2713,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plActiveSocialRateKey As Global.System.Web.UI.UserControl - + ''' '''txtActiveSocialRateKey control. ''' @@ -2731,7 +2722,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtActiveSocialRateKey As Global.System.Web.UI.WebControls.TextBox - + ''' '''plActiveSocialCommentKey control. ''' @@ -2740,7 +2731,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plActiveSocialCommentKey As Global.System.Web.UI.UserControl - + ''' '''txtActiveSocialCommentKey control. ''' @@ -2749,7 +2740,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents txtActiveSocialCommentKey As Global.System.Web.UI.WebControls.TextBox - + ''' '''plSmartThinkerStoryFeed control. ''' @@ -2758,7 +2749,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents plSmartThinkerStoryFeed As Global.System.Web.UI.UserControl - + ''' '''chkSmartThinkerStoryFeed control. ''' @@ -2767,7 +2758,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents chkSmartThinkerStoryFeed As Global.System.Web.UI.WebControls.CheckBox - + ''' '''cmdUpdate control. ''' @@ -2776,7 +2767,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents cmdUpdate As Global.System.Web.UI.WebControls.LinkButton - + ''' '''cmdCancel control. ''' @@ -2785,7 +2776,7 @@ Namespace Ventrian.NewsArticles '''To modify move field declaration from designer file to code-behind file. ''' Protected WithEvents cmdCancel As Global.System.Web.UI.WebControls.LinkButton - + ''' '''ucHeader2 control. ''' diff --git a/ucViewOptions.ascx.vb b/ucViewOptions.ascx.vb index da726b2..385bc54 100755 --- a/ucViewOptions.ascx.vb +++ b/ucViewOptions.ascx.vb @@ -5,6 +5,7 @@ ' Imports System.IO +Imports System.Linq Imports DotNetNuke.Common.Utilities Imports DotNetNuke.Entities.Modules @@ -15,6 +16,8 @@ Imports DotNetNuke.Services.Localization Imports Ventrian.NewsArticles.Components.Types Imports DotNetNuke.Services.FileSystem Imports DotNetNuke.Entities.Portals +Imports DotNetNuke.Entities.Tabs +Imports DotNetNuke.Entities.Users Imports Ventrian.NewsArticles.Base @@ -23,6 +26,16 @@ Namespace Ventrian.NewsArticles Partial Public Class ucViewOptions Inherits NewsArticleModuleBase + + ''' + '''ctlWatermarkImage control. + ''' + ''' + '''Auto-generated field. + '''To modify move field declaration from designer file to code-behind file. + ''' + Protected WithEvents ctlWatermarkImage As DotNetNuke.UI.UserControls.UrlControl + #Region " Private Methods " Public Class ListItemComparer @@ -60,13 +73,12 @@ Namespace Ventrian.NewsArticles Private Sub BindRoles() - Dim objRole As New RoleController - Dim availableRoles As ArrayList = New ArrayList - Dim roles As ArrayList + Dim roles As IList(Of RoleInfo) If (drpSecurityRoleGroups.SelectedValue = "-1") Then - roles = objRole.GetPortalRoles(PortalId) + roles = RoleController.Instance.GetRoles(PortalId) Else + Dim objRole As New RoleController roles = objRole.GetRolesByGroup(PortalId, Convert.ToInt32(drpSecurityRoleGroups.SelectedValue)) End If @@ -290,7 +302,11 @@ Namespace Ventrian.NewsArticles Private Sub BindTimeZone() - DotNetNuke.Services.Localization.Localization.LoadTimeZoneDropDownList(drpTimeZone, BasePage.PageCulture.Name, Convert.ToString(PortalSettings.TimeZoneOffset)) + drpTimeZone.Items.Clear() + For Each tz As TimeZoneInfo In TimeZoneInfo.GetSystemTimeZones() + drpTimeZone.Items.Add(New ListItem(tz.DisplayName, tz.BaseUtcOffset.TotalMinutes)) + Next + 'DotNetNuke.Services.Localization.Localization.LoadTimeZoneDropDownList(drpTimeZone, BasePage.PageCulture.Name, Convert.ToString(PortalSettings.TimeZoneOffset)) End Sub @@ -1367,7 +1383,7 @@ Namespace Ventrian.NewsArticles Public Function GetAuthorList(ByVal moduleID As Integer) As ArrayList - Dim moduleSettings As Hashtable = DotNetNuke.Entities.Portals.PortalSettings.GetModuleSettings(moduleID) + Dim moduleSettings As Hashtable = Common.GetModuleSettings(moduleID) Dim distributionList As String = "" Dim userList As New ArrayList @@ -1384,11 +1400,11 @@ Namespace Ventrian.NewsArticles Dim objRole As DotNetNuke.Security.Roles.RoleInfo = objRoleController.GetRoleByName(PortalSettings.PortalId, role) If Not (objRole Is Nothing) Then - Dim objUsers As ArrayList = objRoleController.GetUserRolesByRoleName(PortalSettings.PortalId, objRole.RoleName) - For Each objUser As DotNetNuke.Entities.Users.UserRoleInfo In objUsers + Dim objUsers As List(Of UserInfo) = RoleController.Instance.GetUsersByRole(PortalSettings.PortalId, objRole.RoleName) + For Each objUser As UserInfo In objUsers If (userIDs.Contains(objUser.UserID) = False) Then - Dim objUserController As DotNetNuke.Entities.Users.UserController = New DotNetNuke.Entities.Users.UserController - Dim objSelectedUser As DotNetNuke.Entities.Users.UserInfo = objUserController.GetUser(PortalSettings.PortalId, objUser.UserID) + Dim objUserController As UserController = New DotNetNuke.Entities.Users.UserController + Dim objSelectedUser As UserInfo = objUserController.GetUser(PortalSettings.PortalId, objUser.UserID) If Not (objSelectedUser Is Nothing) Then If (objSelectedUser.Email.Length > 0) Then userIDs.Add(objUser.UserID, objUser.UserID) @@ -1420,14 +1436,13 @@ Namespace Ventrian.NewsArticles If (objPortal.PortalID <> Me.PortalId) Then - Dim objDesktopModuleController As New DesktopModuleController - Dim objDesktopModuleInfo As DesktopModuleInfo = objDesktopModuleController.GetDesktopModuleByModuleName("DnnForge - NewsArticles") + Dim objDesktopModuleInfo As DesktopModuleInfo = DesktopModuleController.GetDesktopModuleByModuleName("DnnForge - NewsArticles", PortalSettings.PortalId) If Not (objDesktopModuleInfo Is Nothing) Then Dim objTabController As New DotNetNuke.Entities.Tabs.TabController() - Dim objTabs As ArrayList = objTabController.GetTabs(objPortal.PortalID) - For Each objTab As DotNetNuke.Entities.Tabs.TabInfo In objTabs + Dim objTabs As TabCollection = objTabController.GetTabsByPortal(objPortal.PortalID) + For Each objTab As DotNetNuke.Entities.Tabs.TabInfo In objTabs.Values If Not (objTab Is Nothing) Then If (objTab.IsDeleted = False) Then Dim objModules As New ModuleController @@ -1458,10 +1473,9 @@ Namespace Ventrian.NewsArticles If (add) Then Dim objListItem As New ListItem objListItem.Value = objPortal.PortalID.ToString() & "-" & objTab.TabID.ToString() & "-" & objModule.ModuleID.ToString() - Dim o As New PortalAliasController - Dim aliases As ArrayList = o.GetPortalAliasArrayByPortalID(objPortal.PortalID) + Dim aliases As IEnumerable(Of PortalAliasInfo) = PortalAliasController.Instance.GetPortalAliasesByPortalId(objPortal.PortalID) If (aliases.Count > 0) Then - objListItem.Text = DotNetNuke.Common.AddHTTP(CType(aliases(0), PortalAliasInfo).HTTPAlias) & " -> " & strPath & " -> " & objModule.ModuleTitle + objListItem.Text = DotNetNuke.Common.AddHTTP(aliases(0).HTTPAlias) & " -> " & strPath & " -> " & objModule.ModuleTitle Else objListItem.Text = objPortal.PortalName & " -> " & strPath & " -> " & objModule.ModuleTitle End If