Seite 1 von 1

Code in Template System integrieren

Verfasst: 30.04.2003 10:05
von rolandk
Kann mir mal bitte jemand helfen.

Wie muß ich bestimmten Code in das phpBB 2.0.3 Template System integrieren, dass ich es im Template selber anzeigen lassen will.

Beispiel: Will etwas aus einer externen DB ziehen. (Auflistung)
Dieses Ergebnis soll auf jeder Forenseite angezeigt werden.

Also brauche ich dafür die page_header.php und overall_header.tpl nehme ich mal an.

Wie bringe ich nun das Ergebnis (die Auflistung) in die tpl Datei.

Ich will keinen implode machen, wie es schon öfters erwähnt wurde.

Bitte helft mir.

Verfasst: 30.04.2003 13:05
von Acid
Ich nehme ma an, Du weisst wie Du per query die DB abfragst etc.. dann musst Du die Ausgaben nur noch ans Template weitergeben.
normaler Array:

$template->assign_vars(array(
'IRGENDWAS' => $irgendwas,
));


Ausgabe im Template wäre dann ..{IRGENDWAS}
Array innerhalb while-Schleife:

$template->assign_block_vars('irgendwas', array(
'IRGENDWAS' => $irgendwas,
));


Ausgabe im Template wäre dann ..
<!-- BEGIN irgendwas-->
{irgendwas.IRGENDWAS}
<!-- END irgendwas-->

Verfasst: 02.05.2003 09:25
von rolandk
Danke Acid, aber ich stehe noch ein klein wenig auf dem Schlauch. Kannst du mir anhand dieses Beispiel NUR ANSATZWEISE sagen, wie ich es zu machen habe.

Code: Alles auswählen

$query = mysql_query("SELECT * FROM DB", $db);
echo "<table width=\"100%\">";
if ($myrow = mysql_fetch_array($query)) {
do {
  echo "<tr>";
  echo "<td align=\"left\" valign=\"top\">";
  echo "<a href=\"/test.php?c=".$myrow['id']."\">".$myrow['name']."</a></td>";
  echo "</tr>";
  } while($myrow = mysql_fetch_array($query));
  echo "</table>";
}
Dieser Blödsinn soll in dem Template angezeigt werden.

Wie muß ich das in die Template-Variable packen?

Wäre nett, wenn du eine Lösung hättest. Sorry für meine Blödheit. Ich hab zwar mittlerweile schon sehr viel über PHP gelernt, aber abundzu hackts halt doch noch ein wenig.

Verfasst: 02.05.2003 10:40
von Acid
$template->set_filenames(array(
"body" => "test_body.tpl")
);


$query = mysql_query("SELECT * FROM DB", $db);
if ($myrow = mysql_fetch_array($query)) {
do {
$template->assign_block_vars('test', array(
'MY_NAME' => $myrow['name'],
'U_MY_NAME' => '/test.php?c='.$myrow['id'],
));
} while($myrow = mysql_fetch_array($query));
}

$template->pparse("body");
Natürlich musst Du auch die tpl vor dem ganzen Code definieren (oberer roter Teil)... und das Ganze dann ausgeben lassen (unterer roter Teil).

Die Ausgabe in der tpl wäre dann..
<table width="100%">
<!-- BEGIN test -->
<tr>
<td align="left" valign="top"><a href="{test.U_MY_NAME}">{test.MY_NAME}</a></td>
</tr>
<!-- END test -->
</table>