Subversion Repositories DevTools

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
64 jtweddle 1
<%
2
'=============================================================
3
'//
4
'//							Crumbs
5
'//
6
'// version: 		0.2
7
'//	last modified: 	02-Sep-2004 09:24 by Sasha Vukovic
8
'=============================================================
9
%>
10
<%
11
Class Crumbs
12
 
13
	Private enumLevelName
14
	Private enumURL
15
 
16
	Private mNumberOfLevels
17
	Private mobjLevelMap
18
	Private marrLevelDetails()
19
	Public mCrumbMaxDepth
20
	Public mLinkSpace
21
 
22
 
23
	Public Property Let Spacing( nNumOfSpaces ) 
24
		Dim i
25
 
26
		mLinkSpace = ""
27
		For i = 1 To nNumOfSpaces
28
			mLinkSpace = mLinkSpace & "&nbsp;"
29
		Next
30
 
31
	End Property 
32
 
33
	Public Property Let CrumbMaxDepth( nCrumbMaxDepth ) 
34
		mCrumbMaxDepth = nCrumbMaxDepth
35
 
36
	End Property 
37
 
38
	'-----------------------------------------------------------------------------------------------------------------
39
	Public Sub AddLevel ( sLevelName, sURL, nLevelNumber )
40
		Dim newArrayDim
41
 
42
		If (sLevelName = "") OR IsNull(sLevelName) Then Exit Sub		' Exit if level name is empty
43
 
44
		If NOT mobjLevelMap.Exists ( CStr(nLevelNumber) ) Then
45
			newArrayDim = UBound ( marrLevelDetails, 2 ) + 1
46
			ReDim Preserve marrLevelDetails( 2, newArrayDim )
47
 
48
			mobjLevelMap.Add CStr(nLevelNumber), CStr( newArrayDim - 1 )
49
 
50
		End If
51
 
52
		marrLevelDetails( enumLevelName, CInt( mobjLevelMap.Item( CStr(nLevelNumber) ) ) ) = sLevelName
53
		marrLevelDetails( enumURL, mobjLevelMap.Item( CStr(nLevelNumber) ) ) = sURL
54
 
55
		Call SetNumberOfLevels ( nLevelNumber )
56
	End Sub
57
	'-----------------------------------------------------------------------------------------------------------------
58
	Public Sub PrintCrumbs ()
59
		Dim LevelNum
60
 
61
		For LevelNum = 0 To mNumberOfLevels
62
			Response.Write "<a href='"& marrLevelDetails( enumURL, LevelNum ) &"' class='menu_crumb'>"& marrLevelDetails( enumLevelName, LevelNum ) &"</a>"& mLinkSpace
63
 
64
			If (LevelNum <> mCrumbMaxDepth - 1) Then Response.Write "/"& mLinkSpace	' Render slash "/" only for folders, not last item
65
 
66
		Next
67
 
68
	End Sub
69
	'-----------------------------------------------------------------------------------------------------------------
70
	Private Sub SetNumberOfLevels ( nLevelNumber )
71
		If nLevelNumber > mNumberOfLevels Then
72
			mNumberOfLevels = nLevelNumber
73
		End If
74
 
75
	End Sub
76
	'-----------------------------------------------------------------------------------------------------------------
77
	Private Sub Class_Initialize()
78
		'// Perform action on creation of object. e.g. Set myObj = New ThisClassName
79
		Set mobjLevelMap = CreateObject("Scripting.Dictionary")
80
		ReDim marrLevelDetails ( 2, 0 )
81
 
82
		mCrumbMaxDepth = 0			' Max depth crumb is suppose to go
83
		mNumberOfLevels = 0			' Current number of levels (crumbs)
84
		mLinkSpace = "&nbsp;&nbsp;"	' Number of spaces between crumb links
85
		enumLevelName = 0			' Array enum
86
	 	enumURL = 1					' Array enum
87
	End Sub
88
	'-----------------------------------------------------------------------------------------------------------------
89
	Private Sub Class_Terminate()
90
		'// Perform action on object disposal. e.g. Set myObj = Nothing
91
		Set mobjLevelMap = Nothing
92
	End Sub
93
	'-----------------------------------------------------------------------------------------------------------------
94
End Class
95
%>