..
[ Voor 100% gewijzigd door Verwijderd op 08-06-2005 13:33 ]
SIZE does matter.
"You're go at throttle up!"
Verwijderd
waarom mag je niet gebruik maken van niet zelf gemaakte classes? Damn in welke tijd programmeren leef jij? Moet je ook nog zelf je compiler schrijven?Op maandag 25 maart 2002 16:47 schreef DiEana het volgende:
[..]
Ik citeer uit mijn eigen post: "Ik mag echter geen gebruik maken van niet zelf gemaakte classen, dus templates waren geen optie :\"
EDIT: waarom is mijn layout verneukt van mijn eerste post? Was zonet niet?
SIZE does matter.
"You're go at throttle up!"
Verwijderd
Waarom kan je dan geen templates gebruiken?Op maandag 25 maart 2002 16:55 schreef DiEana het volgende:
[..]
Sorry, het kan gewoon niet.
Hehe, een eigen template engine schrijven, ja daar ben ik nu "net" niet pro genoeg voor
Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."
1
2
3
4
5
6
7
8
9
10
11
| $template = implode ( "", file ( "./template.html" ) );
$vars = array ();
$vars [ "title" ] = "Titeltje";
$vars [ "content" ] = "Inhoud";
foreach ( $vars as $key => $value )
$template = str_replace ( '{' . $key . '}', $value, $template )
echo $template; |
1
2
3
4
5
6
7
8
| <html>
<head>
<title>{title}</title>
</head>
<body>
<p>{content}</p>
</body>
</html> |
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Als je dat bedacht hadDiEana:
Coool! Als ik dat geweten had....
Snelheid is niet echt een issue, hoor. Het scheelt op zijn allerhoogst een paar milliseconden, omdat je anders geen bestand hoeft uit te lezen en geen str_replace hoeft te doen, maar dat is echt te verwaarlozen.DiEana:
Zo heb ik het nu:
PHP:
1 <?meuk?>
Is dit dan de juiste/snelle methode die ik moet gebruiken?
Je zou aan subtemplates kunnen denken. Dat je een bepaalde template variabele ipv. door een "gewone" waarde te vervangen vervangt door de inhoud van een ander template bestand, die je ook weer str_replacet:DiEana:
Want nu zit ik een beetje in de knoei met condities: bij de ene clanwar moet ik wel het fototje tonen om wars te editen (als de auteur van de war = de ingelogde username) en bij de andere wars moet ik dat niet tonen. Waar zet ik die condities dan?
1
2
3
4
5
6
7
8
9
10
11
12
| -> lees hoofdtemplate
-> lees db uit
-> lees template A en B in
-> voor elke record
-> is de owner van dit record ingelogd?
-> gebruik voor dit record template A
-> anders
-> gebruik voor dit record template B
-> doe str_replace met de waarden van het record icm met
te gebruiken template
-> voeg resultaat toe aan var X
-> output de variabelen, daar waar X moet staan X in de template replacen |
En hoe kan ik het best die templates opvatten: van heel de pagina, of enkel de deeltjes die dynamisch zijn.. maw, de deeltjes die afhankelijk zijn van de gegevens in de dbase?
Zie hierbovenPS: Gaat dit het proces niet enorm vertragen?
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
str_replace is een hele "lichte" functieDiEana:
Over die snelheid: gelukkig maar! Want ik dacht dat het enorm vertraagd ging worden, door steeds op al die "template paginas" een str_replace op los te laten. Niet dus, phew
Dat is uberhaupt niet nodig. Je moet gewoon 1 string bewaren, waarin je het origineel van de template bewaart.Ja subtemplates, heb ik ook aan gedacht. Je bedoelt dus dat ik voor elk mogelijk situatie een nieuwe subtemplate aanmaak. (die natuurlijk zo klein mogelijk is: er moet zo weinig mogelijk gekopieerd worden natuurlijk). Maar ik dacht weer dat al die extra templates (die dus moeten geladen worden) enorm vertragend gingen werken
Oops, dan deed ik het dus fout? Want ik las per row uit de database opnieuw de template file in. Zo hoort het dus niet?
Wat ik bedoel met subtemplates is ongeveer dit:Over die deeltjes bedoelde ik: mijn pagina bestaat uit 3 delen zeg maar: bovenkant, rechterkant en midden. De bovenkant en rechterkan veranderen nooit, die zijn dus statisch. De vraag was gewoon of ik daar ook templates moet voor gebruiken, en niet alleen voor het dynamische (afhankelijk van de input gebruiker + dbase) midden.
1
2
3
4
5
6
7
8
9
10
11
12
| <html>
<head>
<title>{title}</title>
</head>
<body>
<h1>{title}</h1>
{content}
</body>
</html> |
1
| <div id="{id}">{name}</div> |
1
2
3
4
5
6
| function parse ( $vars, $tpl )
{
foreach ( $vars as $key => $value )
$tpl = str_replace ( '{' . $key . '}', $value, $tpl );
return $tpl;
} |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| $maintpl = implode ( "", file ( "./main.html" ) );
$output [ "title" ] = "Overzicht dingesjes";
$entrytpl = implode ( "", file ( "./entry.html" ) );
$query = "SELECT * FROM tabel";
$res = mysql_query ($query);
if ( mysql_num_rows ( $res ) == 0 )
$output [ "content" ] = "database is leeg";
else
while ( $record = mysql_fetch_assoc ( $res ) )
$output [ "content" ] .= parse ( $record, $entrytpl );
echo parse ( $output, $maintpl ); |
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
1
| <?str_replace(array_keys($vars),$vars,$string);?> |
Klaar voor een nieuwe uitdaging.
chem:
btw, ipv helemaal door die array te foreach'en kan je ook doen:
[...]
hupsakee
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
yeah, RIGHT!Op dinsdag 26 maart 2002 15:14 schreef drm het volgende:
[..]
ik wist dat natuurlijk wel maar ik wilde zien of jij het ook wist
![]()
![]()
Klaar voor een nieuwe uitdaging.
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Geen idee dat zou je even moeten benchen.DiEana:
PS: is dit nu "even snel" als bijv. Smarty of phpLib, of zijn die "nog" sneller? Compacter is het allezins
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Dan zou ik gewoon meerdere keren vanuit het ene datum-veld selecteren:DiEana:
IDD! Dat stond/staat op mijn TODO lijstje,
[...]
1
2
3
4
| SELECT DATE_FORMAT(..) as datum, HOUR(..) as hour, #etcetera |
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz