Avatar billede torbenmelander Nybegynder
19. marts 2001 - 18:56 Der er 7 kommentarer og
3 løsninger

Oversigtsmenu

Hvordan kan jeg lave en oversigtsmenu som den på html.dk

Jeg mener den sorte bjælke der automatisk bliver udfyldt med biblioteksnavnene ...

Alle forslag er velkomne, gerne med kode ...

MVH

Torben
Avatar billede netsrac Praktikant
19. marts 2001 - 19:04 #1
Set fso = CreateObject(\"Scripting.FileSystemObject\")
  Set f = fso.GetFolder(server.mappath(\".\"))
  Set sf = f.SubFolders
  For Each f1 in sf
  response.write(\"<A HREF=\"/& f1.name & \">\" & f1.name & \"</a>\"
  Next
Avatar billede netsrac Praktikant
19. marts 2001 - 19:06 #2
response.write(\"<A HREF=\"\"/& f1.name & \"\"\">\" & f1.name & \"</a>\"
Avatar billede netsrac Praktikant
19. marts 2001 - 19:06 #3
Set fso = CreateObject(\"Scripting.FileSystemObject\")
  Set f = fso.GetFolder(server.mappath(\".\"))
  Set sf = f.SubFolders
  For Each f1 in sf
    response.write(\"<A HREF=\"\"/& f1.name & \"\"\">\" & f1.name & \"</a>\" 
  Next
Avatar billede netsrac Praktikant
19. marts 2001 - 19:06 #4
Det skal bare ligge i din fil i roden så skulle det virker :-)
Avatar billede nute Nybegynder
19. marts 2001 - 19:07 #5
det ser faktisk ut som om html.dk har hardkodet sin struktur på sidene sine. deretter skriver de bare ut navnet på fx artikkelen som blir vist, som siste ledd i navigasjonsbaren...

med andre ord:

html.dk -> artikler

ligger hardkodet på siden, mens navnet på artikkelen blir skrevet ut fra databasen

/nute
Avatar billede torbenmelander Nybegynder
20. marts 2001 - 08:17 #6
Hej netsrac,

Jeg har prøvet at kigge lidt på din kode men det ser ud til at den bare retunere alle biblioteker i mappen!

Jeg vil gerne kunne inkludere siden på hver eneste side og så skal den automatisk splitte teksten ved hvert / og lave et link.

F.eks. ville www.html.dk/tutorials/asp jo kunne splittes ved hvert \"/\" og dermed danne grundlag for teksten html.dk -> tutorials -> asp.

Har du/eller andere  nogen forslag til hvordan dette kunne gøres?

MVH

Torben
Avatar billede torbenmelander Nybegynder
20. marts 2001 - 08:19 #7
Hej nute,

Jeg kunne selvfølgelig \'hardkode\' denne tekst, men jeg vil hellere lave det mere automatisk ...

Ellers tak for forslaget!

MVH

Torben
Avatar billede netsrac Praktikant
20. marts 2001 - 10:51 #8
Jeg ved ikke lige umiddelbart hvordan man kunne gøre det, tænker over det.
Avatar billede nute Nybegynder
20. marts 2001 - 11:18 #9
det du gjør, er å lage en databasestruktur over dine filer. Man kunne bruke netsrac sin metode, men den vil nok ikke fungere 100% fordi man av og til gjerne bruker en og samme fil til å fremvise helt forskjellig informasjon.

Du bygger en database som kan se sånn ut:

***********
nodes
***********
id
node
parent

hvor id = primærnøkkel, unik identifikator på en node(folder)
hvor node = navnet på folderen din som du vil fremvise
hvor parent = id på en folder som den aktuelle folderen er en sub-folder av (hvis den aktuelle folderen ligger i roten, så kan man legge inn fx -1)

deretter kan du lage en tabell som inneholder referanser til filer, og hvilke foldere de befinner seg i:

**********
files
**********
id
fileName
node

hvor id = primærnøkkel, unik identifikator på en fil
hvor fileName = navnet på filen (fx index.asp)
hvor node = id til hvilken node filen befinner seg i.

Det man gjør med dette er egentlig bare å duplikere filstrukturen...

/nute
Avatar billede torbenmelander Nybegynder
21. marts 2001 - 10:13 #10
Jeg løste problemmet med følgende kode:

<%

Dim URL, FolderArray(10), URLArray(10), i, p, x, skip

URL = Request.ServerVariables(\"PATH_INFO\")

i = 0
While URL <> \"\" and i < 10
  skip = TRUE
  p = InStr(1, URL, \"/\", 1)
  if p > 1 then
    FolderArray(i) = Left(URL, p-1)
    URLArray(i) = FolderArray(i)
    x = i
    while x > 0
      x = x - 1
      URLArray(i) = FolderArray(x) & \"/\" & URLArray(i)
    Wend
    skip = FALSE
  elseif p = 0 then
    FolderArray(i) = URL
    URLArray(i) = FolderArray(i)
    x = i
    while x > 0
      x = x - 1
      URLArray(i) = FolderArray(x) & \"/\" & URLArray(i)
    Wend
    p = Len(URL)
    skip = FALSE
  end if
  URL = Mid(URL,p+1)

  if not skip then
    if Len(URL) <> 0 then
      Response.Write(\"<A HREF=\"\"/\" & URLArray(i) & \"\"\"><B>\" & FolderArray(i) & \"</B></A>\")
      Response.Write(\" <IMG SRC=\"\"/Images/navigation-arrow.gif\"\" WIDTH=\"\"8\"\" HEIGHT=\"\"8\"\" BORDER=\"\"0\"\" ALT=\"\"\"\"></IMG> \")
    else
      Response.Write(\"<B>\" & FolderArray(i) & \"</B>\")
    end if
    i = i + 1
  end if
Wend

%>

Men tak for hjælpen alle sammen!

MVH

Torben
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester