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 = ""
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