Gå til innhold

Smarty templates lagret i en database


Anbefalte innlegg

Videoannonse
Annonse

Du trenger ikke lagre de i databasen for å tillate redigering.

 

La brukeren redigere og lagre filer direkte i filsystemet.

 

Smarty og template-systemet er lagret slik for å unngå at man må koble seg til en database.

 

Se for deg f.eks at database-tilkoblingen går ned og man ikke får noen template. Hvordan ville du returnere en fin feilmelding til brukeren da?

Lenke til kommentar

Lagre templaten som vanlig tekst (LONGTEXT eller vanlig TEXT) i databasen, så bruker du PHP for å hente ut raden med templaten før smarty parser fila.

 

Husker ikke hvordan du parser templates i smarty. Alternativt kan du lage en PHP snutt som "lager" en "fysisk" tpl fil på serveren før denne blir parset i smarty. Ser for meg at det er utrulig ineffektivt, da du uansett kan bruke PHP i selve tpl fila for å gjøre den "variabel/custom" med enkle verdier fra databasen istedenfor hele templaten.

 

\\ Fredrik

Lenke til kommentar
  • 3 uker senere...

Lagre templaten som vanlig tekst (LONGTEXT eller vanlig TEXT) i databasen, så bruker du PHP for å hente ut raden med templaten før smarty parser fila.

 

Husker ikke hvordan du parser templates i smarty. Alternativt kan du lage en PHP snutt som "lager" en "fysisk" tpl fil på serveren før denne blir parset i smarty. Ser for meg at det er utrulig ineffektivt, da du uansett kan bruke PHP i selve tpl fila for å gjøre den "variabel/custom" med enkle verdier fra databasen istedenfor hele templaten.

 

\\ Fredrik

Veldig, veldig lenge siden jeg kodet PHP nå, men kunne ikke holde meg unna å kommentere det her. Joda, ren PHP er såklart mer effektivt enn å parse et språk før det kjøres som PHP. Det du nok ikke har fått med deg er at Smarty (sist jeg så på det) cacher en "kompilert" versjon av templatene på disk som nettopp ren PHP. Så fra og med gang nummer to er det dermed ingen forskjell mellom en Smarty-template og å skrive det samme i ren PHP. Fordelen er såklart at Smarty-templater ikke tillater ren PHP i seg, og det er ganske så vesentlig med tanke på sikkerhet.

Lenke til kommentar
  • 5 uker senere...

 

Lagre templaten som vanlig tekst (LONGTEXT eller vanlig TEXT) i databasen, så bruker du PHP for å hente ut raden med templaten før smarty parser fila.

 

Husker ikke hvordan du parser templates i smarty. Alternativt kan du lage en PHP snutt som "lager" en "fysisk" tpl fil på serveren før denne blir parset i smarty. Ser for meg at det er utrulig ineffektivt, da du uansett kan bruke PHP i selve tpl fila for å gjøre den "variabel/custom" med enkle verdier fra databasen istedenfor hele templaten.

 

\\ Fredrik

Veldig, veldig lenge siden jeg kodet PHP nå, men kunne ikke holde meg unna å kommentere det her. Joda, ren PHP er såklart mer effektivt enn å parse et språk før det kjøres som PHP. Det du nok ikke har fått med deg er at Smarty (sist jeg så på det) cacher en "kompilert" versjon av templatene på disk som nettopp ren PHP. Så fra og med gang nummer to er det dermed ingen forskjell mellom en Smarty-template og å skrive det samme i ren PHP. Fordelen er såklart at Smarty-templater ikke tillater ren PHP i seg, og det er ganske så vesentlig med tanke på sikkerhet.

 

 

Caching kan slåes av, PHP kan inkluderes i smarty med

{php} echo "Hello World"; {/php}

 

Men nå er jo hele poenget med å bruke smarty å separere PHP fra HTML/CSS (som nevnt i post #2), det man vil er å sende variabler og verdier til template fila å la smarty ta seg av parsinga.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...