FullquoteRemover

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    FullquoteRemover

    Hallo,
    ich habe vor ein paar Tagen mit der WBB-Pakete-Entwicklung angefangen und eigentlich nur zum Lernen ein kleines Plugin geschrieben - den FullquoteRemover, da ich nirgends einen solchen finden konnte.
    Ich fände ihn eigentlich eine gute Idee für dieses Forum, da man ja oft genug Leute sieht, die es einfach nicht verstehen (wollen?) und Fullquote um Fullquote von den Mods rauseditiert werden muss... Dies würde das Plugin noch im Moment des Absendens übernehmen.
    Hier mal ein Screen:

    (ja, ist nichts aufwändiges, aber trotzdem...)
    Gruß, BjöNi

    (entpackt: ~9kB): *Version 1.1 in Post #18*
    Dateien

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „BjöNi“ ()

    Das halte ich für eine nette Idee, allerdings glaube ich nicht, dass hier so viele Fullquotes gemacht werden, dass dafür ein Plugin nötig wäre. Zumindest sehe ich nicht allzu oft welche bzw. deren Edits.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Naja, ob sich dieses Plugin "lohnt" oder nicht sei dahingestellt. Es existiert eben, weil ich es zu Übungszwecken geschrieben habe. Daher wollte ich es mal @Marcus Gräfe: anbieten. Ob es nun installiert wird oder nicht, muss letzten Endes sowieso er entscheiden.
    Der sollte ebenfalls optional sein.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Das sind ja alles nur Kleinigkeiten - für hier würde es reichen, wenn mir Marcus sagt, was er da stehen haben möchte und dann steht es da... :)
    Wird das Absenden eines Beitrags dadurch irgendwie langsamer? Ist das WBB3-kompatibel (scheinbar hast du es in einem WBB Lite getestet)?

    Was genau prüft das Plugin? Also welches Posting muss wie übereinstimmen mit einem Quote im aktuellen Posting? Was ist bei mehreren identischen Quotes in einem Post?
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Lern noch ein bisschen die Pluginentwicklung bevor du das hier anbietest.
    Du nutze keine Sprachvariablen (Languages-PIP), was eine ganz schlechte Angewohnheit ist, und ACP-Optionen (Options-PIP) wären auch ganz angebracht. Im Ernst: Das Plugin ist gerade mal halbfertig.

    EDIT: Bevor du dich weiter mit der WCF 1.1 Entwicklung beschäftigst: Lass es. Arbeite dich lieber von Anfang an in das WCF 2.x ein, was schon bald das WCF 1.1 ablösen wird.
    @Marcus Gräfe:
    Das Plugin sollte problemlos mit WBB3 kompatibel sein - ich kann es allerdings nicht unter WBB3 testen, sprich schlimmstenfalls müsste es eben wieder deinstalliert werden, weil es irgendeinen Eventlistener nicht gibt, die Daten anders in der Datenbank gespeichert werden o.ä. (halte ich aber für sehr unwahrscheinlich).
    Das Absenden eines Beitrages wurde in keiner Weise merklich langsamer. Natürlich wird ein Eventlistener auf das Absenden eines Beitrages gesetzt, dort wird dann der vorige Beitrag aus der Datenbank ausgelesen und per RegEx überprüft, ob eine dementsprechende Fullquote vorhanden ist. Ist aber im Millisekundenbereich.
    Das Plugin beachtet nur Quotes, die dem Muster

    PHP-Quellcode

    1. "\[quote(.*?)\]" .ExakterTextDesVorigenBeitrags ."\[/quote\]"
    entsprechen (es wird ausschließlich auf Fullquotes des zuvor geposteten Beitrags überprüft!).
    Bei 2x der selben Fullquote würden beide entfernt, teilweise Quotes werden aber nicht entfernt (die sind ja auch gewünscht/OK).
    Hier mal der Inhalt der
    FullquoteListener.class.php

    PHP-Quellcode

    1. <?php
    2. require_once(WCF_DIR.'lib/system/event/EventListener.class.php');
    3. class FullquoteListener implements EventListener {
    4. public function execute($eventObj, $className, $eventName) {
    5. $last = WCF::getDB()->fetchArray(WCF::getDB()->sendQuery('SELECT message FROM wbb' .WBB_N .'_post WHERE threadID = ' .$eventObj->threadID .' ORDER BY postID DESC LIMIT 1'));
    6. $last = $last['message'];
    7. if (preg_match('#\[quote(.*?)\]' .preg_quote($last,'#') .'\[/quote\]#',$eventObj->text)) {
    8. $eventObj->text = preg_replace('#\[quote(.*?)\]' .preg_quote($last,'#') .'\[/quote\]#','',$eventObj->text) .'
    9. [color=#ff0000][b]EDIT by FullquoteRemover:[/b] Ein unnötiges Vollzitat des vorigen Beitrages wurde automatisch entfernt![/color]';
    10. }
    11. }
    12. }
    13. ?>


    @FunnySunny: Ja, aber Sprachvariablen und Optionen sind in einem Plugin, das eigentlich nicht öffentlich angeboten wird (hier habe ich es ja explizit für dieses Forum hochgeladen) imo unnötig.
    OK, kann ich ja noch implementieren. Aber vorhandene Fullquote-Edits werden dann nicht mehr nachträglich verändert ;)
    Die Sprachvariable is das eine, aber ein Fullquote muss nicht immer im vorigen Post stehen, ich an deiner Stelle würde die PostID aus dem Quote auslesen

    [ quote='username','index.php?page=Thread&postID=721357#post721357' ] und eben dann ermitteln ob es ein Fullquote ist des betreffenden Post.
    Naja, aber es verfälscht doch den Zusammenhang wenn eine Fullquote eines Posts, der schon länger zurückliegt, entfernt wird?

    //EDIT: Ich meine natürlich einen Post, zwischen dem und dem aktuellen noch ein anderer liegt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „BjöNi“ ()

    Sehe ich genau so, Quotes von weit zurückliegenden Postings können ruhig komplett gemacht werden. Denn wenn man nur ein Wort zitiert wäre das ja auch komplett. Das sollte erlaubt sein.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Ich bin nun endlich zum implementieren von Optionen gekommen: Version 1.1!
    Diese befinden sich im ACP unter Optionen > Forum > FullquoteRemover:

    (Screen von entfernter Quote in Post #1)

    (entpackt: ~14kB)
    Dateien

    XML-Quellcode

    1. <instructions type="update" fromversion="*">
    2. <files>files.tar</files>
    3. <eventlistener>eventlistener.xml</eventlistener>
    4. <options>options.xml</options>
    5. <languages languagecode="de">language.xml</languages>
    6. </instructions>

    Biete niemals Updates an, wenn du nicht 100%ig weißt, dass sie funktionieren, bzw. das sie sinnvoll sind. Von allen Versionen erst recht nicht.

    Ansonsten alle Funktionen im Grunde gut und sinnvoll eingesetzt. Gut gemacht. :P
    Was spricht gegen die Updates? Ich meine - es gibt nur eine Version, die niedriger ist als 1.1, und downgraden von einer höheren Version, z.b. 2.0 auf die Vorliegende 1.1 lässt das WCF sowieso nicht zu. Und ja, der Upgrade 1.0->1.1 funktioniert.

    FunnySunny schrieb:

    Ansonsten alle Funktionen im Grunde gut und sinnvoll eingesetzt. Gut gemacht.
    Danke ;)