Wofür ihr ihn nutzen wollt, bleibt eurer Phantasie überlassen. Ich werde hier ein allgemeines Beispiel geben, sowie den konkreten Anwendungsfall, aus dem die Idee entstanden ist beschreiben.
Was macht der CodeSchnipsel?
Er zählt für jede Kategorie die Anzahl der darin(sichtbaren) Foren und stellt diese Anzahl als Template-Variable zur Nutzung in der templates/DEIN_TEMPLATE/index_body.tpl zur Verfügung. Außerdem wird noch ein Template-Switch erzeugt, der innerhalb der bereits vorhandenen forumrow-Schleife genutzt werden kann, um im jeweils ersten Forum jeder Kategorie noch etwas Spezielles einzufügen.
Also dann, hier ist der ...
Code: Alles auswählen
##############################################################
## Code-Snippet: Anzahl Foren pro Kategorie
## Snippet Autor: mad-manne < phpbb@mad-manne.de > (Manfred Hoffmann) http://phpbb.mad-manne.de
## -------------------- Snippet-Beschreibung --------------------
## Dieser Code-Schnipsel ermittelt die Anzahl der sichtbaren Foren pro Kategorie,
## welche sich dann für weitere Zwecke in der index_body.tpl nutzen lässt!
##
## --> Ausserdem hat man noch einen zusätzlichen Template-switch in der index_body.tpl
## zur Verfügung, mit dem man HTML einschliessen kann, welches nur beim ersten
## Forum innerhalb jeder Kategorie auftauchen soll ...
## -------------------- Snippet-Beschreibung --------------------
##
## Zu editierende Dateien: 2
## index.php
## templates/DEIN_TEMPLATE/index_body.tpl
##
## License: http://opensource.org/licenses/gpl-license.php GNU General Public License v2
##############################################################
## Bevor du diesen Code-Schnipsel benutzt, solltest du ein Backup aller beteiligten Dateien erstellen!
##############################################################
#
#-----[ ÖFFNE ]------------------------------------------
#
index.php
#
#-----[ FINDE ]------------------------------------------
#
$cat_id = $category_rows[$i]['cat_id'];
#
#-----[ DANACH, FÜGE EIN ]------------------------------------------
#
$forums_in_cat = 0;
#
#-----[ FINDE ]------------------------------------------
#
$display_forums = true;
#
#-----[ DANACH, FÜGE EIN ]------------------------------------------
#
$forums_in_cat++;
#
#-----[ FINDE ]------------------------------------------
#
'CAT_ID' => $cat_id,
#
#-----[ DANACH, FÜGE EIN ]------------------------------------------
#
'FORUMS_IN_CAT' => $forums_in_cat,
#
#-----[ FINDE ]------------------------------------------
#
if ( $viewcat == $cat_id || $viewcat == -1 )
#
#-----[ DAVOR, FÜGE EIN ]------------------------------------------
#
$forums_in_cat = 0;
#
#-----[ FINDE ]------------------------------------------
#
'U_VIEWFORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"))
);
#
#-----[ DANACH, FÜGE EIN ]------------------------------------------
#
$forums_in_cat++;
if ( $forums_in_cat == 1 )
{
$template->assign_block_vars('catrow.forumrow.switch_first_forum_in_cat',array() );
}
#
#-----[ ÖFFNE ]------------------------------------------
#
templates/DEIN_TEMPLATE/index_body.tpl
#
#-----[ ZWISCHEN DIESEN SWITCHES ]------------------------------------------
#
<!-- BEGIN catrow -->
...
<!-- END catrow -->
#
#-----[ AN GEWÜNSCHTER STELLE EINSETZEN ]------------------------------------------
#
{catrow.FORUMS_IN_CAT}
#
#-----[ ZWISCHEN DIESEN SWITCHES ]------------------------------------------
#
<!-- BEGIN forumrow -->
...
<!-- END forumrow -->
# #
#========== ZUSATZ-OPTION Switch für erstes Forum pro Kategorie ==========#
# #
#
#-----[ FOLGENDE SWITCHES UM DIE GEWÜNSCHTE STELLE EINSETZEN ]------------------------------------------
#
<!-- BEGIN switch_first_forum_in_cat -->
...
<!-- END switch_first_forum_in_cat -->
#
#-----[ SPEICHERN/SCHLIESSEN ALLER DATEIEN ]------------------------------------------
#
# EdS
Beispiel 1:
Nehmen wir an, ihr wollt in jeder Kategorie-Überschrift die Anzahl der darin befindlichen Foren anzeigen, dann könntet ihr das nun so machen.
Code: Alles auswählen
#
#-----[ ÖFFNE ]------------------------------------------
#
templates/DEIN_TEMPLATE/index_body.tpl
#
#-----[ FINDE ]------------------------------------------
#
<td class="catLeft" colspan="2" height="28"><span class="cattitle"><a href="{catrow.U_VIEWCAT}" class="cattitle">{catrow.CAT_DESC}</a></span></td>
#
#-----[ IN DIESER ZEILE, FINDE ]------------------------------------------
#
</a></span>
#
#
#-----[ IN DIESER ZEILE ... DANACH, FÜGE EIN ]------------------------------------------
#
<span class="gensmall">Foren in dieser Kategorie: {catrow.FORUMS_IN_CAT}</span>
Hier am besten nur weiterlesen, falls halbwegs brauchbare Kenntnisse in HTML im Allgemeinen sowie in der Nutzung von TABLE-Tags im Besonderen vorhanden sind. Ansonsten kann ich für evtl. auftretende Schwindelgefühle nicht verantwortlich gemacht werden
Im konkreten Fall, ging es darum bei den Zeilen der Foren jeweils rechts und links noch einen speziellen Rand anzuzeigen, der mittels einer zusätzlichen Tabellenspalte mit entsprechendem rowspan-TAG gelöst werden sollte. Dafür war es aber eben nicht nur nötig, die variable Anzahl der Zeilen(Foren) pro Kategorie zu ermitteln, sondern zusätzlich musste auch noch sichergestellt werden, dass diese zusätzlichen "rowspanned" Tabellenzellen, nur einmal und zwar jeweils in der ersten Zeile pro Kategorie erscheinen. Dazu wird auch noch ein zusätzlicher Template-Switch erzeugt, der dann innerhalb der forumrow-Schleife genutzt werden kann.
Das könnte dann also so aussehen ...
Code: Alles auswählen
<!-- BEGIN forumrow -->
<tr>
<!-- BEGIN switch_first_forum_in_cat -->
<td rowspan="{catrow.FORUMS_IN_CAT}">linker Rand hier</td>
<!-- END switch_first_forum_in_cat -->
<td class="row1" align="center" valign="middle" height="50"><img src="{catrow.forumrow.FORUM_FOLDER_IMG}" width="46" height="25" alt="{catrow.forumrow.L_FORUM_FOLDER_ALT}" title="{catrow.forumrow.L_FORUM_FOLDER_ALT}" /></td>
<td class="row1" width="100%" height="50"><span class="forumlink"> <a href="{catrow.forumrow.U_VIEWFORUM}" class="forumlink">{catrow.forumrow.FORUM_NAME}</a><br />
</span> <span class="genmed">{catrow.forumrow.FORUM_DESC}<br />
</span><span class="gensmall">{catrow.forumrow.L_MODERATOR} {catrow.forumrow.MODERATORS}</span></td>
<td class="row2" align="center" valign="middle" height="50"><span class="gensmall">{catrow.forumrow.TOPICS}</span></td>
<td class="row2" align="center" valign="middle" height="50"><span class="gensmall">{catrow.forumrow.POSTS}</span></td>
<td class="row2" align="center" valign="middle" height="50" nowrap="nowrap"> <span class="gensmall">{catrow.forumrow.LAST_POST}</span></td>
<!-- BEGIN switch_first_forum_in_cat -->
<td rowspan="{catrow.FORUMS_IN_CAT}">rechter Rand hier</td>
<!-- END switch_first_forum_in_cat -->
</tr>
<!-- END forumrow -->
Viel Spass damit,
Manne.