Subversion Repositories DevTools

Rev

Rev 64 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%
'=============================================================
'//
'//                                                     Crumbs
'//
'// version:            0.2
'//     last modified:  02-Sep-2004 09:24 by Sasha Vukovic
'=============================================================
%>
<%
Class Crumbs
        
        Private enumLevelName
        Private enumURL
        
        Private mNumberOfLevels
        Private mobjLevelMap
        Private marrLevelDetails()
        Public mCrumbMaxDepth
        Public mLinkSpace
        
        
        Public Property Let Spacing( nNumOfSpaces ) 
                Dim i
                
                mLinkSpace = ""
                For i = 1 To nNumOfSpaces
                        mLinkSpace = mLinkSpace & "&nbsp;"
                Next
                
        End Property 
        
        Public Property Let CrumbMaxDepth( nCrumbMaxDepth ) 
                mCrumbMaxDepth = nCrumbMaxDepth
                
        End Property 
        
        '-----------------------------------------------------------------------------------------------------------------
        Public Sub AddLevel ( sLevelName, sURL, nLevelNumber )
                Dim newArrayDim
                
                If (sLevelName = "") OR IsNull(sLevelName) Then Exit Sub                ' Exit if level name is empty
                
                If NOT mobjLevelMap.Exists ( CStr(nLevelNumber) ) Then
                        newArrayDim = UBound ( marrLevelDetails, 2 ) + 1
                        ReDim Preserve marrLevelDetails( 2, newArrayDim )
                        
                        mobjLevelMap.Add CStr(nLevelNumber), CStr( newArrayDim - 1 )
                        
                End If
                
                marrLevelDetails( enumLevelName, CInt( mobjLevelMap.Item( CStr(nLevelNumber) ) ) ) = sLevelName
                marrLevelDetails( enumURL, mobjLevelMap.Item( CStr(nLevelNumber) ) ) = sURL
                
                Call SetNumberOfLevels ( nLevelNumber )
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Public Sub PrintCrumbs ()
                Dim LevelNum
                
                For LevelNum = 0 To mNumberOfLevels
                        Response.Write "<a href='"& marrLevelDetails( enumURL, LevelNum ) &"' class='menu_crumb'>"& marrLevelDetails( enumLevelName, LevelNum ) &"</a>"& mLinkSpace
                        
                        If (LevelNum <> mCrumbMaxDepth - 1) Then Response.Write "/"& mLinkSpace ' Render slash "/" only for folders, not last item
                        
                Next
                
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Private Sub SetNumberOfLevels ( nLevelNumber )
                If nLevelNumber > mNumberOfLevels Then
                        mNumberOfLevels = nLevelNumber
                End If
                
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Private Sub Class_Initialize()
                '// Perform action on creation of object. e.g. Set myObj = New ThisClassName
                Set mobjLevelMap = CreateObject("Scripting.Dictionary")
                ReDim marrLevelDetails ( 2, 0 )
                
                mCrumbMaxDepth = 0                      ' Max depth crumb is suppose to go
                mNumberOfLevels = 0                     ' Current number of levels (crumbs)
                mLinkSpace = "&nbsp;&nbsp;"     ' Number of spaces between crumb links
                enumLevelName = 0                       ' Array enum
                enumURL = 1                                     ' Array enum
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
        Private Sub Class_Terminate()
                '// Perform action on object disposal. e.g. Set myObj = Nothing
                Set mobjLevelMap = Nothing
        End Sub
        '-----------------------------------------------------------------------------------------------------------------
End Class
%>