📄 articledetails.ascx.vb
字号:
Imports System.Collections
Imports System.Reflection
Namespace EfficionConsulting.Articles
Public MustInherit Class ArticleDetails
Inherits DotNetNuke.Entities.Modules.PortalModuleBase
Protected WithEvents lblTitle As System.Web.UI.WebControls.Label
Protected WithEvents lblDescription As System.Web.UI.WebControls.Label
Protected WithEvents lblArticle As System.Web.UI.WebControls.Label
Protected WithEvents cmdReturn As System.Web.UI.WebControls.LinkButton
Protected WithEvents hypUser As System.Web.UI.WebControls.HyperLink
Protected WithEvents hypDatePosted As System.Web.UI.WebControls.HyperLink
Protected WithEvents lblDatePosted As System.Web.UI.WebControls.Label
Protected WithEvents lblViews As System.Web.UI.WebControls.Label
Protected WithEvents imgArticleImage As System.Web.UI.WebControls.Image
Protected WithEvents phComments As System.Web.UI.WebControls.PlaceHolder
Public ArticleID As Integer = -1
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not (Request.Params("ItemID") Is Nothing) Then
ArticleID = Integer.Parse(Request.Params("ItemID"))
ViewState("ArticleID") = ArticleID
Else
ArticleID = ViewState("ArticleID")
End If
'try
If Not Page.IsPostBack Then
Dim Articles As New ArticleController()
Dim objArticle As ArticleInfo = Articles.GetArticle(ArticleID)
Articles.UpdateArticleView(ArticleID)
'Populate page controls from objArticle
lblTitle.Text = objArticle.Title
lblDescription.Text = Server.HtmlDecode(objArticle.Description)
Select objArticle.Article.Substring(0, 7)
Case "nolink:"
lblArticle.Text = ""
Case "interna"
lblArticle.Text = "<a href='" & NavigateURL(objArticle.Article.Substring(9)) & "'>Read more...</a>"
Case "externa"
lblArticle.Text = "<a href='" & objArticle.Article.Substring(9) & "' target='new'>" & objArticle.Article.Substring(9) & "</a>"
Case Else
lblArticle.Text = Server.HtmlDecode(objArticle.Article)
End Select
hypUser.Text = objArticle.Username
'hypUser.NavigateUrl = objArticle.Email
ViewState("AuthorEmail") = GetUserEmail(objArticle.Username)
lblViews.Text = objArticle.NumberOfViews
lblDatePosted.Text = Date.Parse(objArticle.CreatedDate.ToShortDateString())
If not objArticle.Keywords = "" then
BasePage.KeyWords = objArticle.Keywords
End If
If Not objArticle.ImageFile = "" Then
Dim fc As New dotnetnuke.Services.FileSystem.FileController
Dim fi As DotNetNuke.Services.FileSystem.FileInfo
If objArticle.ImageFile.StartsWith("FileID=") Then
fi = fc.GetFileById(objArticle.ImageFile.Substring(7), PortalID)
Else
fi = fc.GetFile(objArticle.ImageFile, PortalID, "")
End If
imgArticleImage.ImageUrl = "~/DesktopModules/Articles/MakeThumbnail.aspx?Image=" & PortalSettings.HomeDirectory & fi.Folder & fi.FileName & "&w=400"
Else
imgArticleImage.Visible = False
End If
Page.DataBind()
End If
If Settings("AllowComments") = "True"
LoadComments()
End If
'Catch exc As Exception
' ProcessModuleLoadException("Error: Unable to load the Article Details page.", me, exc, true)
'end try
End Sub
Private Sub LoadComments()
' load comments user control
Dim objComments As Comments
objComments = LoadControl("~/DesktopModules/Articles/Comments.ascx")
If objComments Is Nothing Then Throw New Exception("Unable to load control.")
objComments.AllowAnonymous = (Settings("AnonymousComments") = "True")
objComments.ModuleConfiguration = Me.ModuleConfiguration
objComments.ArticleAuthorEmail = ViewState("AuthorEmail")
phComments.Controls.Add(objComments)
End Sub
Private Function GetUserEmail(ByVal username As String) As String
Dim objUserController As New UserController
Dim objUser As UserInfo = objUserController.GetUserByUserName(PortalID, username)
return objUser.Membership.Email
End Function
Private Sub cmdReturn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdReturn.Click
Response.Redirect(NavigateURL())
End Sub
Protected Function GetUserID() As Integer
If PortalSecurity.IsInRoles(PortalSettings.AdministratorRoleName)
Return -2
Else
Return UserInfo.UserID
End If
End Function
Public ReadOnly Property BasePage() As DotNetNuke.Framework.CDefault
Get
Return CType(Me.Page, DotNetNuke.Framework.CDefault)
End Get
End Property
#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 + -