Point System Frage

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
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
Kewwwin

Point System Frage

Beitrag von Kewwwin »

HAllo,

ich habe das Point System installiert und dort gebe ich 15 Punkte pro Antwort und 35 Punkte pro Thema her. Da es auch einen Off-Topic Bereich bei uns gibt, in dem die Punkte nicht gezählt werden.

Jetzt ist ja mit in dem Mod noch diese Datei dabei:

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path='./';
include($phpbb_root_path.'extension.inc');
include($phpbb_root_path.'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//

if (!$userdata['session_logged_in'])
{
	header('Location: ' . append_sid("login.$phpEx?redirect=update_user_points.$phpEx", true));
}

if ($userdata['user_level'] != ADMIN)
{
	message_die(GENERAL_MESSAGE, $lang['Not_Authorised']);
}

$sql = "SELECT user_id 
	FROM " . USERS_TABLE . " 
	WHERE user_id != " . ANONYMOUS;
if (!$result = $db->sql_query($sql))
{
	message_die(GENERAL_ERROR, 'Could not!', '', __LINE__, __FILE__, $sql);
}

$users = $db->sql_fetchrowset($result);
$total_users = count($users);

for($i = 0; $i < $total_users; $i++)
{
	$user_id = $users[$i]['user_id'];

	$sql = "SELECT COUNT(*) as all_posts 
		FROM " . POSTS_TABLE . " 
		WHERE poster_id = $user_id";
	if (!$result = $db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, 'Could not!', '', __LINE__, __FILE__, $sql);
	}

	$all_posts = $db->sql_fetchrow($result);

	$sql = "SELECT COUNT(*) as total_topics 
		FROM " . TOPICS_TABLE . " 
		WHERE topic_poster = $user_id";
	if (!$result = $db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, 'Could not!', '', __LINE__, __FILE__, $sql);
	}

	$total_topics = $db->sql_fetchrow($result);

	$total_posts = $all_posts['all_posts'] - $total_topics['total_topics'];
	$total_topics = $total_topics['total_topics'];

	$points = 0;
	$points = $points + ($total_posts * $board_config['points_reply']);
	$points = $points + ($total_topics * $board_config['points_topic']);

	$sql = "UPDATE " . USERS_TABLE . " 
		SET user_points = $points 
		WHERE user_id = $user_id";
	if (!$db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, 'Could not!', '', __LINE__, __FILE__, $sql);
	}

}

message_die(GENERAL_MESSAGE, 'Punkte erfolgreich geupdatet.');

?>
Mit dieser Datei werden die Punkte in der Datenbank aktualisert. Das heißt es werden die Punkte auf 0 gesetzt, alle Posts des Users werden gesucht und dann die jeweiligen Punkte gutgeschrieben. Dabei wird leider auch das Off-Topic Forum wieder mitgezählt, was ich ja nicht will. Wie schaffe ich es, dass dieses Forum nicht mitgezählt werden?

Wenn es an der Gesantbeitragszahl des USers liegt, wie bekomme ich die Beitragszahl auf die korrekte Zahl gestellt (ohne dem Off-Topic).

Danke für jegliche Hilfe
Benutzeravatar
TheRenegate
Mitglied
Beiträge: 367
Registriert: 07.06.2006 12:01
Wohnort: Ansbach
Kontaktdaten:

Beitrag von TheRenegate »

Änder das ganze mal so:

$sql = "SELECT COUNT(*) as all_posts
FROM " . POSTS_TABLE . "
WHERE poster_id = $user_id AND forum_id = '234324'";

Und bei den Themen natürlich auch:

$sql = "SELECT COUNT(*) as total_topics
FROM " . TOPICS_TABLE . "
WHERE topic_poster = $user_id AND forum_id = '234324'";
Die 234324 musste natürlich auf die ID des Off Topic Forums ändern.
Könnte funktionieren.
Kewwwin

Beitrag von Kewwwin »

Nein das ist genauj falsch rum. Da wird NUR dieses Forum mit Punkten gezählt :(

Es soll ja weder Beiträge noch Punkte gezählt werden
Antworten

Zurück zu „phpBB 2.0: Mod Support“