Thank Post Mod 0.4.0

Hier kommen die Support Anfragen für phpBB 3.0.x MODs hinein.
Benutzeravatar
AbiDez
Beiträge: 11
Registriert: 15. Jul 2008 21:23
Kontaktdaten:

Thank Post Mod 0.4.0

Beitragvon AbiDez » 17. Jul 2008 23:41

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: 749
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal

Re: Thank Post Mod

Beitragvon Mahony » 18. Jul 2008 00:51

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

Benutzeravatar
AbiDez
Beiträge: 11
Registriert: 15. Jul 2008 21:23
Kontaktdaten:

Re: Thank Post Mod

Beitragvon AbiDez » 22. Jul 2008 15:16

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: 749
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal

Re: Thank Post Mod

Beitragvon Mahony » 22. Jul 2008 21:29

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

Benutzeravatar
AbiDez
Beiträge: 11
Registriert: 15. Jul 2008 21:23
Kontaktdaten:

Re: Thank Post Mod

Beitragvon AbiDez » 24. Jul 2008 01:25

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

Benutzeravatar
AbiDez
Beiträge: 11
Registriert: 15. Jul 2008 21:23
Kontaktdaten:

Re: Thank Post Mod

Beitragvon AbiDez » 17. Aug 2008 14:55

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) 17-mal heruntergeladen
thanks.zip
Die thanks Datei im Zip da php nicht erlaubt ist.
(2.87 KiB) 17-mal heruntergeladen
Bild

Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 749
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal

Re: Thank Post Mod

Beitragvon Mahony » 20. Aug 2008 02:03

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


Zurück zu „Support für phpBB 3.0.x MODs“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast