| 
  | 
 
 
  | 
  | 
 
  | 
  | 
  | 
  | 
 
  | 
 
  | 
  | 
 
| 
 | 
 
| 
 Database-Driven Menu. N-Tier Open Source Code Database-Driven Javascript Menu.
 
  
 | 
 
 | 
 
 
 | 
 
 
 
    
        
            <%@Language="VBScript" %> 
            <% 
            Option Explicit 
            Const adOpenForwardOnly = 0 
            Const adLockReadOnly = 1 
            Const adCmdText = &H0001 
            Const adUseClient = 3 
            Dim Conn_1 
            Dim xCount1 
            Dim SQLCount 
            Dim TblName 
            Dim IdFieldName 
            Dim ParentIDName 
            Dim CatsName 
            Dim IsActiveField 
            Private Function GetParentCats(ByRef strObjID, ByRef HTMLCode, ByRef TrueFalse) 
                 Dim ScanSQL 
                 Dim RS_Scan 
                 Dim CatsHTML 
                 CatsHTML = "" 
                 ScanSQL = "SELECT * FROM [" & TblName & "] WHERE " & ParentIDName & " = " & strObjID 
                 If IsActiveField <> "" Then 
                      ScanSQL = ScanSQL & " AND " & IsActiveField & " <> 0" 
                 End If 
                 ScanSQL = ScanSQL & " ORDER BY " & CatsName & " ASC" 
                 Set RS_Scan = Server.CreateObject("ADODB.Recordset") 
                 With RS_Scan 
                      .CursorLocation = adUseClient 
                      .Open (ScanSQL), Conn_1, adOpenForwardOnly, adLockReadOnly, adCmdText 
                      Select Case TrueFalse 
                           Case True 
                           If Not .EOF Then 
                                CatsHTML = CatsHTML & HTMLCode 
                           End If 
                           Case False 
                           If .EOF Then 
                                CatsHTML = CatsHTML & HTMLCode 
                           End If 
                      End Select 
                      .Close 
                 End With 
                 Set RS_Scan = Nothing 
                 GetParentCats = CatsHTML 
            End Function 
            Private Function GetMainCats(ByRef strParent) 
                 Dim ScansSQL 
                 Dim RS_Scans 
                 Dim MainOutp 
                 Dim ListsID 
                 Dim Lists_Name 
                 Dim SpanHTML 
                 ScansSQL = "SELECT * FROM [" & TblName & "] WHERE " & ParentIDName & " = " & strParent 
                 If IsActiveField <> "" Then 
                      ScansSQL = ScansSQL & " AND " & IsActiveField & " <> 0" 
                 End If 
                 ScansSQL = ScansSQL & " ORDER BY " & CatsName & " ASC" 
                 MainOutp = "" 
                 Set RS_Scans = Server.CreateObject("ADODB.Recordset") 
                 With RS_Scans 
                      .CursorLocation = adUseClient 
                      .Open (ScansSQL), Conn_1, adOpenForwardOnly, adLockReadOnly, adCmdText 
                      MainOutp = MainOutp & vbCrLf & "<DIV ID=""menuBar"" CLASS=""menuBar"">" 
                      Do While Not .EOF 
                           ListsID = .Fields(IdFieldName).Value 
                           Lists_Name = .Fields(CatsName).Value 
                           xCount1 = xCount1 + 1 
                           MainOutp = MainOutp & vbCrLf & "<DIV ID=""Bar" & xCount1 & """ CLASS=""Bar"" menu=""menu" & xCount1 & "_1"" ONCLICK=""mainNav(" & ListsID & ");"">" & Lists_Name & "</DIV>" 
                           SpanHTML = SpanHTML & GetParentCats(ListsID, vbCrLf & "<DIV ID=""menu" & xCount1 & "_1""></DIV>", False) 
                           .MoveNext 
                      Loop 
                      .Close 
                 End With 
                 Set RS_Scans = Nothing 
                 xCount1 = xCount1 + 1 
                 MainOutp = MainOutp & vbCrLf & "<DIV ID=""Bar" & xCount1 & """ CLASS=""Bar"" menu=""menu" & xCount1 & "_1"" ONCLICK=""document.location=(''http://www.yurtseven.org'')"">yurtseven.org</DIV></DIV>" 
                 GetMainCats = MainOutp & SpanHTML 
                 SQLCount = xCount1 & "_1" 
            End Function 
            Private Function ScanFolders(ByRef ParentID, ByRef strLoops, ByRef objChain, ByRef strZindex) 
                 Dim ScansSQL 
                 Dim RS_Scan 
                 Dim DB_ListsID 
                 Dim DB_Lists_ParentID 
                 Dim DB_Lists_Name 
                 Dim xCount 
                 Dim MenuChain 
                 Dim IsNewDiv 
                 Dim OutHTML 
                 ScansSQL = "SELECT * FROM [" & TblName & "] WHERE " & ParentIDName & " = " & ParentID 
                 If IsActiveField <> "" Then 
                      ScansSQL = ScansSQL & " AND " & IsActiveField & " <> 0" 
                 End If 
                 ScansSQL = ScansSQL & " ORDER BY " & CatsName & " ASC" 
                 Set RS_Scan = Server.CreateObject("ADODB.Recordset") 
                 With RS_Scan 
                      .CursorLocation = adUseClient 
                      .Open (ScansSQL), Conn_1, adOpenForwardOnly, adLockReadOnly, adCmdText 
                      Do While Not .EOF 
                           DB_ListsID = .Fields(IdFieldName).Value 
                           DB_Lists_ParentID = .Fields(ParentIDName).Value 
                           DB_Lists_Name = .Fields(CatsName).Value 
                           If xCount = 0 Then 
                                OutHTML = OutHTML & vbCrLf & "</DIV>" 
                           End If 
                           xCount = xCount + 1 
                           If DB_Lists_ParentID = 0 Then 
                                strLoops = strLoops + 1 
                                MenuChain = strLoops 
                           Else 
                                MenuChain = objChain & "_" & xCount 
                                strZindex = strZindex + 1 
                                If xCount = 1 Then 
                                     IsNewDiv = True 
                                     OutHTML = OutHTML & vbCrLf & "<DIV ID=""menu" & MenuChain & """ CLASS=""Menu"" STYLE=""z-index : " & strZindex & """>" 
                                End If 
                                OutHTML = OutHTML & vbCrLf & "<DIV ID=""menuItem" & MenuChain & """ CLASS=""menuItem""" 
                                OutHTML = OutHTML & GetParentCats(DB_ListsID, " menu=""menu" & MenuChain & "_1""", True) 
                                OutHTML = OutHTML & " TITLE=""" & DB_Lists_Name & """ cmd=""" & DB_ListsID & """>" & DB_Lists_Name & "</DIV>" 
                           End If 
                           OutHTML = ScanFolders(DB_ListsID, strLoops, MenuChain, strZindex) & OutHTML 
                           .MoveNext 
                      Loop 
                      .Close 
                 End With 
                 Set RS_Scan = Nothing 
                 If DB_Lists_ParentID <> 0 And IsNewDiv = True Then 
                      IsNewDiv = False 
                 End If 
                 ScanFolders = OutHTML 
            End Function 
            Private Sub ExecSQLMenu() 
                 Dim MainCats 
                 Dim ScanFold 
                 TblName = Application("TblName") 
                 IdFieldName = Application("IdFieldName") 
                 ParentIDName = Application("ParentIDName") 
                 CatsName = Application("CatsName") 
                 IsActiveField = Application("IsActiveField") 
                 Set Conn_1 = Server.CreateObject("ADODB.Connection") 
                 Conn_1.Open Application("ConnString") 
                 MainCats = GetMainCats(0) 
                 ScanFold = ScanFolders(0, 0, 0, 0) 
                 Conn_1.Close 
                 Set Conn_1 = Nothing 
                 Response.Write (MainCats) & vbCrLf & "<DIV ID=""menu" & SQLCount & """></DIV>" 
                 Response.Write (ScanFold) 
            End Sub 
            Public Sub ExecSQL() 
                 On Error Resume Next 
                 Dim TblName 
                 Dim IdFieldName 
                 Dim ParentIDName 
                 Dim CatsName 
                 Dim IsActiveField 
                 Dim objSQL 
                 ''Global variables 
                 TblName = "DB_Lists" ''Table name 
                 IdFieldName = "DB_ListsID" ''Primary key field name 
                 ParentIDName = "DB_Lists_ParentID" ''Parent-ID field name 
                 CatsName = "DB_Lists_Name" ''Category name field 
                 IsActiveField = "" ''Boolean field: active/not active (this field is not reqiered, if this variable has no value, the query will return all results regardless if set to true or false. 
                 Application.Lock 
                 Application("TblName") = TblName 
                 Application("IdFieldName") = IdFieldName 
                 Application("ParentIDName") = ParentIDName 
                 Application("IsActiveField") = IsActiveField 
                 Application("CatsName") = CatsName 
                 Application("ConnString") = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath(".") & "DB_Data.mdb" ''Connection String to your database. (SQL Server Connections: simply fill in a valid SQL Server database connection string instead of Access.) 
                 Application.UnLock 
                 Call ExecSQLMenu 
                 If Err <> 0 Then 
                      Response.Write "<BR><BR><DIV ALIGN=""center""><H3>" & Err.Description & "</H3></DIV>" 
                 End If 
            End Sub 
            ''You may customize the design to your needs by modifying the files: SQLMenu.css, and SQLMenu.js. 
            %> 
            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
            <HTML> 
            <HEAD> 
            <TITLE>MENU</TITLE> 
            <META HTTP-EQUIV="Content-Type" CONTENT="text/html; Charset=windows-1254"> 
            <LINK REL="STYLESHEET" HREF="SQLMenu.css" TYPE="text/css"> 
            <SCRIPT LANGUAGE="JavaScript" SRC="SQLMenu.js" TYPE="text/javascript"></SCRIPT> 
            </HEAD> 
            <BODY ONLOAD="InitMenu();" ONCLICK="HideMenu(menuBar);" ID="Cenky" BGCOLOR="#DFD9D0"> 
            <TABLE ALIGN="center" WIDTH="100%" CELLSPACING="0" CELLPADDING="0" BORDER="0"> 
            <TR> 
            <TD><% 
            Call ExecSQL ''Executes the main Module and writes all contents to the browser. 
            %> 
            </TD></TR></TABLE> 
            </BODY> 
            </HTML> | 
         
    
 
 | 
 
 
 
 
 | 
  | 
 
  | 
  | 
  | 
 
  | 
 
  |