Seite 1 von 3

Confirmation Topic /edit

Verfasst: 21.08.2006 16:51
von DreamPromise
Moin moin

ich hab bei mir diesen MOD eingebaut der auch super funktioniert.
Leider können nun keine Gäste mehr ein Forum betreten.
Es kommt folgende Meldung:
Verzeihung!

Gäste haben keine Rechte, ein Forum zu betreten, welches ein Bestätigung Topic enthält!
Bitte registriere Dich oder melde Dich an, um dieses Forum zu bestätigen und/oder zu betreten.
Aber Gäste sollen die einzelnen Beiträge lesen können.
Wo muß man denn was ändern damit diese Meldung nicht mehr für Gäste kommt ???


/edit
Mir ist auch aufgefallen das beim Klick auf "Unbeantwortete Beiträge" folgende Meldung kommt:
Could not obtain search results

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

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 forum_topics t, forum_forums f, forum_users u, forum_posts p, forum_posts p2, forum_users u2 WHERE t.topic_id IN (, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ) AND t.topic_poster = u.user_id AND f.forum_id = t.forum_id AND p.post_id = t.topic_first_post_id AND p2.post_id = t.topic_last_post_id AND u2.user_id = p2.poster_id ORDER BY p2.post_time DESC LIMIT 0, 10
Auch wenn man in einem Profil eines Users auf "Alle Beiträge von XXXXX anzeigen" klickt kommt:
Could not obtain search results

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' , , , , , , , , , ) AND pt.post_id = p.post_id AND f

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 forum_forums f, forum_topics t, forum_users u, forum_posts p, forum_posts_text pt WHERE p.post_id IN (, , , , , , , , , , ) AND pt.post_id = p.post_id AND f.forum_id = p.forum_id AND p.topic_id = t.topic_id AND p.poster_id = u.user_id ORDER BY p.post_time DESC LIMIT 0, 10

Line : 918
File : search.php
Hier mal die search.php
DP

Verfasst: 22.08.2006 19:40
von DreamPromise
Moin moin

keine eine Idee ???

DP

Verfasst: 23.08.2006 21:23
von DreamPromise
Nochmal schieb

DP

Verfasst: 23.08.2006 22:08
von oxpus
1. Der MOD soll verhindern, daß jemand, der nicht bestätigt, ein Forum betritt. Und das konsequent.
Da Gäste nun aber nicht bestätigen können, ist Ihnen auch das betreffende Forum verwehrt.

2. Suche mal in der search.php nach

Code: Alles auswählen

		else if ( $search_id == 'unanswered' )
		{
			if ( $auth_sql != '' )
			{
				$sql = "SELECT t.topic_id, f.forum_id
					FROM " . TOPICS_TABLE . "  t, " . FORUMS_TABLE . " f
					WHERE t.topic_replies = 0
						AND t.forum_id = f.forum_id
						AND t.topic_moved_id = 0
						AND $auth_sql";
			}
			else
			{
				$sql = "SELECT topic_id, forum_id
					FROM " . TOPICS_TABLE . "
					WHERE topic_replies = 0
						AND topic_moved_id = 0";
			}

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

			$search_ids = array();
			while( $row = $db->sql_fetchrow($result) )
			{
				$forum_id = $row['forum_id'];
						if (!$existing_confirmations[$forum_id] ||
						($existing_confirmations[$forum_id] && $user_confirmations[$forum_id]) ||
						$userdata['user_level'] == ADMIN ||
						$userdata['user_level'] == MOD)
						{
							$search_ids[] = $row['post_id'];
						}
			}
			$db->sql_freeresult($result);
Die Zeile

Code: Alles auswählen

	$search_ids[] = $row['post_id'];
muss so lauten:

Code: Alles auswählen

	$search_ids[] = $row['topic_id'];
Und im 2. Fall (bei Deiner 2. Fehlermeldung) wäre "topic_id" durch "post_id" zu ersetzen.
Ist direkt vor diesem Code-Block zu finden.
Also aus

Code: Alles auswählen

	$search_ids[] = $row['topic_id'];
wird dann

Code: Alles auswählen

	$search_ids[] = $row['post_id'];

Verfasst: 24.08.2006 18:45
von DreamPromise
Moin moin

also die Fehlermeldungen sind nun weg...1000 Dank dafür.

Was aber ärgerlich ist , ist die Tatsache das nun keine Gäste mehr in das Forum kommen da sie ja nichts lesen können.

Ich hatte diese "Confirmation Topic"-MOD eingebaut weil ich die Regeln geändert hatte.
Ich wollte damit sicher gehen das ALLE die neuen Regeln lesen und sich daran halten sollen.

Gibts denn eine andere Lösung um einmalig was zu Bestätigen und nur dann kann man wieder was posten ????
Das soll natürlich nur für Members gelten da Gäste ja eh nicht posten können...ist ja so eingestellt.

DP

Verfasst: 24.08.2006 20:46
von oxpus
Dafür müsste ich einiges am MOD umbauen...

Verfasst: 25.08.2006 21:49
von DreamPromise
Moin moin

wäre denn der Aufwand groß .. sprich: Für dich machbar ?
Ich denke hier wären einige denen das interessieren würde.

DP

Verfasst: 25.08.2006 22:13
von oxpus
Sagen wir es mal so:

1. Klar wäre das machbar, ich habe es schliesslich so eingerichtet.
2. Das wäre von Hinten durch die Brust ins Auge, da die Funktion, mühsam erstellt, nun "nur" für Gäste komplett umgekehrt/umgangen werden soll.
3. Ja, es wäre aufwendig, da der MOD hierauf explizit angepasst werden müsste. Und das in seinen Kernelementen.
4. Ich kann mir nicht vorstellen, daß genau diese Funktion von vielen gewünscht wird, ist es doch schliesslich die Kernaufgabe des MODs, User ohne Bestätigung des Textes den Zugang zum Forum explizit zu verwehren. Und erst recht eben Gästen.
5. Wenn also ein User, ein registrierter User, wissen will, was im Forum vor sich geht, meldet er sich ab, geht ins Forum und entscheidet dann über die Zustimmung oder eben nicht ;)

...

Verfasst: 26.08.2006 08:57
von DreamPromise
Moin moin

wie kann man denn dann erreichen das alle die die Posten dürfen (bei mir eh nur Member) nur EINMALIG etwas bestätigen müßen bevor sie wieder posten dürfen ??

Gibts da was ???

DP

Verfasst: 26.08.2006 09:21
von oxpus
Ja genau das macht doch mein MOD :roll: