tables istället för frames

Tråden skapades och har fått 11 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2003-10-23 09:59

Hej!
Ska bygga om flera siter från frames till tables. Är lite osäker på vilken lösning som är "bäst".
Så som jag började nu så har jag ett dokument med vanliga funktioner och variabelvärden, common.php, som inkluderas till varje sida. I detta dokument har jag två särskilt viktiga funktioner:
1. sid_huvud()
2. sid_fot()

man kör på sin sida alltså först sid_huvud() och sen kör man ett table och skriver sidans innehåll, sedan avslutar man med sid_fot() .. är det här en bra lösning?
Just nu har jag redan stött på problem då filer som ligger i undermappar får fel adresser till bilderna hos de båda funktionerna.
help please

Senast redigerat 2003-10-23 13:08
  • Medlem
  • Stockholm
  • 2003-10-23 17:03

Det finns flera sätt att lösa det. Du kan förstås ha alla sidor i samma katalog, men det verkar inte vara vad du är ute efter. Ett annat sätt är att alltid ange absoluta sökvägar till bilder och länkar i dina sid_huvud och sid_fot:

<img src="/bilder/bild.gif" />
<a href="/sidan.php">länk</a>
<a href="/katalog/sidan.php">länk</a>

Vad du också kan göra är att i varje sida definiera en variabel som talar om var i hierarkin du befinner dig. Fast det känns ju krångligare.

Om man använder templates (mallar) så kan man se till att alla sidor utgår ifrån index.php och på så sätt alltid inkluderar bilder från samma ställe. Det har fördelar som tex. att man alltid vet vart man är (man är alltid i roten och inkluderar bilder osv. därefter) dessutom är det relativt enkelt att hantera säkerheten genom att se till att inga andra filer än index.php kan kommas åt utifrån.

Nackdelen är att det är lite jobbigt att programmera och så får man inte så "snygga" adresser utan man får en massa adresser av typen index.php?menu=info&submenu=about_company och dylikt.

Jag har delat upp mina senare sidor så att de ser ut ungefär såhär:

index.php
stylesheet.css
stylesheet_print.css
settings/ <- olike inställningsfiler
view/ <- grafiska komponenter som index inkluderar
model/ <- alla klassfiler som är projektspecifika
templates/ <- alla template-filer (för olika språk)
support/ <- klass-filer som används i många projekt tex. template-klassen och databasabstraktionsklasser

Absoluta ULR:ar?

J.

  • Medlem
  • Stockholm
  • 2003-10-24 09:47

Jag vill ha en så generell lösning som möjligt. Hitills är ändå gabriels lösning bäst då den inte kräver någon föränding i koden om sidan byter domän.

Jag arbetar tex ut mina sidor lokalt och sen laddar jag upp de till den riktiga domänen.... skulle vara jobbigt att behöva ändra alla adresser då...

HL's lösning med att sätta snesträck framför var ganska bra förutom att sidorna ligger på olika nivåer ner hos de två olika servrarna så det gick ändå inte

Jag får ett annat problem också när jag i undermappar inkluderar dokument.. tex inkluderar alla dokument en funktion som kontrollerar om man är inloggad. Är man inte inloggad slussas man vidare till startsidan, index.php.
Men index.php finns bara på root-nivå och inte i undermapparna.

I väntan på en riktigt smart lösning så låter jag alla dokument ligga på samma nivå

Gabriel, när du redigerar dina sidor så kan du inte se några bilder förrän du laddar upp dem mot testservern va?

  • Medlem
  • Stockholm
  • 2003-10-24 09:49

Hmm.. kom just på en intressant sak. I min nuvarande lösning så inkluderas ju det kritiska dokumentet hos VARJE annat dokument... i Gabriels lösning så inkluderas den en gång?
prestandavinst?

  • Medlem
  • Nacka
  • 2003-10-24 10:07

Varför använda tabeller överhuvudtaget? Det är old skool nu. Bygg i XHTML + CSS istället så slipper du en massa redundant kod. Det fungerar hur bra som helst, se t ex http://here.alfalaval.com

Mer att läsa finns på www.zeldman.com

  • Medlem
  • Stockholm
  • 2003-10-24 10:51

Ivar, vill du köra din lösning och samtidigt kunna flytta dina sidor mellan olika servrar/underkataloger så får du göra en site-specifik konfig-fil där du anger sökvägen till rot-katalogen. Sen inkluderar du den filen i varje sida du skapar. Men då måste du förstås hänvisa till den variabeln hela tiden:
<a href="<?php echo $my_root; ?>/katalog/fil.php">

Så Gabriels lösning är nog den smidigaste i längden om man står ut med krångliga adresser. (Man kan i och för sig skriva om adresserna med mod_rewrite, till exempel /index.php?page=page -> /page, men det blir ju en sak till att hålla reda på...)

  • Medlem
  • Stockholm
  • 2003-10-24 10:55

Ja, det lutar väl mot Gabriels lösning... Jag vill helst kunna se bilderna medan jag arbetar runt i dreamweaver också

  • Medlem
  • Stockholm
  • 2003-10-24 12:48
Citat:

Skrevs ursprungligen av ivar
Ja, det lutar väl mot Gabriels lösning... Jag vill helst kunna se bilderna medan jag arbetar runt i dreamweaver också

Fast... då måste ju dina html-mallar ligga i samma katalog som index.php. Inte så praktiskt kanske? Eller du kanske tänkte ha all html i index.php?

Äh, jag ska inte lägg mig i...

  • Medlem
  • Stockholm
  • 2003-10-24 12:56

Har aldrig arbetat med mallar förut...

Den lösning jag troligen ska använda är att jag har en index.php där jag skriver i stort sett hela basen för sidan... sedan någonstans i mitten av all kod så require()'ar jag in dokumentet som ska visas.. tex så blir det väl så där index.php?require=gastbok.php och dylikt...

intressant diskussion det här!

Mitt mål är att ha en
1. Generell lösning. Ska ej vara beroende av hur djupt ner i servern katalogen är nergrottad
2.php-fri kodning kring adresserna för att kunna se så mycket som möjligt utan att behöva ladda in sidan i en browser. Kodar för hand men kikar jämt och ständigt in i design-layouten.
3.dynamisk struktur. Vill kunna sortera dokumenten på disken i undermappar och inkludera dokument från root men ändå få rätt adresser till bilder och andra relativa adresser.

Vi Lasso-utvecklare använder oss av en lysande utvecklingsmetod som heter Corral. Den är vad du är ute efter.

http://www.blueworld.com/blueworld/articles/

/Ola

1
Bevaka tråden