Avatar billede musti776 Nybegynder
09. december 2005 - 09:55 Der er 7 kommentarer og
2 løsninger

Ny hjemmeside, hvad er den bedste opbygningsmetode

Hej Venner,

Jeg skal snart i gang med en hjemmeside med mange undersider & kategorier.. Indtil nu har jeg opbygget siderne med include file men problemet med det er at det hurtigt bliver uoverskueligt når der er mange undersider.. Det samme gælder selvfølgelig også for Admin-modul, hvor jeg indtil nu har oprettet fx en side til tilføj ny, en til rediger og en til slet.. Hvis man så har 20 sider som skal fungere i admin delen, ja, så bliver det hurtigt 60 sider vi har med at gøre og det synes jeg er for meget..

Jeg har før set eksempler på at man kunne bruge en kode der kan afvikle forskellige koder på samme side..
Altså;
Hvis man klikker på Tilføj så afvikle kode1
-------Kode 1 start / Tilføj--------
bla bla bla

------- Kode 1 slut / Tilføj--------

Klik på Rediger, then Kode 2

------- Kode 2 start / Rediger-------
bla bla
------- Kode 2 slut / Rediger-------
osv....

Jeg vil høre jeres mening om hvordan i opbygger jeres hjemmesider... Med include file, den anden kode som jeg har beskrevet, eller noget helt andet?
Og selvfølgelig hvorfor i bruger det og hvad fordelene er..

Mange tak på forhånd..
/Musti
Avatar billede fennec Nybegynder
09. december 2005 - 10:05 #1
Jeg vil helt klart anbefale en database løsning, hvor HTML'en står heri. Du kan faktisk nøjes med en tabel i databasen med 4 kolonner:

webPage
id, pID, title, body

Desuden har du kun EN asp side til visning. Dette er også kendt som et CMS.

Fordelen er at du har få filer at holde styr på. Der skal kun bruges en til visning af siden, samt et par stykker til admin. Desuden er det nemt at lave menuer, da databasen indeholder en oversigt af alle sider, og hvilken side der er parrent til en given side.
Avatar billede keysersoze Ekspert
09. december 2005 - 10:15 #2
Hvordan man vil gøre tror jeg meget er et spørgsmål om smag og behag.

den første del du snakker om, altså mange inkluderede sider, er den jeg normalt bedst kan lide for på den måde kan jeg meget let finde en bestemt fil frem såfremt der er en fejl eller man skal lave en udviddelse/ændring. Dette er selvfølgelig afhængig af at man kan navngive sine filer korrekt.

Den anden del du beskriver - altså saml al kode i en enkelt fil - var noget jeg praktiserede da jeg startede med at programmere fordi det var lækkert med så få filer som muligt. Problemet er bare at man til sidst får samlet så meget kode i nogle enkelte filer at det til sidst ikke er overskueligt og så skal man bruge oceaner af tid på at gennemlæse ens egen kode.

Så måske er 60 filer meget - men med en korrekt navngivning for ikke at forglemme en korrekt mappestruktur er det super let at finde rundt i og man risikerer ikke at sammenblande variabler eller kode fordi man forsøger at samle det hele på meget få sider.
Avatar billede musti776 Nybegynder
09. december 2005 - 12:40 #3
jeg vil sige tak til jer begge to..

keyserzone, jeg tror nok at jeg ender med at bruge include file igen også sørge for at gøre det lidt mere overskueligt ved at navngive filerne ordentlig og selvfølgelig med et bedre mappe struktur.. Kan du måske skrive et eksempel på den anden type, altså det med at samle koden i et.. Det kunne jeg måske bruge i admin delen hvor jeg kunne samle tilføj, rediger & slet funktionen i en side..

fennec, kunne jeg måske også overtale dig til at komme med nogle eksempler på koden.. altså hvordan man linker når siden skal hentes fra db.. er det Request.Querystring der skal bruges?
Avatar billede keysersoze Ekspert
09. december 2005 - 12:53 #4
det er sådan set ikke andet end querystrings;

If Request.Qeurystring("whattodo") = "UPDATE" Then
  'do da update stuff
Elseif Request.Qeurystring("whattodo") = "DELETE" Then
  'do da delete stuff
Elseif Request.Qeurystring("whattodo") = "CREATE" Then
  'do da create stuff
Else
  'html-forms
End If

Når jeg laver admin-sys har jeg som udgangspunkt 4 filer til alt ved ét område - fx "lav et produkt". En form-side til brug både ved create og update, en arbejdsside der håndterer data fra formsiden altså update og create, en listeside hvor jeg kan få min i dette tilfælde produkter vist og hvorfra jeg kan kalde edit, view og delete og den sidste side håndterer så slet. Denne struktur har 90% i admin - resten har 1-2 ekstra sider med ting lidt ud over det sædvanlige. Endelig samler jeg genbrugelige funktioner, som fx mail-udsendelse, i nogle helt andre include-filer som jeg så kan kalde og genbruge overalt.
Avatar billede fennec Nybegynder
09. december 2005 - 12:57 #5
...og index.asp siden vil se sådan ud:

index.asp?id=5

[index.asp]
<%
if isnumeric(rq("id")) then ID = cint(rq("ID")) else ID = 1 '<--Forsidens ID
%>
<html>
...
...
<table>
<tr>
  <td>
    Menu<br>
<%
set rs = conn.execute("select * from webPage where pID=0")
while not rs.eof
  response.write "<a href=""index.asp?id="& rs("id") &""">"& rs("title") &"</a><br>"
  rs.MoveNext
wend
%>
  </td>
  <td>
<%
set rs = conn.execute("select * from webPage where id="& ID)
if not rs.eof then
  response.write rs("body")
end if
%>
  </td>
</tr>
</table>
Avatar billede musti776 Nybegynder
11. december 2005 - 17:11 #6
jeg siger mange tak til jer begge to venner..
svare i lige så vi kan lukke og slukke? :o)
Avatar billede keysersoze Ekspert
11. december 2005 - 17:27 #7
svar :)
Avatar billede fennec Nybegynder
12. december 2005 - 09:25 #8
.o) <-- One Eyed Jack
Avatar billede musti776 Nybegynder
12. december 2005 - 10:06 #9
jeg takker & bukker.. :o)
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