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

📄 settings.ascx.vb

📁 Module articles for Dot Net Nuke 3.x.x , 4.x.x
💻 VB
字号:
Imports EfficionConsulting.Categories
Imports System.Collections
Imports System.Web.UI.WebControls
Imports DotNetNuke.Services.Localization

Namespace EfficionConsulting.Articles
	Public MustInherit Class Settings
		Inherits Entities.Modules.ModuleSettingsBase

		Protected WithEvents drpSortField As System.Web.UI.WebControls.DropDownList
		Protected WithEvents drpDateRange As System.Web.UI.WebControls.DropDownList
		Protected WithEvents drpNumber As System.Web.UI.WebControls.DropDownList
		Protected WithEvents chkFilterByCategory As System.Web.UI.WebControls.CheckBox
		Protected WithEvents lblNoCategories As System.Web.UI.WebControls.Label
		Protected WithEvents ctlCategories As DotNetNuke.UI.UserControls.DualListControl
		Protected WithEvents rblCategoryMatch As System.Web.UI.WebControls.RadioButtonList
		Protected WithEvents txtImageWidth As System.Web.UI.WebControls.TextBox
		Protected WithEvents drpImageAlignment As System.Web.UI.WebControls.DropDownList
		Protected WithEvents chkShowSearch As System.Web.UI.WebControls.CheckBox
		Protected WithEvents chkShowCategory As System.Web.UI.WebControls.CheckBox
		Protected WithEvents chkShowReadMore As System.Web.UI.WebControls.CheckBox
		Protected WithEvents chkSiteWide As System.Web.UI.WebControls.CheckBox
		Protected WithEvents chkRequireApproval As System.Web.UI.WebControls.CheckBox
		Protected WithEvents chkFeatured As System.Web.UI.WebControls.CheckBox
		Protected WithEvents txtCustomSelect As System.Web.UI.WebControls.TextBox
		Protected WithEvents drpTemplate As System.Web.UI.WebControls.DropDownList
		Protected WithEvents chkAllowComments As System.Web.UI.WebControls.CheckBox
		Protected WithEvents chkAnonymousComments As System.Web.UI.WebControls.CheckBox
		Protected WithEvents chkHidePaging As System.Web.UI.WebControls.CheckBox
		Protected WithEvents chkMoreArticles As System.Web.UI.WebControls.CheckBox
		Protected WithEvents drpPage As System.Web.UI.WebControls.DropDownList

		Private itemId As Integer = -1

