Avatar billede n-data Nybegynder
30. oktober 2006 - 18:33 Der 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.
Avatar billede hiks Nybegynder
30. oktober 2006 - 21:49 #1
hej

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
 
  'luk recordset
  recordset.close

End Function

<%

  dinDBSide = "<html><body>{Forside}{Kalender}</body></html>"
 
  dinNyeSide = Replace(dinDBSide, "{Forside}", getSide("Forside"))
  dinNyeSide = Replace(dinDBSide, "{Kalender}", getSide("Kalender"))

  reponse.write dinNyeSide

%>

Denne fremgangsmåde virker kun hvis disse sider er tekstbaserede og ikke indeholder ASP-funktioner.

Ellers skal du tage at bruge Subs i din kode således du kan kalde de subs du får brug for når du har har fundet det i din gemte cms tekst.

bare lige et par forslag.

/hiks
Avatar billede n-data Nybegynder
30. oktober 2006 - 22:04 #2
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.
Avatar billede hiks Nybegynder
30. oktober 2006 - 22:19 #3
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
 
  'luk recordset
  recordset.close 

End Function

  'hent sider
  arSider = getPages

  if isArray(arSider) = False then Response.End
 
  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


%>
Avatar billede n-data Nybegynder
30. oktober 2006 - 23:39 #4
kan ikke helt få det til at virker..
Avatar billede n-data Nybegynder
30. oktober 2006 - 23:48 #5
Den siste kode vil på ingen måde virker..
Avatar billede hiks Nybegynder
31. oktober 2006 - 08:11 #6
det er jo egentligt også en omgang psedokode, der ikke er ment til at virke.

Men det burde da ved lidt snilde komme til at virke. Hvor fejler det?

/hiks
Avatar billede n-data Nybegynder
31. oktober 2006 - 10:03 #7
det her er fejl

'hent sider
  arSider = getPages

  if isArray(arSider) = False then Response.End
 
  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
Avatar billede hiks Nybegynder
31. oktober 2006 - 11:29 #8
hvordan ser din getpages funktion ud med hentning af tekster fra databasen?

/hiks
Avatar billede n-data Nybegynder
31. oktober 2006 - 13:00 #9
hele min kode

<%
set conn = server.createobject("ADODB.connection")
conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost; DATABASE=****; UID=***; PWD=****;"

Function getPages(sideNavn)

  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


  Response.write dinDBSide

conn.close
set conn = Nothing
%>
Avatar billede hiks Nybegynder
31. oktober 2006 - 17:17 #10
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 conn = server.createobject("ADODB.connection")
conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost; DATABASE=****; UID=***; PWD=****;"

Function getPages()

  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


  Response.write dinDBSide

conn.close
set conn = Nothing
%>
Avatar billede n-data Nybegynder
31. oktober 2006 - 19:27 #11
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.
Avatar billede hiks Nybegynder
31. oktober 2006 - 20:07 #12
det gør den sidste også hvis siderne bare er oprettet i databasen.

/hiks
Avatar billede n-data Nybegynder
27. april 2008 - 19:43 #13
Lukket
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