Gå til innhold

Smarty templates lagret i en database


Anbefalte innlegg

Skrevet (endret)

Hei! Er det noen som vet hvordan man kan lagre templates for Smarty i en database (MySQL) istedenfor å bruke .tpl-filer lagret direkte på serveren? Noen eksempler hadde vært ideelt! Har lest meg gjennom doukmentasjonen, men uten hell.

Endret av useriøst
Videoannonse
Annonse
Skrevet

Hvorfor i allverden ønsker du å gjøre det?

 

Det vil virke mot hele hensikten til template-systemet.

 

For å la brukere endre template selv, vel? Det er jo hensiktsmessig det.

Skrevet

Synes det hørtes smart ut - poenget med template er jo å skille kode og presentasjon og sånn sett likegyldig om templatet leses inn fra en fil eller en database. - tror jeg kunne tenkt meg å gjørt det samme selv om det er en grei måte å gjøre det på.

Skrevet

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?

Skrevet

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

  • 3 uker senere...
Skrevet

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.

  • 5 uker senere...
Skrevet

 

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.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...