#Region "Base Method Implementations"

		Public Overrides Sub LoadSettings()
			If Not IsPostBack Then
				BindCategories()
				BindPages()
				
				chkFilterByCategory.Checked = TabModuleSettings("FilterByCategory") = "True"
				SetCategoryControlsVisibility(chkFilterByCategory.Checked)
				'rblCategoryMatch.SelectedValue = CType(TabModuleSettings("CategoryMatch"), String)

				'NOTE: <> "False" defaults to True whereas = "True" defaults to False
				drpNumber.SelectedValue = CType(TabModuleSettings("ArticlesPerPage"), String)
				drpSortField.SelectedValue = CType(TabModuleSettings("SortField"), String)
				drpDateRange.SelectedValue = CType(TabModuleSettings("DateRange"), String)
				txtImageWidth.Text = CType(TabModuleSettings("ImageWidth"), String)
				drpImageAlignment.SelectedValue = CType(TabModuleSettings("ImageAlignment"), String)
				chkShowSearch.Checked = TabModuleSettings("ShowSearch") <> "False"
				chkShowCategory.Checked = TabModuleSettings("ShowCategory") <> "False"
				chkShowReadMore.Checked = TabModuleSettings("ShowReadMore") <> "False"
				chkSiteWide.Checked = TabModuleSettings("SiteWide") = "True"
				chkRequireApproval.Checked = TabModuleSettings("RequireApproval") = "True"
				chkFeatured.Checked = TabModuleSettings("Featured") = "True"
				txtCustomSelect.Text = CType(TabModuleSettings("CustomSelect"), String)
				drpTemplate.SelectedValue = CType(TabModuleSettings("Template"), String)
				chkAllowComments.Checked = TabModuleSettings("AllowComments") 
				chkAnonymousComments.Checked = TabModuleSettings("AnonymousComments")
				chkHidePaging.Checked = TabModuleSettings("HidePaging") 
				chkMoreArticles.Checked = TabModuleSettings("MoreArticles") 


                If Not drpPage.Items.FindByValue(CType(TabModuleSettings("MoreArticlesPage"), String)) Is Nothing Then
                    drpPage.Items.FindByValue(CType(TabModuleSettings("MoreArticlesPage"), String)).Selected = True
                End If
			End If
	
		End Sub

		Public Overrides Sub UpdateSettings()
			Try
				Dim objAdmin As New Entities.Modules.ModuleController
	
				objAdmin.UpdateTabModuleSetting(TabModuleId, "ArticlesPerPage", drpNumber.SelectedValue)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "SortField", drpSortField.SelectedValue)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "DateRange", drpDateRange.SelectedValue)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "ImageWidth", txtImageWidth.Text)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "ImageAlignment", drpImageAlignment.SelectedValue)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "ShowSearch", chkShowSearch.Checked)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "ShowCategory", chkShowCategory.Checked)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "ShowReadMore", chkShowReadMore.Checked)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "SiteWide", chkSiteWide.Checked)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "RequireApproval", chkRequireApproval.Checked)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "Featured", chkFeatured.Checked)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "FilterByCategory", chkFilterByCategory.Checked)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "CustomSelect", txtCustomSelect.Text)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "Template", drpTemplate.SelectedValue)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "AllowComments", chkAllowComments.Checked)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "AnonymousComments", chkAnonymousComments.Checked)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "HidePaging", chkHidePaging.Checked)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "MoreArticles", chkMoreArticles.Checked)
				objAdmin.UpdateTabModuleSetting(TabModuleId, "MoreArticlesPage", drpPage.SelectedValue)
				
				If ViewState("CategoriesInstalled") and chkFilterByCategory.Checked then
					'Save Categories
					Dim objListItem As ListItem
					Dim sCategoryList as String = ""
					For Each objListItem In ctlCategories.Assigned
						sCategoryList += objListItem.Value & ","
					Next
					if sCategoryList.Length > 1 then
						objAdmin.UpdateTabModuleSetting(TabModuleId, "CategoryID", sCategoryList.Substring(0, sCategoryList.Length -1))
					End If
					'objAdmin.UpdateTabModuleSetting(TabModuleId, "CategoryMatch", rblCategoryMatch.SelectedValue)
				End If
			Catch exc As Exception    'Module failed to load
				ProcessModuleLoadException(Me, exc)
			End Try
		End Sub

	#End Region

	#Region " Methods "

		Private Sub BindCategories()
			Dim arCategories as ArrayList
			Dim arAvailableCategories as new ArrayList
			Dim arAssignedCategories as new ArrayList

			Dim objCategories
			
			Try
				objCategories = New CategoryController
				arCategories = objCategories.GetCategories(PortalId)
			Catch ex As Exception
				ViewState("CategoriesInstalled") = False
				Exit Sub
			End Try

			'Successfully retrieved Categories
			ViewState("CategoriesInstalled") = True

			If CType(TabModuleSettings("CategoryID"), String) = "" Then
				arAvailableCategories = arCategories
			Else
				Dim sCategoryList As String = CType(TabModuleSettings("CategoryID"), String)
				Dim arIDs as new ArrayList
				arIDs.AddRange(sCategoryList.Split(","c))
				
				Dim ci As CategoryInfo
				For Each ci In arCategories
					If arIDs.IndexOf(ci.CategoryId.ToString) <> -1 Then
						arAssignedCategories.Add(ci)
					Else
						arAvailableCategories.Add(ci)
					End If
				Next
			End If

			ctlCategories.Assigned = arAssignedCategories
			ctlCategories.Available = arAvailableCategories
		End Sub
		
		Private Sub BindPages()
			'Dim objTabs As New dotnetnuke.Entities.Tabs.TabController
			'drpPage.DataSource = objTabs.GetTabs(PortalId)
			drpPage.DataSource = GetPortalTabs(PortalSettings.DesktopTabs, False, False)
			drpPage.DataBind()
			drpPage.Items.Insert(0, new ListItem(" ", "-1"))
		End Sub
		
		
		Private Sub chkFilterByCategory_Changed(ByVal sender As Object, ByVal e As EventArgs) Handles chkFilterByCategory.CheckedChanged
			SetCategoryControlsVisibility(chkFilterByCategory.Checked)
		End Sub
		
		Private Sub SetCategoryControlsVisibility(ByVal visible as Boolean)
			If ViewState("CategoriesInstalled") = False Then 
				rblCategoryMatch.Visible = False
				ctlCategories.Visible = False
				lblNoCategories.Visible = True
			else
				lblNoCategories.Visible = False
				rblCategoryMatch.Visible = visible
				ctlCategories.Visible = visible
			End if

			rblCategoryMatch.Visible = False 'TODO: remove this when you figure out how to match ALL vs Any

		End Sub

	#End Region

	#Region " Web Form Designer Generated Code "

		'This call is required by the Web Form Designer.
		<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

		End Sub

		Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
			'CODEGEN: This method call is required by the Web Form Designer
			'Do not modify it using the code editor.
			InitializeComponent()
		End Sub

	#End Region

	End Class
End Namespace

⌨️ 快捷键说明

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