[Smarty] probleem met includen van files.
index.php
Code (php)
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
34
35
36
37
38
39
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
34
35
36
37
38
39
<?php
// put full path to Smarty.class.php
require('/usr/lib/php5/Smarty/Smarty.class.php');
$smarty = new Smarty();
$smarty->template_dir = 'smarty/templates';
$smarty->compile_dir = 'smarty/templates_c';
$smarty->cache_dir = 'smarty/cache';
$smarty->config_dir = 'smarty/configs';
$smarty->assign('emailmessage', '');
$pages = array('home','about','links', 'contact', 'portfolio', 'cv');
$names = array('home' => 'Home','about' => 'Over mij','links' => 'Links', 'contact' => 'Contact', 'portfolio' => 'Portfolio', 'cv' => 'Curriculum Vitae');
if(!isset($_GET['p']))
{
$smarty->assign('content', file_get_contents('home.php'));
$smarty->assign('breadcrumb', '<a href="index.php">Home</a>');
$smarty->assign('title', 'Jurgen-Meijer.nl - Welkom op de webpagina van Jurgen Meijer');
}
else
{
if(!in_array($_GET['p'], $pages))
{
$smarty->assign('content', file_get_contents('home.php'));
$smarty->assign('breadcrumb', '<a href="index.php">Home</a>');
$smarty->assign('title', 'Jurgen-Meijer.nl - Welkom op de webpagina van Jurgen Meijer');
}
else
{
$smarty->assign('content', file_get_contents($_GET['p'].'.php'));
$smarty->assign('breadcrumb', '<a href="index.php?p='.$_GET['p'].'">'.$names[$_GET['p']].'</a>');
$smarty->assign('title', 'Jurgen-Meijer.nl - '.$names[$_GET['p']]);
}
}
?>
// put full path to Smarty.class.php
require('/usr/lib/php5/Smarty/Smarty.class.php');
$smarty = new Smarty();
$smarty->template_dir = 'smarty/templates';
$smarty->compile_dir = 'smarty/templates_c';
$smarty->cache_dir = 'smarty/cache';
$smarty->config_dir = 'smarty/configs';
$smarty->assign('emailmessage', '');
$pages = array('home','about','links', 'contact', 'portfolio', 'cv');
$names = array('home' => 'Home','about' => 'Over mij','links' => 'Links', 'contact' => 'Contact', 'portfolio' => 'Portfolio', 'cv' => 'Curriculum Vitae');
if(!isset($_GET['p']))
{
$smarty->assign('content', file_get_contents('home.php'));
$smarty->assign('breadcrumb', '<a href="index.php">Home</a>');
$smarty->assign('title', 'Jurgen-Meijer.nl - Welkom op de webpagina van Jurgen Meijer');
}
else
{
if(!in_array($_GET['p'], $pages))
{
$smarty->assign('content', file_get_contents('home.php'));
$smarty->assign('breadcrumb', '<a href="index.php">Home</a>');
$smarty->assign('title', 'Jurgen-Meijer.nl - Welkom op de webpagina van Jurgen Meijer');
}
else
{
$smarty->assign('content', file_get_contents($_GET['p'].'.php'));
$smarty->assign('breadcrumb', '<a href="index.php?p='.$_GET['p'].'">'.$names[$_GET['p']].'</a>');
$smarty->assign('title', 'Jurgen-Meijer.nl - '.$names[$_GET['p']]);
}
}
?>
Het doel is dus dat ik Smarty code wil gebruiken op de included pagina's maar deze worden gewoon letterlijk op het scherm weergegeven. Is het misschien een optie om de variablen te parsen voordat ik hem aan een smarty var koppel en hoe moet dit?
Gewijzigd op 01/01/1970 01:00:00 door Jurgen assaasas
Als je het op deze manier wilt doen dan moet je is naar de ob_* functies kijken, daarmee kan je wat jij wilt.
Toch raad ik aan om smarty.include te gebruiken, dat is een stuk makkelijker.
mijn template ziet er zo uit:
Code (php)
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
34
35
36
37
38
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
34
35
36
37
38
<body>
<div class="wrapper">
<div class="header">
<div class="menu">
<ul class="menu">
<li><a href="index.php">Home</a></li>
<li><a href="index.php?p=about">Over mij</a></li>
<li><a href="http://fotoalbum.jurgen-meijer.nl" target="_blank">Fotoalbum</a></li>
<li><a href="http://mediacollectie.jurgen-meijer.nl" target="_blank">Media collectie</a></li>
<li><a href="index.php?p=portfolio">Portfolio</a></li><li><a href="index.php?p=cv">CV</a></li>
<li><a href="index.php?p=links">Links</a></li>
<li><a href="index.php?p=contact">Contact</a></li>
</ul>
<a href="http://www.linux.org" target="_blank" style="float: right;"><img src="/smarty/templates/design/images/tux.png" alt="Linux" /></a>
</div>
<div class="headertext">
<strong>Jurgen-Meijer.nl</strong>
<span class="subtext"><strong>Webdevelopment, zware metalen en meer!</strong></span>
</div>
<div class="quote">{$quote}</div>
</div>
<div class="content">
<div class="breadcrumb">U bent hier: {$breadcrumb}</div>
{$content}
{$emailmessage}
</div>
<div class="footer">
© <strong>Jurgen Meijer</strong> 2008 alle rechten voorbehouden.
</div>
<div class="submenu">
<ul>
<li><a href="http://validator.w3.org/check?uri=www.jurgen-meijer.nl">XHTML</a></li>
<li><a href="http://jigsaw.w3.org/css-validator/validator?uri=http://www.jurgen-meijer.nl" target="_blank">CSS</a></li>
<li><a href="sitemap.xml">Sitemap</a></li>
</ul>
</div>
</div>
</body>
<div class="wrapper">
<div class="header">
<div class="menu">
<ul class="menu">
<li><a href="index.php">Home</a></li>
<li><a href="index.php?p=about">Over mij</a></li>
<li><a href="http://fotoalbum.jurgen-meijer.nl" target="_blank">Fotoalbum</a></li>
<li><a href="http://mediacollectie.jurgen-meijer.nl" target="_blank">Media collectie</a></li>
<li><a href="index.php?p=portfolio">Portfolio</a></li><li><a href="index.php?p=cv">CV</a></li>
<li><a href="index.php?p=links">Links</a></li>
<li><a href="index.php?p=contact">Contact</a></li>
</ul>
<a href="http://www.linux.org" target="_blank" style="float: right;"><img src="/smarty/templates/design/images/tux.png" alt="Linux" /></a>
</div>
<div class="headertext">
<strong>Jurgen-Meijer.nl</strong>
<span class="subtext"><strong>Webdevelopment, zware metalen en meer!</strong></span>
</div>
<div class="quote">{$quote}</div>
</div>
<div class="content">
<div class="breadcrumb">U bent hier: {$breadcrumb}</div>
{$content}
{$emailmessage}
</div>
<div class="footer">
© <strong>Jurgen Meijer</strong> 2008 alle rechten voorbehouden.
</div>
<div class="submenu">
<ul>
<li><a href="http://validator.w3.org/check?uri=www.jurgen-meijer.nl">XHTML</a></li>
<li><a href="http://jigsaw.w3.org/css-validator/validator?uri=http://www.jurgen-meijer.nl" target="_blank">CSS</a></li>
<li><a href="sitemap.xml">Sitemap</a></li>
</ul>
</div>
</div>
</body>
Gewijzigd op 01/01/1970 01:00:00 door Jurgen assaasas
include() is pure php code die er als het ware tussen wordt gezet.
Testje gedaan
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$var = 1;
echo '<br/>' . $var;
$file1 = file_get_contents('bla.php');
echo '<br/>' . $var;
include('bla.php');
echo '<br/>' . $var;
?>
$var = 1;
echo '<br/>' . $var;
$file1 = file_get_contents('bla.php');
echo '<br/>' . $var;
include('bla.php');
echo '<br/>' . $var;
?>
En in bla.php deze code:
Resultaat:
1
1
2
Ja, maar ik kan een include toch niet aan een variabelen hangen?
@TS
Wat je kan doen:
ipv
doe je:
Dan kan je in je tpl file zoiets doen:
Als het goed is wordt dan wel je smarty geparsed in je geinclude file.
Hartelijk dank Stien dit werkt perfect! Hier worstel ik al een aantal maanden mee.