Das reicht fürchte ich nicht, denn hier sind die Lese und Sehberechtigungen quasi Master-Settings. Wenn man eines von beiden nicht darf, hat man keinerlei Zugriff auf das Forum.
Wenn du in der viewforum.php folgende Änderung vornimmst sollte es möglich sein, dass zwar die Threadnamen angezeigt werden, aber der Inhalt nicht gelesen werden kann:
Suche in der viewforum.php
Code: Alles auswählen
//
// Start auth check
//
$is_auth = array();
$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row);
if ( !$is_auth['auth_read'] || !$is_auth['auth_view'] )
{
if ( !$userdata['session_logged_in'] )
{
$redirect = POST_FORUM_URL . "=$forum_id" . ( ( isset($start) ) ? "&start=$start" : '' );
redirect(append_sid("login.$phpEx?redirect=viewforum.$phpEx&$redirect", true));
}
//
// The user is not authed to read this forum ...
//
$message = ( !$is_auth['auth_view'] ) ? $lang['Forum_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']);
message_die(GENERAL_MESSAGE, $message);
}
//
// End of auth check
//
und ersetze es mit
Code: Alles auswählen
//
// Start auth check
//
$is_auth = array();
$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row);
if ( !$is_auth['auth_read'] || !$is_auth['auth_view'] )
{
if ( !$userdata['session_logged_in'] )
{
$redirect = POST_FORUM_URL . "=$forum_id" . ( ( isset($start) ) ? "&start=$start" : '' );
redirect(append_sid("login.$phpEx?redirect=viewforum.$phpEx&$redirect", true));
}
//
// The user is not authed to read this forum ...
//
if(!$is_auth['auth_post'])
{
$message = ( !$is_auth['auth_view'] ) ? $lang['Forum_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']);
message_die(GENERAL_MESSAGE, $message);
}
}
//
// End of auth check
//
Danach musst du im ACP noch das Forum so einstellen, dass Betrachten erlaubt, Lesen verboten(oder nur für Moderatoren erlaubt, oder für spezielle Gruppen), aber Posten erlaubt ist. Zu beachten ist allerdings, dass diese Einstellung in dieser Form zunächst für alle Foren gilt, d.h. alle Foren, in denen betrachten und posten erlaubt, aber lesen verboten ist verhalten sich auf diese Weise, wenn du das nicht möchtest musst du die Erlaubnis zum Posten auch abschalten.
Ist eigentlich keine großartige Codeänderung, aber direkt durch Einstellungen geht es nicht, wie an diesem Code Schnipsel zu sehen ist.
Durch eine ähnliche Änderung in der viewtopic.php kannst du das Antworten erlauben ohne dass der Inhalt des Themas angezeigt wird:
Suche:
Code: Alles auswählen
//
// Start auth check
//
$is_auth = array();
$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_topic_data);
if( !$is_auth['auth_view'] || !$is_auth['auth_read'] )
{
if ( !$userdata['session_logged_in'] )
{
$redirect = ($post_id) ? POST_POST_URL . "=$post_id" : POST_TOPIC_URL . "=$topic_id";
$redirect .= ($start) ? "&start=$start" : '';
redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx&$redirect", true));
}
$message = ( !$is_auth['auth_view'] ) ? $lang['Topic_post_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']);
message_die(GENERAL_MESSAGE, $message);
}
//
// End auth check
//
und ersetze durch:
Code: Alles auswählen
//
// Start auth check
//
$is_auth = array();
$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_topic_data);
if( !$is_auth['auth_view'] || !$is_auth['auth_read'] )
{
if ( !$userdata['session_logged_in'] )
{
$redirect = ($post_id) ? POST_POST_URL . "=$post_id" : POST_TOPIC_URL . "=$topic_id";
$redirect .= ($start) ? "&start=$start" : '';
redirect(append_sid("login.$phpEx?redirect=viewtopic.$phpEx&$redirect", true));
}
if($is_auth['auth_reply'])
{
redirect(append_sid("posting.$phpEx?mode=reply&".POST_TOPIC_URL ."=$topic_id",true));
}
$message = ( !$is_auth['auth_view'] ) ? $lang['Topic_post_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']);
message_die(GENERAL_MESSAGE, $message);
}
//
// End auth check
//
Dadurch wird beim Klick in der Forumsübersicht auf ein Thema der User - sofern er die Erlaubnis zu antworten hat, aber nicht zum Lesen - weitergeleitet zum Bildschirm "Antwort erstellen". Bei mir erschien in diesem Fall auch keine Vorschau auf den bisherigen Verlauf des Themas, d.h. die Antwort kann quasi blind erstellt werden.