Ik heb al een hoop GoT posts nagelopen op (voorkeuren voor) Template Engines, maar kom er niet echt uit welke oplossing voor mij geschikt is.
Korte uitleg: ik ben bezig met een eigen weblog script. Ik wil deze app. themeble maken, zodat ik vlot de layout kan aanpassen. Ik heb een template parser nodig die:
1. {tags} kan verwisselen voor php-gegenereerde content;
2. {tags} kan vervangen door andere template files.
1. is geen probleem - ik heb een eigen parsertje geschreven, gebaseerd op str_replace
2. is het probleem; ik zal het hieronder uitleggen.
Ik een MySQL datbase heb ik twee template files opgeslagen:
De bedoeling is als volgt:
1. ik haal voor alle newsposts de date, newstitle en newstext op uit de database.
2. voor elke newspost wordt deze informatie ingevuld voor de {date}, {newstitle} en {newstext} tags
Met andere woorden: dit template bestandje moet voor elke newspost geloopt worden
3. de totale output hiervan moet toegewezen worden aan de {newsposts} tag uit de bovenste template
Met andere woorden: op de plaats van {newsposts} krijg ik dus bv. de volgende uitput, die gevormd is mbv het tweede template bestandje:
De meeste template engines die ik tegenkom zijn gebaseerd op hardcoded .tpl bestanden ipv bestanden uit een database, maar daar kom ik wel uit. Waar ik meer mee zit is dat de meeste template engines een groot aantal functies hebben die ik helemaal niet nodig heb.
Mijn vragen aan jullie:
1. Kent iemand een tutorial voor een template parsertje zoals ik dat nodig heb?
2. Heeft iemand misschien wat aanwijzingen hoe ik zo'n tweede template kan loopen en daarna in de eerste kan passen? Op welke termen moet ik daarvoor Googlen?
3. Is het misschien dom wat ik probeer en heb jij wellicht andere ideeen waarmee ik hetzelfde kan bereiken maar makkelijker uitvoerbaar zijn?
Korte uitleg: ik ben bezig met een eigen weblog script. Ik wil deze app. themeble maken, zodat ik vlot de layout kan aanpassen. Ik heb een template parser nodig die:
1. {tags} kan verwisselen voor php-gegenereerde content;
2. {tags} kan vervangen door andere template files.
1. is geen probleem - ik heb een eigen parsertje geschreven, gebaseerd op str_replace
2. is het probleem; ik zal het hieronder uitleggen.
Ik een MySQL datbase heb ik twee template files opgeslagen:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
| <table border="1"> <tr> <td colspan="2">{header}</td> </tr> <tr> <td>{navlinks}</td> <td>{newsposts}</td> </tr> <tr> <td colspan="2">{footer}</td> </tr> </table> |
HTML:
1
2
3
4
5
6
7
8
9
| <table border="0"> <tr> <td>{date}</td> <td>{newstitle}</td> </tr> <tr> <td colspan="2">{newstext}</td> </tr> </table> |
De bedoeling is als volgt:
1. ik haal voor alle newsposts de date, newstitle en newstext op uit de database.
2. voor elke newspost wordt deze informatie ingevuld voor de {date}, {newstitle} en {newstext} tags
Met andere woorden: dit template bestandje moet voor elke newspost geloopt worden
3. de totale output hiervan moet toegewezen worden aan de {newsposts} tag uit de bovenste template
Met andere woorden: op de plaats van {newsposts} krijg ik dus bv. de volgende uitput, die gevormd is mbv het tweede template bestandje:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| <table border="1"> <tr> <td colspan="2">{header}</td> </tr> <tr> <td>{navlinks}</td> <td> <!-- BEGIN: NEWSPOSTS --> <table border="0"> <tr> <td>12 maart 2004</td> <td>Mooie dingen</td> </tr> <tr> <td colspan="2">Er zijn weer een hoop mooie...</td> </tr> </table> <table border="0"> <tr> <td>11 maart 2004</td> <td>Minder mooie dingen</td> </tr> <tr> <td colspan="2">Het was vandaag een stuk minder mooi...</td> </tr> </table> <!-- END: NEWSPOSTS --> </td> </tr> <tr> <td colspan="2">{footer}</td> </tr> </table> |
De meeste template engines die ik tegenkom zijn gebaseerd op hardcoded .tpl bestanden ipv bestanden uit een database, maar daar kom ik wel uit. Waar ik meer mee zit is dat de meeste template engines een groot aantal functies hebben die ik helemaal niet nodig heb.
Mijn vragen aan jullie:
1. Kent iemand een tutorial voor een template parsertje zoals ik dat nodig heb?
2. Heeft iemand misschien wat aanwijzingen hoe ik zo'n tweede template kan loopen en daarna in de eerste kan passen? Op welke termen moet ik daarvoor Googlen?
3. Is het misschien dom wat ik probeer en heb jij wellicht andere ideeen waarmee ik hetzelfde kan bereiken maar makkelijker uitvoerbaar zijn?
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."