Thank Post Mod 0.4.0

Hier kommen die Support Anfragen für phpBB 3.0.x MODs hinein.
Antworten
AbiDez
Beiträge: 11
Registriert: 15. Jul 2008 21:23
Hat sich bedankt: 0
Danksagung erhalten: 0
Kontaktdaten:

Thank Post Mod 0.4.0

Beitrag von AbiDez »

Deine phpBB Version: 3.2.
Typ Deines phpBB Forums: Standard phpBB (auch Vanilla (phpbb2) oder Olympus (phpBB3) genannt)
MODs installiert: Ja
Dein Wissensstand: Einsteiger
Link zu Deinem Forum: http://www.pronoobz.org

PHP Version: PHP Version 5.2.0-8+etch7
MySQL Version: MySQL(i) 5.0.32-Debian_7etch3

Was hast Du gemacht, bevor das Problem aufgetreten ist?
Mich bedankt

Was hast Du bereits versucht um das Problem zu lösen?
Ich habe den Google Adsense [Bot] deaktiviert....

Fehlerbeschreibung und Nachricht
Hallo Leute,
ich mal wieder mit einem diesmal kleinen problem......
Hide & ThankPostMod laufen an sich super, nur ein kleines problem bleibt, das ich zwar lösen konnte
aber nicht zu meiner zufriedenheit.
Es geht um den Google Adsense [Bot] , immer wenn ich mich bedanke, dann bedankt sich der Google Adsense [Bot] auch,
und wenn ich meinen Dank zurücknehme, dann verschwindet auch der Dank vom Google Adsense [Bot]......
Ich habe auch den Google & Yahoo Bot im Forum, die aber machen sowas nicht, und alle sind in der Gruppe Bots,
und Userberechtigungen stehen alle auf NIE ....... Verstehe das nicht ganz, in der Routine vom ThankpostMod steht doch drinn
das Bots sich nicht bedanken können ? ... Woran kann das liegen ?

Grüße AbiDez
Bild
Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 792
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 22 Mal
Danksagung erhalten: 6 Mal

Re: Thank Post Mod

Beitrag von Mahony »

Hallo
Wegen dem BOT - Problem Versuche mal folgendes
In der Datei thanks.php

Finde

Code: Alles auswählen

if ($thankers[$key]['post_id'] == $post_id && $thankers[$key]['user_id'] != $poster_id)
Ersetze mit

Code: Alles auswählen

if ($thankers[$key]['post_id'] == $post_id && $thankers[$key]['user_id'] != $poster_id && ($thankers[$key]['user_id'] == 2 || $thankers[$key]['user_id'] > 52))
Finde

Code: Alles auswählen

