Avatar billede steenolsen1 Nybegynder
17. december 2004 - 08:01 Der er 18 kommentarer

Redigere et dynamisk stylesheet

Hej,

jeg er igang med at lave en shop, hvor jeg godt kunne tænke mig at kunne styre hele designet fra administrationsmodulet. Det vil sige kontrol af skrifttyper, størrelser, farver og billeder, som indgår i designet.

Mit problem/spørgsmål:
Principielt kunne dataene fra den formular hvorfra det hele styres, registreres i en MySQL db og så kunne det hele  hentes derfra hver gang de besøgende klikker sig rundt på siden. For ikke at skulle belaste serveren mere end højest nødvendigt, kunne jeg godt tænke mig istedet at der blev oprettet en fil, med endelsen .css, hvor hele stylesheetet så lå i. Det kan jeg nok godt finde ud af at lave, men hvordan åbner en sådan fil, så jeg kan redigere i den i et administrationsmodul?

På forhånd tak for jeres input.
Steen
Avatar billede thb Nybegynder
17. december 2004 - 08:08 #1
Du kan lave et php dokument med header som css, men den vil stadigvæk hente fra serveren hele tiden...

Thomas
Avatar billede steenolsen1 Nybegynder
17. december 2004 - 08:16 #2
Ja og det er det jeg helst vil undgå. Ellers var det ikke noget problem :-)
Avatar billede morteeart Nybegynder
17. december 2004 - 09:22 #3
du kunne vel bygge en admin-modul, (med brugervenligt interface), som så laver fwrite osv. på din .css fil.

http://dk2.php.net/fwrite (der står flere funktioner i bunden.)
Avatar billede morteeart Nybegynder
17. december 2004 - 09:23 #4
eller skal du måske ud i noget xml/xslt, så vist er bygget til formålet (har jeg lade mig fortællle) men det er ikke noget jeg har erfaring i at bruge.
Avatar billede steenolsen1 Nybegynder
17. december 2004 - 09:42 #5
Det var en fwrite jeg ville bruge til det. Problemet er ikke så meget at skrive til en fil, men mere det at åbne en fil, og så redigere i den.

Et udpluk at mit stylesheet vil se sådan her ud:
font-family: verdana;

font-family: og ; tilsidst vil være foruddefineret og kun skrifttypenavnet vil være data jeg får fra mit administrationsmodul, altså en formular, der poster den værdi. Det er nemt nok at få skrevet værdien "verdana" ind i css filen, men jeg ved ikke hvordan jeg henter den igen, sådan så der i mit administrationsmodul vil stå

<input type="text" name="skrifttype" value="verdana">

som så kan ændres til noget andet...

Kan I følge mig?
Avatar billede thb Nybegynder
17. december 2004 - 09:52 #6
Hvis ikke det er et mega stort site med total mange brugere på samme tid, så kan jeg ikke se det tror problem i at gøre det i php, så det loader hver gang..

Thomas
Avatar billede steenolsen1 Nybegynder
17. december 2004 - 10:29 #7
Det er til en netbutik, så med tiden kan der (forhåbentlig) komme rigtig mange besøgende....
Avatar billede steenolsen1 Nybegynder
17. december 2004 - 13:11 #8
Ingen andre bud?
Avatar billede morteeart Nybegynder
17. december 2004 - 13:48 #9
havde lige fysikundervisning..

tror du skal hente teksten ved at :

hente teksten ind i en variable
og så sorteret font-family værdien ude med enten explode eller regex

www.php.net/explode
www.php.net/preg_match
www.php.net/ereg
Avatar billede steenolsen1 Nybegynder
17. december 2004 - 14:02 #10
Puha - det ser sgu noget indviklet ud...

Hvis man istedet lægger værdierne ind i sin session, vil det så have nogle fordele? Dermed kunne man hente det hele EN gang og hvis dataene er hentet, så skal den ikke hente mere, men blot holde sessionvariablerne (stylesheetet).... Kan det mon lade sig gøre?
Avatar billede olebole Juniormester
17. december 2004 - 16:48 #11
<ole>

Ja - og det belaster serveren langt mere  :)

/mvh
</bole>
Avatar billede steenolsen1 Nybegynder
18. december 2004 - 10:58 #12
Det belaster mere at lægge værdierne i sessions end at forespørge i databasen?
Avatar billede steenolsen1 Nybegynder
18. december 2004 - 12:47 #13
Tror måske lige jeg har fundet på noget smart......

I administrationsmodulet, hvor man styrer stylesheetet kan man jo når man submitter oprette en ny record i tabellen, OG SAMTIDIG oprette en .css fil. Derefter kan man i shoppen include .css filen som man normalt ville gøre det.

I forbindelse med en opdatering henter man bare dataene fra tabellen, og når man så har rettet det der skal rettes, og klikker på submit opdateres såvel tabellen som .css filen, der blot overskrives....

Det må da kunne lade sig gøre og være det nemmeste.
Avatar billede olebole Juniormester
18. december 2004 - 22:54 #14
Det er ikke bare det nemmeste ... det er langt det bedst performende at cache dokumenterne på siden. Det gælder i øvrigt for det meste af det ASP og PHP, der skrives.
Som oftest er det guddommelig overflødigt at hente data fra en database - da disse sjældent opdateres - og man slider helt unødigt på serveren. Med sjældent mener jeg: Kun få gange om dagen  :)
Avatar billede olebole Juniormester
18. december 2004 - 22:54 #15
'... at cache dokumenterne på sitet'  :)
Avatar billede steenolsen1 Nybegynder
19. december 2004 - 01:38 #16
Øhhh.... så du giver mig ret? Jeg er ikke helt med på hvad du mener med at cache det....
Avatar billede olebole Juniormester
19. december 2004 - 02:04 #17
Jaja ... at cache dokumenterne, betyder at gemme dem som filer  ;o)
Avatar billede steenolsen1 Nybegynder
19. december 2004 - 02:31 #18
Cool nok - det vil jeg igang med så :-)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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