Imports System.IO Imports Rocktime Imports Rocktime.Core Imports Rocktime.DBAccess Partial Class RocktimeLauncherClass Inherits System.Web.UI.Page #Region "Var" Private Version As String = "1.01.000" Private HasIndexPage As Boolean = False Private HasDefaultPage As Boolean = False Private HasIndexAspPage As Boolean = False Private HasDefaultAspPage As Boolean = False Private HasControl As Boolean = False Private HasControlAsp As Boolean = False Private HasPageManager As Boolean = False Private HasShopControl As Boolean = False Private SiteRoot As String = "" Private SitePreview As String = "" Private PageMode As LinkTypes Private PageUrl As String = "" Private ItemList As New ArrayList #End Region #Region "Main" Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init Me.Page.Title = "Rocktime Site Previewer V" & Version PageMode = RequestBoth("pagemode", 0) PageUrl = RequestBoth("urlpath", "") SiteRoot = GetServerPath("/") SitePreview = GetServerPath("/Preview/") HasIndexPage = File.Exists(SiteRoot & "\Index.aspx") HasIndexAspPage = File.Exists(SiteRoot & "\Index.asp") HasDefaultPage = File.Exists(SiteRoot & "\Default.aspx") HasDefaultAspPage = File.Exists(SiteRoot & "\Default.asp") HasControl = File.Exists(SiteRoot & "\Control\Default.aspx") Or File.Exists(SiteRoot & "\Control\Index.aspx") HasControlAsp = File.Exists(SiteRoot & "\Control\Default.asp") Or File.Exists(SiteRoot & "\Control\Index.asp") HasPageManager = File.Exists(SiteRoot & "\Control\PageManager\Default.aspx") Or File.Exists(SiteRoot & "\PageManager\Index.aspx") HasShopControl = File.Exists(SiteRoot & "\Control\Shop\Default.aspx") Or File.Exists(SiteRoot & "\Shop\Index.aspx") pnlFlash.Visible = (PageMode = LinkTypes.Flash) pnlFile.Visible = (PageMode = LinkTypes.File) pnlImage.Visible = (PageMode = LinkTypes.Image) pnlURL.Visible = (PageMode = LinkTypes.URL) pnlLinksList.Visible = Not (pnlFlash.Visible Or pnlImage.Visible Or pnlURL.Visible Or pnlFile.Visible) TestForStaffAccess() End Sub Private Sub TestForStaffAccess() 'Dg.V(Request.QueryString("NoJump")) 'Dg.V(Request.ServerVariables("REMOTE_ADDR")) If Request.QueryString("NoJump") = "true" Then Exit Sub End If If Not (Request.ServerVariables("REMOTE_ADDR").StartsWith("10.1.") Or Request.ServerVariables("REMOTE_ADDR").StartsWith("127.0.0.1")) Then Exit Sub End If 'Debug 'Exit Sub If HasIndexPage Then Response.Redirect("/index.aspx") End If If HasDefaultPage Then Response.Redirect("/default.aspx") End If If HasControl Then Response.Redirect("/Control/") End If If HasShopControl Then Response.Redirect("/Control/shop/") End If If HasPageManager Then Response.Redirect("/Control/pagemanager/") End If If HasIndexAspPage Then Response.Redirect("/index.asp") End If If HasDefaultAspPage Then Response.Redirect("/default.asp") End If If HasControlAsp Then Response.Redirect("/Control/") End If End Sub Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender Select Case PageMode Case LinkTypes.Main DrawList() Case LinkTypes.File DrawFile() Case LinkTypes.Flash DrawFlash() Case LinkTypes.Image DrawImage() Case LinkTypes.URL DrawUrl() End Select End Sub #End Region #Region "List" Protected Sub DrawList() ItemList.Clear() 'Website If HasIndexPage Then ItemList.Add(New ItemData("Website", "", "/index.aspx", LinkTypes.URL)) ElseIf HasDefaultPage Then ItemList.Add(New ItemData("Website", "", "/default.aspx", LinkTypes.URL)) ElseIf HasIndexAspPage Then ItemList.Add(New ItemData("Website", "", "/index.asp", LinkTypes.URL)) ElseIf HasDefaultAspPage Then ItemList.Add(New ItemData("Website", "", "/default.asp", LinkTypes.URL)) End If 'Control If HasControl Or HasControlAsp Then ItemList.Add(New ItemData("Control Panel", "", "/control/", LinkTypes.URL)) End If 'Files For Each FilePath As String In Directory.GetFiles(SitePreview) If Path.GetExtension(FilePath).ToLower <> "pwd" Then ItemList.Add(New ItemData(FilePath)) End If Next LinksList.DataSource = ItemList LinksList.DataBind() End Sub Protected Sub LinksList_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles LinksList.ItemDataBound Dim Data As ItemData Select Case e.Item.ItemType Case ListItemType.Header Case ListItemType.Footer Case ListItemType.Separator Case ListItemType.EditItem, ListItemType.Pager, ListItemType.SelectedItem Case Else Data = CType(e.Item.DataItem, ItemData) 'dim Link As String = rtBreadCrumbsClass.CurrentTrail.UrlProduct(Data).Url GetLiteral(e, "txtRef").Text = Data.Ref GetLiteral(e, "txtName").Text = Data.Name CType(e.Item.FindControl("txtImg"), Image).ImageUrl = Data.UrlPath CType(e.Item.FindControl("txtImg"), Image).Visible = Data.IsImage CType(e.Item.FindControl("txtImg"), Image).Width = 300 CType(e.Item.FindControl("txtImg"), Image).Attributes.Add("onClick", "window.open('" & Data.Link & "')") CType(e.Item.FindControl("txtImg"), Image).Attributes.Add("style", "cursor:pointer;") 'CType(e.Item.FindControl("btnLink"), HyperLink).Attributes.Add("onClick", "window.open('" & Data.Link & "')") CType(e.Item.FindControl("btnLink"), HyperLink).NavigateUrl = Data.Link CType(e.Item.FindControl("btnLink"), HyperLink).Target = Data.Name End Select End Sub #End Region #Region "Image" Private Sub DrawImage() txtImage.Text = "" img.ImageUrl = PageUrl img.NavigateUrl = "javascript:window.close()" End Sub #End Region #Region "File" Private Sub DrawFile() txtFile.Text = "" End Sub #End Region #Region "Flash" Private Sub DrawFlash() Dim X As String = "" Dim Y As String = "" txtFlash.Text = "" txtFlash.Text &= "" txtFlash.Text &= "" txtFlash.Text &= "" txtFlash.Text &= "" txtFlash.Text &= "" txtFlash.Text &= "" End Sub #End Region #Region "Url" Private Sub DrawUrl() txtUrl.Text = "" End Sub #End Region #Region "ItemData" Private Enum LinkTypes Main = 0 Image = 1 File = 2 URL = 3 Flash = 4 End Enum Private Class ItemData Public Ref As String = "" Public Name As String = "" Private _UrlPath As String = "" Private _PageMode As LinkTypes 'Public IsFlash As Boolean = False 'Public IsImage As Boolean = False 'Public IsURL As Boolean = False 'Public IsFile As Boolean = False Public Ext As String = "" Public Sub New(ByVal FilePath As String) Dim Parts() As String = Path.GetFileNameWithoutExtension(FilePath).Split("-") Select Case Parts.Length Case 1 Me.Ref = "" Me.Name = Path.GetFileNameWithoutExtension(FilePath) Case Else Me.Ref = Parts(0) Me.Name = Parts(1) End Select Me.UrlPath = "/preview/" & Path.GetFileName(FilePath) Me.Ext = Path.GetExtension(FilePath).ToLower Select Case Me.Ext Case ".swf" 'Me.IsFlash = True _PageMode = LinkTypes.Flash Case ".jpg", ".png", ".gif" 'Me.IsImage = True _PageMode = LinkTypes.Image Case ".url" 'Me.IsURL = True Me.UrlPath = GetUrl(FilePath) _PageMode = LinkTypes.URL Case Else 'Me.IsFile = True _PageMode = LinkTypes.File End Select End Sub Private Function GetUrl(ByVal FilePath As String) As String Dim Line As String Dim SR As New StreamReader(FilePath) Dim Result As String = "" Do Until SR.EndOfStream Line = SR.ReadLine If InStr(Line, "URL=") > 0 And InStr(Line, "BASE") < 1 Then Result = Replace(Line, "URL=", "") End If Loop SR.Close() SR = Nothing Return Result End Function Public Sub New(ByVal Name As String, ByVal Ref As String, ByVal LinkUrlPath As String, ByVal LinkType As LinkTypes) Me.Name = Name Me.Ref = Ref Me.UrlPath = LinkUrlPath _PageMode = LinkType End Sub Public ReadOnly Property IsFlash() As Boolean Get Return _PageMode = LinkTypes.Flash End Get End Property Public ReadOnly Property IsImage() As Boolean Get Return _PageMode = LinkTypes.Image End Get End Property Public ReadOnly Property IsURL() As Boolean Get Return _PageMode = LinkTypes.URL End Get End Property Public ReadOnly Property IsFile() As Boolean Get Return _PageMode = LinkTypes.File End Get End Property Public Property Link() As String Get If _PageMode = LinkTypes.File Then Return _UrlPath End If Return "/rocktime.aspx?pagemode=" & _PageMode & "&urlpath=" & Convert.URLEncode(_UrlPath) End Get Set(ByVal value As String) _UrlPath = value End Set End Property Public Property UrlPath() As String Get Return _UrlPath End Get Set(ByVal value As String) _UrlPath = value End Set End Property End Class #End Region End Class