📄 settings.ascx.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 + -