YourWBB Merge_Doublepost Hack

MrMind
Titel: Y****** Merge_Doublepost Hack
Version: 1.2
Beschreibung: Hackname: Merge_Doublepost Hack
Autor: MrMind
Version: 1.2
Forenversion: 2.3.x

Zu veränderten Dateien:

  • addreply.php
  • thread.php
  • acp/board.php
  • acp/templates/board_add.htm
  • acp/templates/board_edit.htm


Neue Dateien:

Keine

Installationsanweisung:

merge_setup.php, merge_post.wbb und merge_doublepost.lng in den acp-Ordner hochladen und durch http://ww.deinedomain.de/wbb2/acp/merge_setup.php im Browser öffnen und der Anweisung folgen. Nach erfolgreicher Installation müssen nun alle 3 Dateien wieder vom Server gelöscht werden

Einstellungsmöglichkeiten:

siehe Demo-Link

Funktionalität:

Diese Hack ermöglicht es, dass User Doppelpost erstellen können, jedoch nach dem Absenden und dem Anzeigen des Doppelpost wird ein Hinweis beim Posttopic angezeigt mit der Aufschrift Doppelpost wird automatisch zusammengefügt. Bei einem Refresh oder neuem Laden des Threads wird nun der doppelte Post zu dem ersten Post dazu "addiert". Je nach dem, ob im ACP eingestellt wurde, dass ein weiterer Hinweis im ersten Post darauf hinweisen soll, wird dieser zwischen der Nachricht vom originalen Post und der Nachricht aus dem doppelten Post gehängt (in der Demo sieht man dies). Desweiteren wird die Posttime vom doppelten Post auf den alten Post übertragen und somit als "ungelesen" Deklariert.
Über Foren bearbeiten kann man diese Option forenspezifisch ausschalten lassen.

Copyright:

Copyright liegt bei mir. Der Copyright im Quelltext kann gerne gelöscht werden, dient allerdings dazu, den Code besser zu deuten und zu finden, wenn Probleme auftreten oder diesen ausbauen möchte. Desweiteren ist bei der neuen Klassenmethode in der thread.php sehr viele Kommentare angebracht, die User helfen sollen, den Code zu verstehen. Bei Bedarf kann das gelöscht werden. Dieser Hack darf aber nicht als eigener ausgeben werden.

Sonstiges:

Dieser Hack darf nur auf y****** angeboten werden.

Bekannte Bugs:

Keine

Getestete Forenversion:

wBB 2.3.4

Changelog:

Von Version 1.0 auf 1.1

Siehe hier

von Version 1.1 auf 1.2

Siehe hier


Viel Spaß bei dem Hack.

Mfg
MrMind
----
Demo: http://www.mindcoder.org/hacks/merge_pos...blepost_23.html

weiter zum Download
*nane*
Det Dingens is ja mal gut den hau ich mir auch rein. Thx Mind



funzt 100% issn Legger Teilchen
Whisper
Ich bedanke mich auch mal öffentlich smile Habs ja schon mehrmals testen können Augenzwinkern
Shark Master
Ist echt gut.
Aber was ist mit Themen die schon ein Doppelpost haben oder ein mehrfach Post.
Werden die dann auch zusammen gefügt
MrMind
Vorhandende Doppelpost oder Mehrfachpost werden ignoriert, da erst ab Einschaltung des Hacks der Mechanismus in Kraft tritt. Desweiteren kann man diesen auch ausschalten bzw. für einzelne Foren deaktivieren. Würde das auch Rückwirkend gemacht werden in bestimmten Zeiten, dann wäre diese Option ausgehebelt. Augenzwinkern

Mfg
MrMind
Shark Master
Achso.
Ok danke
daDoggy
sehr geiler hack ! gleich eingebaut und getestet - funzt 1A Augenzwinkern

jedoch hab ich da noch ein kleines problem.

ich hab der usergruppe USER 10 min eingetragen, der Admingruppe 0

so, ich bin jetzt aber mitglied beider Usergruppen, und anstatt das hier die höhere gruppe (Admin) zieht, zieht die USER gruppe, sprich ich darf auch nimmer doppelt posten.

gibt es da ne möglichkeit das zu ändern? oder bleibt mir nur die möglichkeit aus der USERgruppe rauszugehen (was ich nicht kann, hat seine gründe - bei bedarf kann ichs genauer erläutern Augenzwinkern )
MrMind
Also da greift der Hack eigentlich nicht ein. Er nimmt die Einstellung, welche bei dir im Array $wbbuserdata gespeichert wird und dies wird in der global.php schon alles erledigt. Sprich, du hättest normalerweise vor dem Hack auch keine Doppelpost machen dürfen innerhalb von 10 Min. Augenzwinkern Wenn das so ist, dann müssten wir uns was anderes Einfallen lassen, ich teste derweil schonmal lokal, wieso er dies macht.

Mfg
MrMind

Edit

So, habe grad der Usergruppe bei den Benutzerrechten auf 10 Min. Mehrfachpostsperre gesetzt und dann mir mal $wbbuserdata['doublepost_timegap'] ausgeben lassen.

Da ich als Admin in der Gruppe User und Admin bin bekam ich 0, also den Wert der Admingruppe, zurück.

Als normaler User eingeloggt und getestet kam der Wert 10 zurück.

