OK, nochmal:
index.tpl
Funktion translate:
index.php
$tpl->fetch
$tpl->compile
Beispiel 1: $_SESSION['lang'] = de
fetch:
$compiled = index.tpl.de.php -> existiert noch nicht
compile:
$content
run_filters
$content
weiter parsen
$content
Beispiel 2: $_SESSION['lang'] = en
fetch:
$compiled = index.tpl.en.php -> existiert noch nicht
compile:
$content
run_filters
$content
weiter parsen
$content
Noch Fragen?
Was du mit deiner letzten Frage meinst, verstehe ich nicht so ganz
index.tpl
Code:
{do x times} <p> {translate}hello_world{/translate} Aufruf-Nummer: $x <img src="/images/pic.jpg" /> </p> {enddo}
PHP-Code:
function translate($what) {
$words = fetch_language($_SESSION['lang']);
return isset($words[$what]) ? $words[$what] : '';
}
PHP-Code:
$tpl->add_filter('translate');
echo $tpl->fetch('index.tpl', $_SESSION['lang']);
PHP-Code:
function fetch($tpl, $lang) {
$compiled = $this->get_compiled($tpl, $lang);
if (!file_exists($compiled['name'])) {
$tpl->compile($tpl, $compiled['name']);
}
include_once $compiled['name'];
return $compiled['func']($this->data);
}
PHP-Code:
function compile($tpl, $compiled) {
$content = file_get_contents($tpl);
$this->run_filters($content);
//hier wird weiter geparsed
//und dann gespeichert
}
fetch:
$compiled = index.tpl.de.php -> existiert noch nicht
compile:
$content
Code:
{do x times} <p> {translate}hello_world{/translate} Aufruf-Nummer: $x <img src="/images/pic.jpg" /> </p> {enddo}
$content
Code:
{do x times} <p> Hallo Welt Aufruf-Nummer: $x <img src="/images/pic.jpg" /> </p> {enddo}
$content
PHP-Code:
function index_tpl_de_php($data) {
$output = '';
for ($i = 1; $i <= $data['x']; $i++) {
$output .= '<p>
Hallo Welt
Aufruf-Nummer: '.$i.'
<img src="/images/pic.jpg" />
</p>';
}
return $output;
}
fetch:
$compiled = index.tpl.en.php -> existiert noch nicht
compile:
$content
Code:
{do x times} <p> {translate}hello_world{/translate} Aufruf-Nummer: $x <img src="/images/pic.jpg" /> </p> {enddo}
$content
Code:
{do x times} <p> Hello world Aufruf-Nummer: $x <img src="/images/pic.jpg" /> </p> {enddo}
$content
PHP-Code:
function index_tpl_de_php($data) {
$output = '';
for ($i = 1; $i <= $data['x']; $i++) {
$output .= '<p>
Hello world
Aufruf-Nummer: '.$i.'
<img src="/images/pic.jpg" />
</p>';
}
return $output;
}
Was du mit deiner letzten Frage meinst, verstehe ich nicht so ganz
Kommentar