bei der Grafik habe ich leider einige Verbindungen vergessen (auf dem Raster war konnte ich noch nicht wirklich gut erkennen wo ein Strich ist und wo nicht.)
Ja, es sind Arrays in Arrays... aber es ist von vornherein nciht festgelegt wie tief es gehen soll, also wieviele Arrays in den Arrays drinnen sein sollen UND es ist nciht festgelgt wie Lang die einzelnen Arrays sind, da immer wieder estwas dazukommen kann...
Habe ich alles richtig verstanden wenn ich sage dass in den Templates "nur" eine bestimmte Zeichenfolge durch eine andere ersetzt wird?
Das ist aber nich ganz das was ich brauche, denn das habe ich schon.
Ein Auszug aus einer Templatedatei des phpBB:
HTML:
<!-- BEGIN catrow -->
<tr>
<td class="cat" colspan="3"><a href="{catrow.U_VIEWCAT}">{catrow.CAT_DESC}</a></td>
<td class="rowpic" colspan="3"><img src="http://www.tutorials.de/forum/images/spacer.gif" alt="" width="295" height="12" /></td>
</tr>
<!-- BEGIN forumrow -->
<tr>
<td class="row1" height="45" align="center">
{catrow.forumrow.S_MARK_LINK_START}
<img src="{catrow.forumrow.FORUM_FOLDER_IMG}" id="forumimage_{catrow.forumrow.FORUM_ID}" alt="{catrow.forumrow.L_FORUM_FOLDER_ALT}" title="{catrow.forumrow.L_FORUM_FOLDER_ALT}" border="0" />{catrow.forumrow.S_MARK_LINK_END}
</td></tr>
<!-- END forumrow -->
<!-- END catrow -->
und mir geht es jetzt in dem Fall um eben diese Blöcke: "catrow" und "forumrow".
Für jeden Aufruf von
PHP:
$template->assign_block_vars('catrow', array(
'CAT_ID' => $cat_id,
'CAT_DESC' => $category_rows[$i]['cat_title'],
'U_VIEWCAT' => append_sid("index.$phpEx?" . POST_CAT_URL . "=$cat_id"))
);
der Funktion "assign_block_vars" wird "catrow" wiederholt - inklusive "forumrow", welches wiederum sooft wiederholt wird wie es mit
PHP:
$template->assign_block_vars('catrow.forumrow', array(
'ROW_COLOR' => '#' . $row_color,
'ROW_CLASS' => $row_class,
aufgerufen wurde und beide Blöcke ihrerseits ersetzten ihre Variablen(die bei jeden Durchlauf einen anderen Wert haben können).
(Es können beliebig viele Blöcke ineinander verschachtelt werden...)
Die Funktion "assign_block_vars" speichert die Daten dann in ein Array das in allen Belangen dynamisch ist.
Der Kommentar zu dem Array:
PHP:
// variable that holds all the data we'll be substituting into
// the compiled templates.
// ...
// This will end up being a multi-dimensional array like this:
// _tpldata[block.][iteration#][child.][iteration#][child2.][iteration#][variablename] == value
// if it's a root-level variable, it'll be like this:
//_tpldata['.'][0][varname] == value
ich weiß nicht inwieweit du mit PHP in Berührung gekommen bist, aber verstehen wirst du es ja

ich hoffe das hilft zum Verständnis
Alex