| 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 & " "
|
|
|
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 = " " ' 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 |
%>
|