Frage zur Template-Funktion in PHPLIB

Alles zu Styles, Templates, Icons und Smilies für phpBB 2.0, sowie allgemeine Designfragen zur Integration von phpBB in bestehende Websites.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Thies
Mitglied
Beiträge: 106
Registriert: 01.07.2002 15:58
Wohnort: Thüringen
Kontaktdaten:

Frage zur Template-Funktion in PHPLIB

Beitrag von Thies »

Ich habe jetzt angefangen, mich mit Templates zu beschäftigen und die Templates-Class in der PHPLIB ist wirklich gut.

Nur verstehe ich eine Sache nicht.

So sieht das Template-File der Anzeige der News aus

Code: Alles auswählen

<br>
<!-- BEGIN artikel -->
<table cellspacing="0" cellpadding="0" border="0" width="100%"><tr>
<td class="reiter1" width="100%" bgcolor=black><font size=2 face=arial color=white><B>{news_header}<br><br>
<small>gepostet am {news_datum} von <a class="wsml" href="mailto:{autor_mail}">{autor}</a>
</small></font></B></font></td></tr></table>
<table cellspacing="0" cellpadding="10" border="1" bordercolor="#000000" width="100%"><tr><td width="100%" class="menu2"><font face="arial" size="2"> 
<!-- BEGIN bild -->
<img src="/NewsPro/upload/{image}" border="0" align="left" hspace="5" vspace="0">
<!-- END bild -->
{news_text}
<!-- BEGIN quellen -->
<br><br>  <FONT size=1>(Quelle: <a class="text" href="{quelle_url}" target="_blank" onMouseOver="window.status='Quelle';return true"><font face="arial" color="#dd0000">{quelle}</font></A>)</font><br>
<!-- END quellen -->  
</font></td></tr></table><br>
<!-- END artikel -->
Und so sieht der Code in der PHP-Datei aus:

Code: Alles auswählen

$tpl->set_block("meldungen", "artikel", "artikel_handle" );    // initialisierung der blockanweisung

$result = mysql_query("SELECT * FROM bwg_news order by datum DESC LIMIT 0, 20");   
	echo mysql_error();
while($row = mysql_fetch_row($result))
	{
        $tpl->set_var(array(
		"news_datum"	=>	$row[1],
		"news_header"	=>	$row[3],
		"news_text"	=>	$row[4],
		"image"		=>	$row[5],
		"quelle"		=>	$row[7],
		"quelle_url"	=>	$row[8],
		"autor"		=>	$row[9],
		"autor_mail"	=>	$row[10] ));

        $tpl->parse("artikel_handle", "artikel", true);
Die News werden auch angezeigt, nur möchte ich erreichen, dass der Teil

Code: Alles auswählen

<!-- BEGIN bild -->
<img src="/NewsPro/upload/{image}" border="0" align="left" hspace="5" vspace="0">
<!-- END bild -->
auch nur dann angezeigt wird, wenn das Feld image überhaupt einen Inhalt besitzt, dasselbe bei dem Bereich Quelle. Aktuell zeigt er immer alles an, also auch "fehlende" Bilder.

Wie muss ich die Template-Anweisungen strukturieren, damit ich das erreiche?

Danke im Voraus

Frank-Andre Thies
"credendo vides"
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Du müsstest dann den <img> Tag in die *.php verschieben..


while($row = mysql_fetch_row($result))
{
$image = ( !empty($row[5]) ) ? '<img src="/NewsPro/upload/' . $row[5] . '" border="0" align="left" hspace="5" vspace="0" />' : '';

$tpl->set_var(array(
"news_datum" => $row[1],
"news_header" => $row[3],
"news_text" => $row[4],
"image" => $image,
"quelle" => $row[7],
Und im Template dann nur {image} ...
Gast

Beitrag von Gast »

Danke, mit der Lösung kann ich erstmal arbeiten. Der Nachteil ist nur, dass dann wieder Layouts in der php-Datei geändert werden müssen und nicht nur im Template.

Wie es aussieht, kann die template.inc keine verschachtelten Blöcke, es gibt wohl eine andere Template-Klasse, die das kann. Die werde ich mal runterladen und prüfen.

Danke nochmals

Frank-Andre
Antworten

Zurück zu „phpBB 2.0: Styles, Templates und Grafiken“