Ik ga dus nu voor mijn site een template engine knutselen, maar ik heb al bij de scripts gekeken, maar daar kan ik niet zo veel uit op maken hoe het nou precies werkt...
Wat is de beste manier om een GOEDE template engine te maken? (de reden dat ik niet smarty e.d. download, omdat ik 1: die niet snap 2: die niet werkt op mijn host(kweenie waarom) 3: ik wil niet zo iets uitgebreid, ik wil het gewoon zelf kunnen maken, niet dat ik alles download.. ik heb het veel liever zelf gemaakt.. + dat ik dan geen reclame op mijn site hoef te zetten...
Ja niek ik denk het wel en gewoon doorvragen wanneer je iets niet snapt!
Wanneer ik jouw vraag goed begrijp wil je graag een template maken en deze toepassen in de simpele template-engine zoals deze hier in een tutorial staat?
ja inderdaad.
Om mee te beginnen dus bijvoorbeeld gewoon zon structuur:
<html>
<head>
<title>dynamisch invullen door tpl engine</title>
</head>
<body>
dynamisch invullen door tpl, MAAR! ander php bestand! (functie include?)
</body>
</html>
Ik kom er alleen neit uit hoe ik met die simpele parser hier bij de scripts een ander script kan includen, ik krijg deze error:
Warning: include(registger.php) [function.include]: failed to open stream: No such file or directory in C:\Program Files\xampp\htdocs\template\parser\parser.php on line 5
Warning: include() [function.include]: Failed opening 'registger.php' for inclusion (include_path='.;C:\Program Files\xampp\php\pear\') in C:\Program Files\xampp\htdocs\template\parser\parser.php on line 5
met gewoon deze code:
<?
require_once("parser.class.php"); // het script dus
$parse = new parser("template.tpl"); // de template
$parse->assign("pname", "henk en annie zitten op de wc"); //naam van blok zonder [ of ] + inhoud
$parse->assign("content", include 'registger.php'); // zie hierboven
$parse->output(); // de pagina outputten
?>
<?php
require_once("include/class-parser.php"); // het script dus
$parse = new parser("template/index.tpl"); // de template
$parse->assign("pname", "parser voorbeeld"); //naam van blok zonder [ of ] + inhoud
$parse->assign("content", "Dit is een voorbeeld"); // zie hierboven
$parse->output(); // de pagina outputten
?>
die heb ik nu ook, ik had dus van die allles letterlijk overgenomen, werkte PERFECT! alleen nu wil ik een php file include (zie hierboven) maar dan krijg k dus die error!
PS wel de juiste mappen ervoor vermelden. kijk maar goed in mijn voorbeeld. het maakt namelijk niet uit hoe je je bestand noemt mits de verwijzing maar gelijk is wanneer je afwijkt van de code die er staat. deze dient dan ook te worden gewijzigd evenals mijn voorbeeld waarbij ik een en ander in mapjes heb gedaan.
OK ga ik proberen en wanneer ik je goed begrijp dit stuk:
$parse->assign("content", "Dit is een voorbeeld"); // zie hierboven
hier wil je bijv. test.php aan toevoegen en dan de content van test.php laten weergeven?
En wanneer je dit toepast?
VERBETERING!!
Leuk simpel template script, maar wat als je:
<html>
<head>
<title>[pname]</title>
</head>
<body>
[content]
</body>
</html>
Zou kunnen vervangen door een nieuw bestand template.php met als inhoud:
<?php
echo '<html>',"\n",
'<head>',"\n",
'<title>',$pname,'</title>',"\n",
'</head>', "\n",
'<body>',"\n",
$content, "\n",
'</body>',"\n",
'</html>',"\n";
?>
<?
require_once("parser.class.php"); // het script dus
$parse = new parser("template.tpl"); // de template
$parse->assign("pname", "henk en annie zitten op de wc"); //naam van blok zonder [ of ] + inhoud
$parse->assign("content", include 'registger.php'); // zie hierboven
$parse->output(); // de pagina outputten
?>