Ik heb mijn website i.c.m Smarty gemaakt, werkt erg mooi en leuk alleen ik heb een probleempje m.b.t. pagination.

Ik laad mijn pagina's op de volgende manier:

index.php
<?php
//hoop code

$pages = array('home','about','links', 'contact', 'portfolio');
$names = array('home' => 'Home','about' => 'Over mij','links' => 'Links', 'contact' => 'Contact', 'portfolio' => 'Portfolio');


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']]);
}
}

//nog wat code

$smarty->assign('quote', $quotes[array_rand($quotes, 1)]);
$smarty->assign('lastfm', $xml->artist);
$smarty->display('design/design.tpl');

?>

Ik wil dus de Lastfm array laten weergeven in smarty d.m.v. een Smarty foreach loop, maar als ik dit op mijn include page doe (dus via file_get_contents) dan krijg ik de letterlijke code te zien i.p.v. de geparste code. Is hier een oplossing voor of moet ik mijn pagination anders oplossen in Smarty?
include()
Tikkes schreef op 14.11.2008 12:03
include()


Een reactie waar ik eigenlijk niets aan heb. Ik zet mijn content in een smarty variablen. Ik wil niet de code platte HTML rechtstreeks in mijn index hebben.
ik denk dat hij bedoelt dat je ipv file_get_contents include() moet gebruiken
Tamara schreef op 14.11.2008 12:19
ik denk dat hij bedoelt dat je ipv file_get_contents include() moet gebruiken


Ik snap wat hij bedoeld, maar met include gooi je de gehele inhoud van de file in de index.php, met file_get_contents doe je dat niet, daar heb je de mogelijkheid om deze in een variabel te laden en vervolgens d.m.v. de Smarty class dit in een Smarty variabelen stoppen.

Het gehele probleem is dus eigenlijk:

Ik kan geen Smarty code gebruiken in de HTML pagina's die ik in de Smarty variabel $content laad.
Weet niet zeker of het werkt. Ik ben nog niet zo lang bezig met Smarty.
Maar ik zou een aparte template maken voor je lastFM waarden. Deze dan fetchen in je index.php en deze meegeven aan de hoofdtemplate.
dus :
<?php
$lastFM = $smarty->fetch('lastfm.tpl');
$smarty->assign('lastfm',$lastFM);
?>


ps. Kan ook zijn dat ik je nu helemaal verkeerd begrijp...:)
Nou je idee is wel goed alleen ik wil dit op meerdere pagina's doen. Dit zijn gewoon PHP files die eigenlijk alleen maar HTML bevatten. Ik wil hier smarty codes in gebruiken bijv voor meldingen en andere zaken.

Reageren