Minimum Postings um Forum zu sehen

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
JaneDoe
Beiträge: 230
Registriert: Sa 16.Jul, 2005 12:18

Minimum Postings um Forum zu sehen

Beitrag von JaneDoe »

Deine phpBB Version: Vanilla phpBB 2.0.18
MODs: Ja
Dein Wissensstand: Grundwissen
Link zu Deinem Forum: [url]http://[/url]

PHP Version:
MySQL Version:


Was hast Du gemacht, bevor das Problem aufgetreten ist?
Den Mod Forum Enter Post Limit
runtergeladen und installliert



Was hast Du bereits versucht um das Problem zu lösen?
Vergeblich versucht die search.php anzupassen



Fehlerbeschreibung und Nachricht


Hallo,
ich habe versucht mit diesem Mod http://www.phpbbhacks.com/download.php?id=3884
eine Minimum Posting-Zugangsbeschränkung für bestimmte Foren einzurichten.

Das klappt auch per Werteingabe im Adminmenü-Foren-editieren.

Wenn man nun also auf das Forum klickt kommt ein Meldung, dass zu wenige
Beiträge geschreiben wurden.

Aber

Der autor hat nicht berücksichtigt, dass ich einfach über die Suche-Ergebnis anzeigen als - Beiträge
die Postings doch angezeigt bekomme.

In der viewforum.php, viewtopic.php, posting.php wird das durch diesen Teil hier verhindert:

Code: Alles auswählen

		if (!($userdata['user_level'] == ADMIN OR $userdata['user_level'] == MOD))
		{
		$sql = "SELECT f.forum_id, f.forum_enter_limit, u.user_posts
			FROM " . FORUMS_TABLE . " f, " . USERS_TABLE . " u
			WHERE user_id = " . $userdata['user_id'];

		if( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not query information', '', __LINE__, __FILE__, $sql);
		}

			while ($row = $db->sql_fetchrow($result))
			{
			$forum_id_limit = $row['forum_id'];
			$forum_enter_limit = $row['forum_enter_limit'];
			$user_posts_limit = $row['user_posts'];

			$error_limit = sprintf($lang['Forum_enter_limit_error'], $forum_enter_limit);

				if ($forum_id == $forum_id_limit AND $user_posts_limit < $forum_enter_limit)
				{
					message_die(GENERAL_ERROR, $error_limit);
				}
			}
		}
forum_enter_limit wird im Adminmenü eingetragen.

Nun finde ich in der search.php keine Stelle wo ich das eingebaut bekomme, damit er die Beiträge für die Foren, wo $user_posts_limit < $forum_enter_limit zutrifft, genauso ausblendet wie z.B ja
die privaten foren zu denen der User kein Zutritt hat.

Ich weiss, viel Geschreibsel, aber ich vermute dass ist relativ banal diesen Teil irgendwie noch in der search.php einzubauen.

Danke für die Aufmerksamkeit ;)
Zuletzt geändert von JaneDoe am Sa 17.Dez, 2005 15:20, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

So könnte es vielleicht klappen:

Code: Alles auswählen

#
#-----[ OPEN ]-----
#
search.php

#
#-----[ FIND ]-----
#
	if ( $search_results != '' )
	{
		if ( $show_results == 'posts' )
		{
			$sql = "SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid  
				FROM " . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " pt 
				WHERE p.post_id IN ($search_results)

#
#-----[ AFTER, ADD ]-----
#
					AND f.forum_enter_limit <= " . $userdata['user_posts'] . "

#
#-----[ FIND ]-----
#
		}
		else
		{
			$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time 
				FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2
				WHERE t.topic_id IN ($search_results) 

#
#-----[ AFTER, ADD ]-----
#
					AND f.forum_enter_limit <= " . $userdata['user_posts'] . "


#
#-----[ SAVE/CLOSE ALL FILES ]-----
#
# EoM
-- Kleinen "Schnitzer" ausgebügelt --
Zuletzt geändert von oxpus am Sa 17.Dez, 2005 23:47, insgesamt 1-mal geändert.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
JaneDoe
Beiträge: 230
Registriert: Sa 16.Jul, 2005 12:18

Beitrag von JaneDoe »

:)
Sehr schön. Mit <= funktioniert es astrein.

Vielen Dank.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Axo ja. Klar. Sorry...
Ich korrigiere das gleich mal...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Welcher MOD ist das genau?
Der obige link bringt mich nur auf die Startseite von phpbbhacks.com :(
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
JaneDoe
Beiträge: 230
Registriert: Sa 16.Jul, 2005 12:18

Beitrag von JaneDoe »

Sorry, hier der richtige Link.
http://www.phpbbhacks.com/download/3884

Und ausser Oxpus Ergänzung müsste da auch noch dieses,

Code: Alles auswählen

# 
#-----[ OPEN ]------------------------------------------ 
# 

postings.php

#
#----[ FIND ]------------------------------------------ 
#

if ( !$is_auth[$is_auth_type] )

#
#----[ BEFORE, ADD ]------------------------------------------ 
#

//
// forum enter limit by emrag
//
		if (!($userdata['user_level'] == ADMIN OR $userdata['user_level'] == MOD))
		{
		$sql = "SELECT f.forum_id, f.forum_enter_limit, u.user_posts
			FROM " . FORUMS_TABLE . " f, " . USERS_TABLE . " u
			WHERE user_id = " . $userdata['user_id'];

		if( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not query information', '', __LINE__, __FILE__, $sql);
		}

			while ($row = $db->sql_fetchrow($result))
			{
			$forum_id_limit = $row['forum_id'];
			$forum_enter_limit = $row['forum_enter_limit'];
			$user_posts_limit = $row['user_posts'];

			$error_limit = sprintf($lang['Forum_enter_limit_error'], $forum_enter_limit);

				if ($forum_id == $forum_id_limit AND $user_posts_limit < $forum_enter_limit)
				{
					message_die(GENERAL_ERROR, $error_limit);
				}
			}
		}
//
// forum enter limit by emrag
//

rein, jedenfalls funktioniert es :).
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

THX
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Antworten