Ohne Vorwissen schreibt man nicht mal eben ne Templateklasse. Als will dich nicht entmutigen, aber da gehört schon was mehr zu. Und alle Tutorials hast du anscheinend immer noch nicht gelese...
Template probleme...
Einklappen
X
-
jetzt sind es beide tutorials...
die .inc.php datei der Aploda Klasse hat mir gezeigt dass es doch etwas komplizierter aufgebaut ist als ich zuerst angenommen habe...
wie wichtig ist die wahl der template-klasse?
gibt es eine besonders gute oder ist die Aploda Template Klasse des einen tutorials so ziemlich das was in den meisten enthalten ist?
Kommentar
-
jup, ganz schön praktisch zu bedienen...
allerdings stosse ich bei schleifen auf doofe grenzen :
aus folgender seite möchte ich verschiedene titel einsetzen und jedem gleichzeitig mehrere untertitel zuweisen:
PHP-Code:<table>
<!-- BEGIN dvds -->
<tr bgcolor="#000066">
<td height="{height}" colspan="2"><font color="#FFFFFF">{title}</font></td>
</tr>
<tr bgcolor="#000066">
<td>{subtitle}</td>
</tr>
<!-- END dvds -->
</table>
PHP-Code:<?php
/* Verbindung zur Datenbank aufbauen */
require("dbconnect.php");
/* Template-Class festlegen */
include('class_template.inc.php');
/* Design-Seite bestimmen */
$tpl = new Template('template3.tpl.html');
/* der Bereich der angezeigt werden soll wird bestimmt */
$tplVerein = $tpl->fetchBlock('dvds');
/* gewünschte Daten werden aus Datenbank abgefragt */
$requete="SELECT * FROM forum ORDER BY id";
$result= mysql_query($requete, $db);
/* Daten werden in einer Schleife angezeigt */
while ($ligne = mysql_fetch_object ($result))
{
$tplVerein->assign('title', $ligne->title);
$tplVerein->assign('height', '40');
/* Abfrage für untergeordnete Datensätze */
$forum = $ligne->id;
$req="SELECT * FROM article WHERE id=$forum ORDER BY id";
$res= mysql_query($req, $db);
/* neue Daten werden in einer neuen Schleife, welche in die alte eingebunden ist, wiedergegeben */
while ($for = mysql_fetch_object ($res))
{
/* Strings der Grafikseite werden ersetzt */
$tplVerein->assign('subtitle', $for->corps);
/* die Daten die eingefügt werden sollen werden dem template übergeben */
$tpl->assign('verein', $tplVerein);
/* der bestimmte Bereich wird wieder freigegeben */
$tplVerein->reset();
}}
/* die Grafik-Datei wird angezeigt */
$tpl->out();
/* gespeicherte Abfragen werden gelöscht */
mysql_free_result ($result);
mysql_free_result ($res);
/* Datenbankverbindung wird unterbrochen */
mysql_close($db);
?>
ich habe auch schon versucht dann halt zuzuweisen dass {title} leer sei, allerdings bleibt immer noch ein lästiger schmaler Streifen zurück den ich loswerden möchte.
Weiter habe ich versucht mit einem weiteren "fetchblock" zu verhindern dass {title} weiterhin ausgelesen wird, aber es ist nicht möglich, mehrere BEGIN / END in einander zu verknüpfen wie unten versucht wird:
PHP-Code:]<table>
<!-- BEGIN title -->
<tr bgcolor="#000066">
<td height="{height}" colspan="2"><font color="#FFFFFF">{title}</font></td>
</tr>
<!-- BEGIN subtitle -->
<tr bgcolor="#000066">
<td>{subtitle}</td>
</tr>
<!-- END title -->
<!-- END subtitle -->
</table>
Kommentar
-
ich hab das problem in zwischenzeit auf etwas komplexe art umgangen, allerdings ist das script jetzt durch haufenweise if /else bedingungen verunstaltet...
falls also trotzdem jemand weiss wie man schleifen bei templates machen kann (was sicher möglich ist) wäre es nett mich das wissen zu lassen
ich habe auch bei phpbb gesehen dass es funkt ein<!-- BEGIN ... ---!>
<!-- END ... --!> in ein weiteres <!-- BEGIN ... --!> <!-- END ... --!>
zu packen.
allerdings konnte ich nicht herausfinden wo der fehler liegt, ich vermute aber dass es am inc.php file liegen muss.
irgend jemand ne ahnung? oder zumindest eine andere template-klasse die diese Verschachtelung ermöglicht?
Kommentar
Kommentar