06. november 2006 - 19:38Der er
20 kommentarer og 1 løsning
Hvordan er det smartes at lave en side med forskellige css filer
Hejsa eksperten.
hvordan er det smartes at lave en side med flere forskellige designs ? Det skal være sådan at man kan ændre det perment fra admin delen. Skal man lægge det ned i en database ? eller hvad med replace string commandoen ? nogen der har nogen gode svar ?
Jeg vil mene at det er bedst at lave en tabel i databasen ved navn design. Der skal så være 4 rækker fx (kommer an på hvor mange designs du har). Rækkerne skal hedder design1, design2 osv.. Så skal der være 1 felt ud for hver række der hedder "brug". Så skal du lave en form i admin delen der opdatere feltet brug i databasen fra off til on.. så kan du tjekke på alle dine sider hvilket design du skal bruge således:
<?php
$query = mysql_query("SELECT * FROM brug") or die(mysql_error()); while ($row=mysql_fetch_array($query)){ $design1 = $row[design1]; $design2 = $row[design2]; $design3 = $row[design3]; $design4 = $row[design4]; }
if ($design1 == "on") { include "css1.css"; } if ($design2 == "on") { include "css2.css"; } if ($design3 == "on") { include "css3.css"; } if ($design4 == "on") { include "css4.css"; }
nej altså brugerens skal ikke kunne ændre det... det skal være at jeg som admin vælger at nu skal der et andet design end for en bestemt tid.. giver det nogen mening ? :)
ja men det skal være mere dynamisk ligesom the surfer har fåslået... men kan man man godt oploade en css fil ? eller skal jeg bare oploade hele css koden som rent text ?
the_edge> Nej, ud skal ikke ind og rette i kildekoden..
Det er jo netop det der er smart.. Du erstatter indeholdet af filen "minstil.css", ved at overskrive den..
Dvs, du sletter filen "minstil.css", og derefter kopierer du en anden fil, og omdøber den nye kopi til "minstil.css"..
Browseren ved ikke at du har slettet filen og kopieret en ny.. den læser bare den fil der hedder "minstil.css", fordi den får at vide, at den skal læse filen her:
Det skal lige siges, at udviklers løsning ikke er permanent.
Der skal din server hen og arbejde hver eneste gang en side loades..
Hver gang en side loades, skal den hen og sige: - load fra database - hvis design1 er on, sæt variabelen $css til design1 - hvis design2 er on, sæt variabelen $css til design2 - hvis design3 er on, sæt variabelen $css til design3 - hvis design4 er on, sæt variabelen $css til design4 - udskriv variablen $css
Det er (hvis du spørger mig) langt ud, og bruger alt for mange ressourcer..
2) Det jeg skrev i 06/11-2006 19:52:11: - Indlæs fra database, og sæt filnavn i en session - Læs sessionen og udskriv filnavn i <link>-tag'et: href<?php echo session['css'] ?> (eller hvordan man nu gør)
3) udviklers metode
Nummer 1 er klart den mest effektive, og bruger langt færre ressourcer, da det er ren HTML.
Nummer 2 bruger lidt ressourcer, da den skal læse fra database 1 gang, og gemme det i en session, hvor den så læser fra
Nummer 3 bruger alt for mange ressoucer, da den skal læse fra databasen hver eneste gang en side loades
Tjaa, thesurfer har lidt ret vil jeg mene. Hvis din side indeholder utrolig mange brugere så er min løsning ikke god. Så kræver det alt for meget server arbejde og gør siden lidt langsom. Derimod er thesurfers god til en populær side.
Takker for points.. Held og lykke med projektet! :-)
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.