Code in Template System integrieren

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
rolandk

Code in Template System integrieren

Beitrag 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.
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag 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-->
rolandk

Beitrag 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.
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag 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>
Antworten

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