Použití šablony ze stringu nebo souboru
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- axis
- Člen | 5
Spíš jenom technická. (Nette 2.2.0)
Pokud jsem to pochopil správně: když chci použít šablonu ze
souboru, dám
<?php
$temp="template.latte";
$latte->render($temp, $params);
?>
pokud mám v $temp přímo šablonu jako string, je syntaxe stejná, akorát před tím použiju
<?php
$latte->setLoader(new Latte\Loaders\StringLoader);
?>
Sorry, ale to je hrozný zmatek, nešlo by pro to raději udělat jinou
funkci, renderString() nebo tak něco?
Nebo to lze udělat jinak?
Editoval axis (7. 6. 2014 19:59)
- Šaman
- Člen | 2654
Přimlouval bych se za nějaký odkaz, třeba na Gist, kde by bylo ukázané best practise na použití samostatných šablon (já je používám hlavně v emailech). A ukázka práce se šablonou v souboru i zadanou v proměnné (třeba vytaženou z db). Je v tom teď skutečně zmatek.
Editoval Šaman (7. 6. 2014 22:49)
- axis
- Člen | 5
<?php
include 'src/latte.php';
$latte = new Latte\Engine;
$latte->setLoader(new Latte\Loaders\StringLoader); //pokud chci template ve stringu
//$latte->setLoader(new Latte\Loaders\FileLoader); //default. chci template ze souboru
$latte->setTempDirectory('./temp');
$params['hlavni']="Main header" ;
$params['items'] = array('one', 'two', 'three','four');
$temp='<h1>{$hlavni}</h1>
<p n:inner-foreach="$items as $item">
{$item}{sep}, {/sep}
</p>';
//$temp='template.latte'; //soubor se šablonou
$latte->render($temp, $params);
?>