30. oktober 2006 - 18:33Der er
12 kommentarer og 1 løsning
lidt cms system
Hey jeg er ved at lave et cms system. hvor jeg gerne vil have at man i database kan skrive {Forside} og så hender den forside inde der hvor {forside} men jeg har ingen inde om hvordan jeg skal gøre det. har set lidt på Reg.Exp. men er ikke så god til den så håber der er en her inden der vil hjælpe mig med at lave sådan en function.
nu ved jeg ikke hvordan du gemmer dine cms sider, men hvis du nu har dine sider i en database hvor siderne har et unikt navn/nummer så kan du jo lave et opslag vha dine {side}.
Function getSide(sideNavn)
sql = "SELECT * FROM sider WHERE sideNavn = " & sideNavn & ";" 'åben db
if recordset.eof then getSide = "" else getSide = recordset("sideTekst") end if
Meget fedt eks. bare ikke helt det jeg søger. meninge er at når jeg har en side i fra db. skal den se om der er et {forside) og er den skal den hente den ind. så jeg ikke har et faste navn. men den bare søger i db om den findes.
jeg er ikke helt sikker på at jeg forstår men hvis du så har dine sidenavne i samme tabel, som teksten så kan du lave et array med disse værdier, der så slår dette op dynamisk alt efter hvor sider i tabellen.
<% Function getPages()
SQL = "SELECT sidenavn, sidetekst FROM sider;"
'hvor sidenavn er eks. forside, kalender, 0001 osv osv. 'hvor sideteksten er html-teksten for siden
if recordset.eof then getPages = "" else getPages = recordset.getRows() end if
'lav dynamisk udhentning af tekster alt efter hvad sider der er oprettet i tabel for i = lbound(arSider, 2) to ubound(arSider, 2) dinDBSide = Replace(dinDBSide, "{" & arSider(0) & "}", arSider(1)) next
'lav dynamisk udhentning af tekster alt efter hvad sider der er oprettet i tabel for i = lbound(arSider, 2) to ubound(arSider, 2) dinDBSide = Replace(dinDBSide, "{" & arSider(0) & "}", arSider(1)) next
set RS = Conn.execute("SELECT * FROM sider WHERE sideNavn = '" & sideNavn & "'") If Not (RS.BOF Or RS.EOF) Then getPages = RS("sideTekst") else getPages = "" end if
'luk recordset RS.close
End Function
'hent sider arSider = getPages("Forside")
'lav dynamisk udhentning af tekster alt efter hvad sider der er oprettet i tabel for i = lbound(arSider, 2) to ubound(arSider, 2) dinDBSide = Replace(dinDBSide, "{" & arSider(0) & "}", arSider(1)) next
hmmm det du har sat ind er jo en kombination af den første kode jeg gav dig og den sidste - det løser jo ingenting, andet end giver problemer. Den første kodning forudsætter, at du ikke har nogen dynamiske, og den anden dynamiske hvor du arbejder med det i et array. Det er altså to forskellige ting.
I din getPages funktion skal du udvælge 2 kolonner/attributter i din tabel. Den første attribut er den hvor dit sidenavn skal stå altså fornavn eller kalender etc. Teksten skal så være attribut to.
set RS = Conn.execute("SELECT sideNavn, sideTekst FROM sider) if rs.eof then getPages = "" else 'indlæs recordset i array 2dim. getPages = rs.getRows() end if
'luk recordset RS.close
End Function
'hent sider arSider = getPages()
'din side hvor henvisninger til forside etc er på. {Forside} 'Det forudsætter at du har en side i din DB der hedder Forside også mht versaler dinDBSide = "<html><body>{Forside}{Kalender}</body></html>"
'lav dynamisk udhentning af tekster alt efter hvad sider der er oprettet i tabel for i = lbound(arSider, 2) to ubound(arSider, 2) dinDBSide = Replace(dinDBSide, "{" & arSider(0) & "}", arSider(1)) next
Som jeg start med at sige skal den hente alt fra db. hvis en side der hentes fra db indholder {Kalender} skal den hente Kalender og er der så igen et {login} skal den hente login.
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.