Also zuerst erzeugst Du in der
phpbb_config eine neue Zeile mit dem Namen
closed_forums. Und als Wert fügst Du die ids aller Foren ein, bei denen es so sein soll, das neue Themen nur geöffnet werden können, wenn alle anderen geschlossen sind. Die ids werden getrennt mit Kommata. Beispiel: 12,24,51
Dann nimmst Du den folgenden Codeblock
Code: Alles auswählen
if ( in_array($forum_id, explode(',', $board_config['closed_forums'])) )
{
// Existiert mindestens 1 offenes Thema in diesem Forum?
$sql = "SELECT topic_id FROM " . TOPICS_TABLE . " WHERE forum_id = $forum_id AND topic_status = 0 LIMIT 1";
if ( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Konnte Daten über offene Topics im Forum nicht ermitteln', '', __FILE__, __LINE__, $sql);
}
if ( !$db->sql_numrows($result) )
{
// Keine Treffer, also wird das Thema-Button angezeigt
$template->assign_block_vars('switch_show_button', array());
}
}
else
{
$template->assign_block_vars('switch_show_button', array());
}
und fügst ihn im
viewforum.php unter
ein. Ebenso fügst Du denselben Codeblock im
viewtopic.php unter
ein. Nun müssen wir noch die Templates anpassen.
Im
viewforum_body.tpl suche nach (das nun bezieht sich auf subSilver)
Code: Alles auswählen
<td align="left" valign="middle" width="50"><a href="{U_POST_NEW_TOPIC}"><img src="{POST_IMG}" border="0" alt="{L_POST_NEW_TOPIC}" /></a></td>
und ersetze diese Zeile durch
Code: Alles auswählen
<td align="left" valign="middle" width="50">
<!-- BEGIN switch_show_button -->
<a href="{U_POST_NEW_TOPIC}"><img src="{POST_IMG}" border="0" alt="{L_POST_NEW_TOPIC}" /></a>
<!-- END switch_show_button -->
</td>
Im
viewtopic_body.tpl suche nach
Code: Alles auswählen
<td align="left" valign="bottom" nowrap="nowrap"><span class="nav"><a href="{U_POST_NEW_TOPIC}"><img src="{POST_IMG}" border="0" alt="{L_POST_NEW_TOPIC}" align="middle" /></a> <a href="{U_POST_REPLY_TOPIC}"><img src="{REPLY_IMG}" border="0" alt="{L_POST_REPLY_TOPIC}" align="middle" /></a></span></td>
ersetze es durch
Code: Alles auswählen
<td align="left" valign="bottom" nowrap="nowrap"><span class="nav">
<!-- BEGIN switch_show_button -->
<a href="{U_POST_NEW_TOPIC}"><img src="{POST_IMG}" border="0" alt="{L_POST_NEW_TOPIC}" align="middle" /></a>
<!-- END switch_show_button -->
<a href="{U_POST_REPLY_TOPIC}"><img src="{REPLY_IMG}" border="0" alt="{L_POST_REPLY_TOPIC}" align="middle" /></a></span></td>
Das wärs. Fehlt nur noch die Sperre bei neuen Postings. Im
posting.php suche nach
Code: Alles auswählen
case 'newtopic':
if ( empty($forum_id) )
{
message_die(GENERAL_MESSAGE, $lang['Forum_not_exist']);
}
darunter füge ein
Code: Alles auswählen
if ( in_array($forum_id, explode(',', $board_config['closed_forums'])) )
{
// Existiert mindestens 1 offenes Thema in diesem Forum?
$sql = "SELECT topic_id FROM " . TOPICS_TABLE . " WHERE forum_id = $forum_id AND topic_status = 0 LIMIT 1";
if ( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Konnte Daten über offene Topics im Forum nicht ermitteln', '', __FILE__, __LINE__, $sql);
}
if ( $db->sql_numrows($result) )
{
// Keine Treffer, also wird das Thema-Button angezeigt
message_die(GENERAL_ERROR, 'Du darfst nur neue Themen starten, wenn alle anderen Themen dieses Forums geschlossen sind.');
}
}
Diese Modifikation ist ungetestet. Will heissen, ich habe es aus dem Kopf programmiert. Sollte jedoch so wie es da steht funktionieren.
Grüße,
Tekin