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

📄 articledetails.ascx.vb

📁 Module articles for Dot Net Nuke 3.x.x , 4.x.x
💻 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 + -