Seite 1 von 1

Funktion aus User Achievements Mod

Verfasst: 02.05.2012 19:32
von DerTheo
Ich habe ein Frage zu einer Funktion aus dem user_achievements_0.0.2

Code: Alles auswählen

function has_created_topic($id)
{

		global $db;

		$sql = 'SELECT COUNT(topic_id) AS total_topics 
				FROM '. TOPICS_TABLE .' 
				WHERE topic_poster ='.$id;
		$result = $db->sql_query($sql);
		$total_topics = $db->sql_fetchfield('total_topics');
		$db->sql_freeresult($result);
		return $total_topics;
}
Diese Funktion gibt die erstellten Themen des Benutzers aus, aber anscheined rechnet diese auch Themen Foren mit, in denen der Postcpunter abgestellt ist.

Ich habe den Cache geleert, alles aktualisert, Statistik, Beitragszähler und Markierungen der eigenen Beiträge resynchronisieren.

Wie kann ich diese Funktion Umschreiben, sodass diese nur die Themen in den Foren mitrechnet, in denen der Postcounter aktiv ist?

Re: Funktion aus User Achievements Mod

Verfasst: 03.05.2012 16:24
von Crizzo
Hi,

ob der Betreigszähler in einem Forum erhöht wird oder nicht, hängt nicht von der Foren-Einstellung ab, sondern von der "gruppen/benutzerspezifischen Forenrechten".

In der phpBB3-Tabelle phpbb_acl_options gibt es einen Wert auth_option:f_postcount und auth_option_id: 18. Die f_postcount wird in der Tabelle phpbb_acl_roles_data einer Rolle oder in phpbb_acl_users einem Nutzer zugewiesen. Da müsstest du deine Abfrage noch erweitern, dass vorher geprüft wird, ob der Beitragszähler überhaupt für den Nutzer/Gruppe erhöht wird und dann die Themen und Co zählen lassen.

Grüße

Re: Funktion aus User Achievements Mod

Verfasst: 03.05.2012 18:50
von Miriam
BlackHawk87 hat geschrieben:...Die f_postcount wird in der Tabelle phpbb_acl_roles_data einer Rolle oder in phpbb_acl_users einem Nutzer zugewiesen...
Also bei mir wird die auth_option_id zugewiesen, die für f_postcount in der phpbb_acl_options definiert wurde.
Es spielt auch die Tabelle phpbb_acl_groups eine Rolle... soweit ich es sehen kann..