Uden en database?? Ikke at det godt kan laves, men i længden ikke noget jeg vil anbefale.
1. Du har pt kun 8 sider (meget få sider). En søge funktion er næsten spild af tid. 2. Kommer du op i et antal sider, hvor en søgefunktion begynder at være relevant (+50 sider) er hardcoded sider ineffektiv at administrere. Der skal du over i et CMS system, ensbetydende med database. 3. En god menu struktur er stadig det bedste til mindre sites.
Så overvej lige en ekstra gang hvor mange sider du kommer op at have på dit site, inden vi begynder på en søge funktion, som alligevel skal ændres senere...
Det er skam også kun for at hjælpe dig selv i fremtiden :o)
Forstil dig 50 hardcoded sider (med menu struktur). Du laver nu en ny side. Nu skal du så til at rette menuen på alle relevante sider. I værste tilfælde er det alle 50 sider. Bestemmer du dig en dag for at ændre lidt i designet = alle sider skal ændres.
Med få sider er et cms langt overkill, men til flere er det et must, da det bygger menu struktur, indeholder design osv.
Jeg ved der findes flere gratis CMS løsninger til ASP ude på nettet, men jeg har aldrig brugt dem (har bygget mit eget). De burde have en søge funktion indbygget, så jeg vil anbefale dig at skaffe sådan et. Jeg kan desværre ikke fortælle dig noget om hvilke der er gode, da jeg som sagt aldrig har brugt dem, men der findes sikkert et par tråde her på E om det.
Nu skriver du, at du ikke er en haj, men et CMS er faktisk meget simpel at lave. Det kræver kun at du kan kode ASP med database (ikke noget advanceret) og kender til database opbygning. Også selvfølgelig lidt viden om HTML :)
De fleste ASP tutorials har også eksempler med databaser (gerne Access) hvilket er mere end nok til et simpelt CMS.
Kan du ASP med database hjælper jeg dig gerne igang med at lave dit eget system.
Bare lige for at illustrere hvor sompelt et CMS kan være, så består det i sin allersimpleste for kun af:
En database med en tabel som har 4 kolonner (Id, ParentID, Title, Body). En side i CMS'et til at vise menu strukturen, så man kan vælge de enkelte sider. En/to/tre side(r) til at indsætte/redigere/slette data i tabellen (nogen samler dette i en fil). En side til at vise data.
Så en database med en tabel og 5 simple ASP sider også er du kørende med dit eget CMS.
Vil du have en søgefunktion er det en ekstra side der skal tilføjes.
jeg har lavet siderne med css og ssi, så jeg skulle gerne have styr på menu strukturen (nu håber jeg du er enig :-) jeg er i hvert tilfald "helt" færdig med selve designet/opbygningen.
Det kunne godt være jeg skulle se om jeg kunne finde nogle asp tutorials med database, hvordan databasen bliver fyldt op med søgeord og hvordan det fungerer, forstår jeg ikke helt.
så hvis du kender nogle eksempler eller links vil jeg være taknemlig.
nu har jeg skimtet artiklen igennem og kan godt se der er mange muligheder, men der er en ting jeg ikke fatter, hvis nu jeg har 10 sider hvor ordet "spanien" indgår, hvordan bliver DB opdateret, så når man søger på spanien kommer der et resultat frem med de 10 sider.
men det vil sige jeg skal til at definere hvert søgeord, hvis jeg laver en ny side hvor feks. tyskland indgår for første gang på sitet, så skal jeg definere ordet i DB.
Næh nej. Du ligger alle dine sider ind i databasen, også klare den resten for dig.
Din database består af en tabel med 4 kolonner: [pages] Id, parentId, title, body
Data heri er så det der faktisk skal stå på din side. Noget i denne stil: 1, NULL, "Forside", "Dette er min forside<br>Her står noget tekst" 2, NULL, "Om Mig", "Jeg hedder ..." 3, 2, "Mere om mig", "Jeg intressere mig for ..."
Så laver du en side (som indeholder dit layout) og som udtrækker data fra databasen. Jeg har lavet et hurtigt eks her med menu struktur, som er det mest advanceret:
'opsæt database forbindelse Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database.mdb") Conn.Open DSN
'Find sideID'et ellers sæt til default forside if not isnumeric(request.querystring("ID")) then ID = 1 else ID = cLng(request.querystring("ID"))
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Min side</title> </head> <body> <table cellpadding="0" cellspacing="0" width="100%" border="1"> <tr> <td colspan="2">Et Top billed</td> </tr> <tr> <td width="200"><% call makeMenu("", "") %></td> <td><% set rs = conn.execute("select * from pages where ID="& ID) response.write rs("body") %></td> </tr> </table> <% conn.close
'Funktion til at lave en menu struktur function makeMenu(fID, fMoveIn) dim fRS if fID = "" then set fRS = conn.execute("selct * from pages where parentID is NULL") else set fRS = conn.execute("selct * from pages where parentID="& cLng(fID)) end if while not fRS.eof response.write fMoveIn & "<a href=""index.asp?ID="& fRS("ID") &""">"& fRS("title") &"</a><br>" call makeMenu(fRS("ID"), fMoveIn&"-") fRS.MoveNext wend end function
%>
</body> </html>
Prøv at lave en datadase med de værdier jeg angav tidligere og brug den så sammen med den kode jeg har angivet.
Det ser rigtig godt ud, og hvis så du lavede en ny side som feks. hed "endnu mere om mig" så vil indhold selv blive opdatere i DB ? for så er den jo genial
Men laver ikke en ny side (forstået som en ny HTML fil) i et CMS. Man indsætter bare en ny række i databasen.
Hvis du har koden kørende hos dig, så prøv at åbne databsen og indsætte en ny linje i "pages" tabellen. Luk så databasen igen og se hvad der er sket på siden. Det er altså fuldstændig slut med at kode HTML filer fra bunden. Nu koncentrere man sig kun om data inholdet (som dog også kræver lidt HTML kode)
ahh, nu begynder jeg at forstå hvordan det virker, vi er enige om at bodyfeltet kan blive frygteligt langt ikk!
Jeg har ikke helt fået det til at køre endnu den kommer med:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access-driver]Der opstod en generel fejl. Registreringsnøglen Temporary (volatile) Jet DSN for process 0xa88 Thread 0x1554 DBC 0x1292bdc Jet kan ikke åbnes. /index.asp, line 13
jeg prøver og kigge på det og vender tilbage (måske først efter weekenden)
Yep. Body feltet kan blive meget lang. Det er også derfor det er sat som notat felt i databasen (kan vist nok indeholde omkring 4 mill tegn), hvilket netop gør at man kan skrive alt det man vil.
Har du husket at lukke Access programmet ned igen hvis du har editeret i data?? Access er single user, hvilket betyder at kun en windows bruger kan have adgang af gangen, så har du den åben kan IIS'ens bruger ikke få adgang (selv om der er 1000 besøgende på din side, bruger IIS'en den samme bruger, så de kan godt alle hente data samtidig).
nej, jeg har været ude af byen i nogle dage, men jeg forsøgte i weekenden og kunne ikke få det til at virke, hverken på webhotellet eller privat, jeg har så i mellemtiden haft kigget på http://www.wrensoft.com/zoom/ og den fungerer faktisk rigtig godt til en billig pris og ikke noget med månedlige gebyrer, så lige nu hælder jeg til den, din løsning virker god/rigtig, men jeg synes jeg har godt styr på opbygningen af sitet med SSI på menu/billeder/etc. Og føler mig ikke frisk på din løsning lige nu.
Men hvis du vil sende et svar vil jeg meget gerne give dig point for din hjælp, jeg blev om ikke andet meget klogere og det er sikkert ikke sidste gang jeg skal have hjælp :-)
Helt i orden. Zoom ser intresant ud, og den kan sikkert også opfylde dine behov, så jeg kan godt forstå du går den vej. Jeg kan bare bedre lide at lave sådan noget selv, men der er vi jo (heldigvis) alle forskellige :o)
.o) <-- One Eyed Jack
Synes godt om
Ny brugerNybegynder
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.