kniffliges Problem: Posten aber nicht Lesen dürfen!

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt um einen neuen Mod zu entwicklen, geht's in phpBB 2.0: Mods in Entwicklung weiter.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
BlindGuard666
Mitglied
Beiträge: 40
Registriert: 05.06.2006 11:32

kniffliges Problem: Posten aber nicht Lesen dürfen!

Beitrag 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
sLaMmEr
Mitglied
Beiträge: 78
Registriert: 01.09.2005 21:43

Beitrag 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...
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
BlindGuard666
Mitglied
Beiträge: 40
Registriert: 05.06.2006 11:32

Beitrag 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
BlindGuard666
Mitglied
Beiträge: 40
Registriert: 05.06.2006 11:32

Beitrag 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
IPB_Flüchtling
Mitglied
Beiträge: 1862
Registriert: 23.12.2004 22:46

Beitrag 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
BlindGuard666
Mitglied
Beiträge: 40
Registriert: 05.06.2006 11:32

Beitrag 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
IPB_Flüchtling
Mitglied
Beiträge: 1862
Registriert: 23.12.2004 22:46

Beitrag 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
Antworten

Zurück zu „phpBB 2.0: Mod Suche/Anfragen“