function insert_thanks($post_id, $user_id)
{
   global $db, $users;
   if ($user_id != ANONYMOUS)
Ersetze mit

Code: Alles auswählen

function insert_thanks($post_id, $user_id)
{
   global $db, $users;
   if ($user_id != ANONYMOUS && ($user_id == 2 || $user_id > 52))


Grüße: Mahony
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
Klug ist, wer nur die Hälfte von dem glaubt, was er hört. Weise ist, wer erkennt, welche Hälfte richtig ist.

Bild
AbiDez
Beiträge: 11
Registriert: 15. Jul 2008 21:23
Hat sich bedankt: 0
Danksagung erhalten: 0
Kontaktdaten:

Re: Thank Post Mod

Beitrag von AbiDez »

Hallo Mahony, ich wollte Dir nur mitteilen nachdem wir das jetzt ein paar Days testen konnten,
das sich der Google AdSense (Bot) seitdem nicht mehr bedankt hat (Und Online ist der immer)....
Würde von daher sagen es hat geklappt......
Habe noch ne kleinigkeit geändert wegen dem Danke zurücknehmen (Am liebsten wäre mir wie Unhide ab Mod aufwärts Danke zurücknehmen)
Habe die Routine einfach deaktiviert so

Code: Alles auswählen

// remove a user's thanks
function delete_thanks($post_id, $user_id)
{
	global $db, $user, $users;
	if ($user_id != ANONYMOUS)
	{
		$sql = 'SELECT *
			FROM ' . THANKS_TABLE . "
			WHERE post_id = $post_id AND user_id = $user_id
			LIMIT 0"; (Limit war vorher = 1)
Bisher klappt alles....Nur kann man halt seinen Danke nicht mehr zurücknehmen, so haben wir einen Überblick über die Leecher (Abuser = Konkurenz = BoardHater)

Nochmal Danke für deine Hilfe.....Schade das du mich nicht in unserem Forum unterstützen kannst, bin ja noch newbee und kann nur manipulieren.....
Aber melde mich immer mal bei Dir wenn ich Help brauche, du scheinst ja echt was drauf zu haben.....RESPECT.....
Bist bei uns immer ein gern gesehener Gast....

Grüße AbiDez
Bild
Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 792
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 22 Mal
Danksagung erhalten: 6 Mal

Re: Thank Post Mod

Beitrag von Mahony »

Hallo
Mach mal deine Änderung rückgängig.

Um zu erreichen dass nur Administratoren und globale Moderatoren Bedankungen entfernen dürfen, musst du folgendes tun

Suche in der thanks.php

Code: Alles auswählen

// remove a user's thanks
function delete_thanks($post_id, $user_id)
{
	global $db, $user, $users;
	if ($user_id != ANONYMOUS)
	{
		$sql = 'SELECT *
			FROM ' . THANKS_TABLE . "
			WHERE post_id = $post_id AND user_id = $user_id
			LIMIT 1";
		$result = $db->sql_query($sql);
		$row = $db->sql_fetchrow($result);
		$db->sql_freeresult($result);

		$to_id = request_var('to_id', 0);
		if (!empty($row) && !empty($to_id))
		{
			$sql = "DELETE FROM " . THANKS_TABLE . "
				WHERE post_id = $post_id AND user_id = " . $user->data['user_id'];
			$db->sql_query($sql);
			$users[$user_id]['thanks_give'] -= 1;
			$users[$to_id]['thanks_receive'] -= 1;
			$sql1 = 'UPDATE ' . USERS_TABLE . ' 
				SET user_thanked_others = ' . $users[$user_id]['thanks_give'] . "
				WHERE user_id = $user_id";
			$sql3 = 'UPDATE ' . USERS_TABLE . ' 
				SET user_thanked = ' . $users[$to_id]['thanks_receive'] . "
				WHERE user_id = $to_id";
			$db->sql_query($sql1);
			$db->sql_query($sql3);
		}
	}
}
Ersetze mit

Code: Alles auswählen

// remove a user's thanks
function delete_thanks($post_id, $user_id)
{
	global $db, $user, $users, $auth;
	if ($auth->acl_get('a_') || $auth->acl_get('m_'))
{
		$sql = 'SELECT *
			FROM ' . THANKS_TABLE . "
			WHERE post_id = $post_id AND user_id = $user_id
			LIMIT 1";
		$result = $db->sql_query($sql);
		$row = $db->sql_fetchrow($result);
		$db->sql_freeresult($result);

		$to_id = request_var('to_id', 0);
		if (!empty($row) && !empty($to_id))
		{
			$sql = "DELETE FROM " . THANKS_TABLE . "
				WHERE post_id = $post_id AND user_id = " . $user->data['user_id'];
			$db->sql_query($sql);
			$users[$user_id]['thanks_give'] -= 1;
			$users[$to_id]['thanks_receive'] -= 1;
			$sql1 = 'UPDATE ' . USERS_TABLE . ' 
				SET user_thanked_others = ' . $users[$user_id]['thanks_give'] . "
				WHERE user_id = $user_id";
			$sql3 = 'UPDATE ' . USERS_TABLE . ' 
				SET user_thanked = ' . $users[$to_id]['thanks_receive'] . "
				WHERE user_id = $to_id";
			$db->sql_query($sql1);
			$db->sql_query($sql3);
		}
	}
	else
    {
	trigger_error('Du bist nicht berechtigt, eine Bedankung zu entfernen!', E_USER_WARNING);
    }
}
Normale User bekommen dann bei Klick auf den REMOVETHANKS-Button die Meldung
Du bist nicht berechtigt, eine Bedankung zu entfernen!
Grüße: Mahony
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
Klug ist, wer nur die Hälfte von dem glaubt, was er hört. Weise ist, wer erkennt, welche Hälfte richtig ist.

Bild
AbiDez
Beiträge: 11
Registriert: 15. Jul 2008 21:23
Hat sich bedankt: 0
Danksagung erhalten: 0
Kontaktdaten:

Re: Thank Post Mod

Beitrag von AbiDez »

Hallo Mahony,
habe die Changes rückgängig gemacht......Deine Routine eingebaut, sie läuft, nur können Moderatoren
ihr Danke nicht zurücknehmen, nur Admins, ich denke er nimmt

Code: Alles auswählen

$auth->acl_get('m_')
hinter

Code: Alles auswählen

$auth->acl_get('a_')
nicht an,habe den

Code: Alles auswählen

$auth->acl_get('a_')
entfernt und nur den

Code: Alles auswählen

$auth->acl_get('m_')
stehen gelassen.....
Admins können ihr Danke entfernen & Moderatoren auch.....Registrierte User bekommen die Meldung (Du bist nicht berechtigt, eine Bedankung zu entfernen!)
Habe es getestet als Admin / Mod & Registrierte User..Also keine Errors usw. bekommen.Läuft jetzt also.... Läuft also wie es soll...

Hab vielen Dank Mahony.....Grüße AbiDez
Bild
AbiDez
Beiträge: 11
Registriert: 15. Jul 2008 21:23
Hat sich bedankt: 0
Danksagung erhalten: 0
Kontaktdaten:

Re: Thank Post Mod

Beitrag von AbiDez »

Hallo Mahony, es ist ein neues Problem mit dem ThankPostMod aufgetreten, war mir jetzt nicht sicher wegen
neuem Support Ticket, weil das ja eher ein laufendes Thema ist mehr oder weniger.

Aber nun zum Problem,
ein User bedankt sich und sieht den versteckten Inhalt des Posts, er loggt sich aus und geht Offline.
Kurze Zeit später kommt er wieder Online und geht nochmal auf den Post und der versteckte Inhalt ist nicht sichtbar,
obwohl er sich bedankt hat, Danke zurücknehmen ist ja nicht, weil als normaler User kann er das ja nicht.
Wenn er einen AntwortPost erstellt, ist der versteckte Inhalt sichtbar und bleibt auch sichtbar, selbst bei erneutem Logout....
Meine Vermutung, die Bedankos sind nur Temporär gespeichert ? Kann man eine Protokolldatei erstellen ? Kannst Du mir da was empfehlen / helfen ?
Anbei mal den jetzigen modifizierten Stand der Thanks Datei, evtl. interessierts dich ja.

Grüße AbiDez
Dateianhänge
thanks.zip
Die thanks Datei im Zip da php nicht erlaubt ist.
(2.87 KiB) 225-mal heruntergeladen
thanks.zip
Die thanks Datei im Zip da php nicht erlaubt ist.
(2.87 KiB) 225-mal heruntergeladen
Bild
Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 792
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 22 Mal
Danksagung erhalten: 6 Mal

Re: Thank Post Mod

Beitrag von Mahony »

Hallo AbiDez
Da der MOD von geoffreak noch einmal überarbeitet wird, wie man auf phpbb.com lesen kann, und es wahrscheinlich zu umfassenden Änderungen am Code kommen wird, empfehle ich noch etwas zu warten um dann den Hide MOD mit dem neuen MOD kompatibel zu machen.



Grüße: Mahony
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
Klug ist, wer nur die Hälfte von dem glaubt, was er hört. Weise ist, wer erkennt, welche Hälfte richtig ist.

Bild
Antworten