Seite 1 von 1

kniffliges Problem: Posten aber nicht Lesen dürfen!

Verfasst: 04.10.2006 10:59
von BlindGuard666
Tach!

Habe hier ein Problem. Es geht darum, dass meine User (die sich in einer bestimmten Gruppe befinden), in einem Teil des Forums etwas schreiben können (also einen neuen Thread eröffnen dürfen). Aber die anderen Threads nicht sehen sollen.

Also:
- neuer Thread: JA
- eigenen Thread lesen: wenn möglich JA, aber nicht zwingend nötig. Also so posten, und dann nicht mehr sehen wäre auch ok.
- andere Threads SEHEN: Von mir aus...Muss aber auch nicht.
- andere Threads LESEN: AUF KEINEN FALL!

Es gibt doch auch Boards, wo man diese Meldung bekommt "dieses Forum ist Zwang-Moderiert, der Mod muss erst dem Beitrag zustimmen bevor er veröffentlicht wird" oder so.
Wäre vllt auch eine Möglichkeit, denn die Mods sollen die Beiträge ja lesen können. Nur die User nicht. Ich habe eine solche Funktion in phpbb aber nicht gefunden. Daher gehe ich aus, dass sie vllt per Mod nachrüstbar ist. Das möchte ich aber eigentlich nicht.

Also geht es irgendwie, dass ich Lesen auf inaktiv stelle und Posten auf aktiv?

Ist ein bisschen kompliziert, aber relativ wichtig (was ist schon nicht wichtig ;-)).

Danke schon mal für eure Ideen,
BlindGuard

Verfasst: 04.10.2006 11:08
von sLaMmEr
Hi, du kannst doch einfach im ACP bei Forumeinstellungen den bestimmten Bereich auswählen, dort auf "erweiterte Einstellungen" klicken und dort einstellen, dass die User nicht lesen dürfen sondern nur schreiben können.

Müsste meiner Meinnug nach gehen...

Verfasst: 04.10.2006 11:41
von gn#36
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.

Verfasst: 04.10.2006 14:39
von BlindGuard666
Aaahhh!

Vielen Dank für die ausführliche Anleitung. Werde damit mal mein Glück versuchen!

@sLaMmEr: Leider geht es wirklich nicht so einfach, denn sobald du dann auf das Forum klickst, kommt die Meldung, dass du nix lesen darfst. Ich will aber, dass er mindestens die Thread-Namen sehen kann.

Aber danke dafür! Ich probiers dann mal aus.

Bye,
BlindGuard

Verfasst: 04.10.2006 17:24
von BlindGuard666
Cool!

Also es hat funktioniert... Das mit dem "unsichtbaren" Antworten brauche ich jetzt sooo direkt nicht.

Da du das aber sooo aus dem Ärmel gezaubert hast, will ich dich gleich mal mit noch einer Frage nerven :roll:
Wie sieht das aus, wenn ich zB dem Autor, des Posts, das Recht geben will, dass er den Post lesen kann (und vllt auch antworten?), andere aber nicht.

Das ist eine schwierigere Angelegenheit, oder? Weil dann müsste man sich ja über die gesetzen Rechte hinwegsetzen. Oder geht das vllt auch mit einem gekonnten Einzeiler an der richtigen Stelle?

Wäre Toll!

:-D

Verfasst: 06.10.2006 15:21
von IPB_Flüchtling
Ahoi,

schaut mal hier: http://www.phpbbhacks.com/download/2050
This hack allows you to define a permission as "SELF". Basically, this enables administrators to make a forum where only the original poster can read or reply. Moderators and administrators can still read, post, reply ect. to any topic even if the permission for that forum is set to SELF.

Schönes Wochenende!
IPB_Flüchtling

Verfasst: 07.10.2006 10:46
von BlindGuard666
Häh??

Also irgendwie bin ich glaub ich zu blöd dafür... Ich habe diese phpbbhacks Seite noch nie verstanden. Ich bin zwar nicht grad neu im Internet.. Aber wo zum Teufel komm ich dann an diese Datei ran???

Also ich finde keinen Download-Button. Nur diese komischen Bookmark-Save Dinger die keine Sau braucht..

Also bitte! Erklärts mir! (Das gibt's doch nicht... Das ist die erst Seite wo ich nicht verstehe, wie man da navigieren soll. Wie schlecht kann man denn sowas machen? Oder kann man die Datei nicht runterladen?)

:edit: hat sich erledigt.. Zu der Datei gibt's einfach keinen Link... Aber ich habe mir da was überlegt, weiß nur nicht genau, wie ich das umsetzten soll...

Könnte man nicht einfach eine weitere "IF Username!=ThreadStarter Then (hier der Block, dass Access Denied)" Abfrage einbauen? Dann würde das doch genau das machen, was ich will, oder?

Leider komme ich mit den SQL/PHP Variablen nicht ganz so zurecht. Weiß also jemand wie man das macht? (Wegen aktueller UserID mit UserID des ersten Posts vergleichen).

Bye,
BlindGuard

Verfasst: 07.10.2006 14:40
von IPB_Flüchtling
Ahoi,

da muss irgendetwas auf der phpbbhacks-Seite schief gelaufen sein. Hier findest Du den Mod ebenfalls:

http://home.twin.at/wolfgang/self_auth_0.9.4em_217.zip

LG, IPB_Flüchtling