Kann ich also nicht reproduzieren, dass Problem.
_pat_
hallo,

habe den hack eingebaut und getestet... die meldung "doppelpost wird zusammengefügt" kommt zwar, aber danach tut sich nix... woran könnte das liegen?

Pls help!

Grüß´le

_pat_
MrMind
Hänge mal bitte deine thread.php an

Mfg
MrMind
_pat_
MrMind
Führ mal folgenden SQL-Code in phpMyAdmin aus:

code:
1:
SELECT merge_postid, merge_show FROM bb1_posts WHERE postid='2963';


Boardnummer gegebenfalls anpassen.

Poste bitte mal das Ergebnis.

Mfg
MrMind
_pat_
hier bitte...
Michael74
Hallo,

erstklassiger Hack, allerdings hätte ich da eine kleine Verbesserung.

Bei der thread.php soll unter anderem diese Anweisung eingefügt werden:

php:
1:
$sql "UPDATE bb".$n."_posts SET message= '" $new_message ."', posttime='" $row['posttime'] . "' WHERE postid='" $row['merge_postid'] . "'";


Ich habe es jetzt bei mir so gemacht:

php:
1:
$sql "UPDATE bb".$n."_posts SET message= '" .addslashes($new_message)."', posttime='" $row['posttime'] . "' WHERE postid='" $row['merge_postid'] . "'";


Also aus . $new_message . ein .addslashes($new_message). um Fehlermeldungen bei Posts, die ein ' enthalten, zu vermeiden. Vielleicht ganz passend auch für andere ?



EDIT:
Was vielleicht in der Anleitung nicht fehlen sollte: Anhänge, die in den Antwort-Beiträgen vorhanden sind, werden gelöscht. Oder ist das nur bei mir so ?
MrMind
Öhm wegen den Anhängen habe ich mich gar nicht gekümmert Peinlich werde ich natürlich nachholen.

Zu deiner Verbesserung:

Dies ist nicht nötig, da beide Messages, die zusammengefügt werden, als auch den Addtext wurden schon einmal in die DB eingetragen und sind schon einmal durch ein addslashes() gelaufen. Würde ich nochmal ein addslashes() drauf laufen lassen, würde das böse Konsequenzen geben Augenzwinkern

Hier ein Beispiel:

Text vor dem Speicher:

code:
1:
 Ich verwende ' in meinem Text


Text nach dem Speichern:

code:
1:
Ich verwende \' in meinem Text


Zusammenfügen (mit addslashes):

code:
1:
Ich verwende \\\' in meinem Text



Augenzwinkern Ich hoffe das war verständlich großes Grinsen

Mfg
MrMind
Michael74
MrMind,

verständlich allemal.

Genauso würde ich das ja auch sehen.... naja, jedenfalls ohne das addslashes erscheint bei mir eine SQL-Fehlermeldung, dass die Spalten der Tabelle nicht mit denen übereinstimmt, die ich einfügen möchte.

Und die Anweisung bemängelt dann genau das ' in meinem Text. Komisch, komisch....
MrMind
Ich teste es gleich mal lokal Augenzwinkern

Mfg
MrMind
Michael74
MrMind,

vielleicht habe ich ja auch nicht die Original-PHP-Texte Peinlich Peinlich


Wegen den Attachments: Habe es gerade bei mir eingebaut...wenn Du den Codeschnipsel haben möchtest....
MrMind
Bug bestätig Peinlich

Anleitung tu ich gleich erweitern Augenzwinkern Danke dir für den Hinweis.


Jo poste mal die Anpassung, dann kann ich die auch gleich mit in die Anleitung mit einbeziehen.

Mfg
MrMind
Michael74
Hallo MrMind,

okay, nur die Änderungen: (EDIT: alle in der Thread.php in dem großen hinzugefügten Teil aus der Anleitung).
Nochmals vielen Dank für den Hack.

php:
1:
2:
3:
4:
5:
/*
            ** Lade Postinformationen fuer die zu loeschenden Beitraege
            */ 
        $sql "SELECT postid, message, attachments, userid, username, posttime, allowsmilies, allowhtml, allowbbcode, allowimages, merge_postid FROM bb".$n."_posts WHERE threadid='".$threadid."' AND merge_postid != '0' AND merge_show = '1'";
        $result $db->query($sql);




php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
// Übergeben der Attachments aus neuen an alten Post
              $attach_merge $row['attachments'];

              $sql "SELECT attachments FROM bb".$n."_posts WHERE postid = '" $row['merge_postid'] . "'";
              $attach_post $db->query_first($sql);
              
              $attach_npost $attach_post['attachments'];
              $attach_npost $attach_npost $attach_merge;
                            
              
              /*
              ** Auslesen des letzten Beitrages an dem der Text zusammengefuegt werden soll
              */



php:
1:
2:
3:
4:
5:
6:
7:
/*
              ** Update des alten Textes
              */
              $sql "UPDATE bb".$n."_posts SET message= '" addslashes($new_message) ."', posttime='" $row['posttime'] . "', attachments='" $attach_npost "' WHERE postid='" $row['merge_postid'] . "'";
              $db->query($sql);

              $sql "UPDATE bb".$n."_attachments SET postid= '" $row['merge_postid'] ."' WHERE postid='" $row['postid'] . "'";