Templates til cms

Tags:    php

Jeg har det sidste stykke tid været i gang med at lave et cms script og sidder her med lidt af et problem. Jeg har ikke den store idé om hvordan templates skal virke. Lige nu bruger jeg file_get_contents($template); til at hente template filen. Problemet med det er at f.eks. det stylesheet der bruges ikke længere findes det korrekte sted da templaten ligger i en anden mappe, og css filen bliver hentet relativt til det sted. Udover det er der også det problem at hvis man echoer det bliver php'en skrevet som kode og bliver derfor ikke eksekveret. Det er jo logisk nok men det skal altså virke. Nogen der har en rigtig god idé??



-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GED d- s: a--- C++ U? P L+ E? W++ N? o? K- w
O? M? V? PS PE? Y? PGP++ t 5? X+ R tv+ b+ DI? D+
G e-- h! !r y--
------END GEEK CODE BLOCK------



6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Jeg har det sidste stykke tid været i gang med at lave et cms script og sidder her med lidt af et problem. Jeg har ikke den store idé om hvordan templates skal virke. Lige nu bruger jeg file_get_contents($template); til at hente template filen. Problemet med det er at f.eks. det stylesheet der bruges ikke længere findes det korrekte sted da templaten ligger i en anden mappe, og css filen bliver hentet relativt til det sted. Udover det er der også det problem at hvis man echoer det bliver php'en skrevet som kode og bliver derfor ikke eksekveret. Det er jo logisk nok men det skal altså virke. Nogen der har en rigtig god idé??



-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GED d- s: a--- C++ U? P L+ E? W++ N? o? K- w
O? M? V? PS PE? Y? PGP++ t 5? X+ R tv+ b+ DI? D+
G e-- h! !r y--
------END GEEK CODE BLOCK------



Med PHP funktionen eval() kan du eksekvere kode udfra en string.

I CSS kan du gøre det at du går ud fra roden, fx /mappe/andenmappe/billeder, i stedet for at du gør fx sådan: andenmappe/billeder


Håber det kunne bruges lidt :)


--
Ronni Egeriis



Hey, måske kan du bruge et af de svar som jeg engang fik da jeg legede med nogenlunde det samme problem: http://www.udvikleren.dk/thread.php?techid=6&f=6&t=1370&searchword=output%20buffering



Der kommer bare en blank side hvis jeg skifter echoen ud med eval. Stringen kunne ex. se sådan her ud


Fold kodeboks ind/udKode 



Her er koden der skal hente og vise siden

Fold kodeboks ind/udKode 


-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GED d- s: a--- C++ U? P L+ E? W++ N? o? K- w
O? M? V? PS PE? Y? PGP++ t 5? X+ R tv+ b+ DI? D+
G e-- h! !r y--
------END GEEK CODE BLOCK------

[Redigeret d. 16/11-05 20:31:37 af Jonas (Decko)]



Kan ikke lige få det til at virke. Kan ikke både include siden og replace :S.


-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GED d- s: a--- C++ U? P L+ E? W++ N? o? K- w
O? M? V? PS PE? Y? PGP++ t 5? X+ R tv+ b+ DI? D+
G e-- h! !r y--
------END GEEK CODE BLOCK------



Ok nu virker det næsten. Siden bliver vist rigtigt. Indholdet kommer bare ikke med.
Her er koden

Fold kodeboks ind/udKode 


Den udskifter ikk {{content}}. Det bliver stående på siden.


Edit: ja jeg echoer ikke engang $output kan jeg se. Den inkluder bare siden :S. det der ob_start ser ikke ud til at have den store effekt.

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GED d- s: a--- C++ U? P L+ E? W++ N? o? K- w
O? M? V? PS PE? Y? PGP++ t 5? X+ R tv+ b+ DI? D+
G e-- h! !r y--
------END GEEK CODE BLOCK------

[Redigeret d. 18/11-05 17:26:06 af Jonas (Decko)]



Ok nu virker det næsten. Siden bliver vist rigtigt. Indholdet kommer bare ikke med.
Her er koden

Fold kodeboks ind/udKode 


Den udskifter ikk {{content}}. Det bliver stående på siden.


Edit: ja jeg echoer ikke engang $output kan jeg se. Den inkluder bare siden :S. det der ob_start ser ikke ud til at have den store effekt.

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GED d- s: a--- C++ U? P L+ E? W++ N? o? K- w
O? M? V? PS PE? Y? PGP++ t 5? X+ R tv+ b+ DI? D+
G e-- h! !r y--
------END GEEK CODE BLOCK------

[Redigeret d. 18/11-05 17:26:06 af Jonas (Decko)]


Havde glemt () efter ob_end_clean. Det ser ud til det virker nu. Venter lige og ser om det nu også gør.


-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GED d- s: a--- C++ U? P L+ E? W++ N? o? K- w
O? M? V? PS PE? Y? PGP++ t 5? X+ R tv+ b+ DI? D+
G e-- h! !r y--
------END GEEK CODE BLOCK------



t