nun möchte ich auf der Newsseite ein zusätzliches TPL verwenden … also einmal eben das Standarttpl der Indexseite und dann noch das Zusatztpl für die Newsseite in der dann eben die Anordnung der Newsinhalte definiert ist.
Wie geht denn das?!
Also ich habe es so probiert:
[PHP]
<?
$tpl_news = new Template('news');
$test = "Dies ist nur ein Test!";
$tpl_news->replace(array('test'=>$test));
$tpl_news->printTemplate();
?>
[/PHP]
in der news.tpl.html steht nur:
[HTML]
{{test}}
[/HTML]
Wenn ich die Seite http://example.tld/index.php?site=news
aufrufe, wird nur das Standarttpl angezeigt (also index.tpl.html) und das Newstpl wird völlig ignoriert …
Hoffe ihr könnt es mir erklären oder mir ein Tutorial dazu schicken …
Wäre im Zweifel nicht schlecht. So kann zumindest ich da nichts zu sagen.
Vielleicht hat die Template-Klasse eine Methode, die den Inhalt nicht ausgibt, sondern als String zurückgibt. Den könntest du dann wiederum dem Index-Template zuweisen. Ansonsten kannst du einen Output Buffer drumrum bauen, um denselben Effekt zu erzielen (die Ausgabe des News-Templates in eine Variable speichern).
Oo?
Also ich hab es etz so gemacht … aber … es wird irgendwie nichts ausgegeben …
also das {{test}} wird nicht angezeigt, aber es wird auch kein Hallo Welt! angezeigt …
Du arbeitest dreimal auf demselben Template. Beim ersten Durchlauf der while-Schleife werden die Platzhalter passend ersetzt, beim zweiten Durchlauf wird im bereits fertig ersetzten String wieder versucht die Platzhalter zu ersetzen. Das schlägt natürlich fehl.
[php]<?php
defined (‚main‘) or die ( ‚no direct access‘ );
$main = ‚‘;
$query = „SELECT
DATE_FORMAT(datum, ‚%d.%m.%Y‘) AS datum,
DATE_FORMAT(zeit,‚%k:%i‘) AS zeit,
news,
tags,
topic
FROM
news
WHERE
senden = ‚1‘
ORDER BY
DATE_FORMAT(datum, ‚%Y-%m-%d‘) DESC,
zeit DESC
LIMIT
0,3“;
$sql = mysql_query($query);
while ($ds = mysql_fetch_object($sql)) {
if (empty($ds->tags)) {
$ds->tags = ‚n/A‘;
}
if (empty($ds->topic)) {
$ds->topic = ‚News‘;
}
$ds->news = BBcode($ds->news);