[Release][WCF-Plugin] Verwarnung mit erweiterter Privaten Nachricht 1.0.8 - Komplett anpassbar!

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [Release][WCF-Plugin] Verwarnung mit erweiterter Privaten Nachricht 1.0.8 - Komplett anpassbar!

      Version 1.0.8
      Endlich wieder da.




      Sehr geehrte Leser,

      ich möchte heute eine WoltLab Community Framework Erweiterung veröffentlichen, es ist eine meiner ersten (Ich glaube Nr. 3).
      Wichtig ist das ihr diesen Text (besonders die Installationsanleitung) genau durchlest, da es bei diesem Plugin eine kleine Besonderheit gibt.

      Was ist das für ein Plugin?

      Mit dem Plugin lässt sich die Private Nachricht die das Burning Board im Falle einer Verwarnung an den Benutzer versendet komplett anpassen, oder ggf. abstellen.
      Auch das verwenden von mehreren Sprachen ist möglich.
      Normalerweise sieht solche PN so aus:
      Spoiler anzeigen
      Verwarnungstitel:Begründung
      Spam:Der Beitrag war Spam


      Mit dem Plugin kann diese z.B so aussehen:

      Spoiler anzeigen

      Quellcode

      1. Hallo [url=*userurl*]*user*[/url]!
      2. Du wurdest soeben von [url=*modurl*]*mod*[/url] verwarnt, die Verwarnung enthält *points* Verwarnungspunkt(e).
      3. Sie läuft in *expiresweek* Woche(n) und *expiresday* Tage(n) und *expireshour* Stunde(n) aus.
      4. Ursprung der Verwarnung: Dein [url=*sourceurl*]*sourcetype*[/url] ("*sourcesubject*") bei "*sourcetopic*":
      5. [quote=*user*,*sourceurl*]
      6. *sourcemessage*
      7. [/quote]
      8. [url=*modurl*]*mod*[/url] begründet die Verwarnung so:
      9. [quote=*mod*]
      10. *reason*
      11. [/quote]
      12. Ab 2 Verwarnungspunkten musst du mit Sanktionen die dein Benutzerkonto betreffen rechnen. (Avatarsperre, Sperrung, o.ä)
      13. Von allen Verwarnungen die bisher ausgesprochen wurden hast du die Nr. *warnid*.
      14. Solltest du Fragen zu deiner Verwarnung haben kontaktiere bitte [url=*modurl*]*mod*[/url].
      15. Bitte antworte nicht auf diese Nachricht, da diese Nachricht automatisch versendet wurde.
      Alles anzeigen


      Alle Einstellungen können über das ACP getätigt werden.
      Den Absender kann man ebenfalls im ACP festlegen, so kann man z.B "System" festlegen, oder einfach *mod*, damit die PN immer vom jeweiligen Moderator kommt.
      Das Plugin erkennt ob es sich beim Absender um einen Benutzer, oder einen fiktiven Namen handelt. (bspw: System, etc.)
      Der Titel lässt sich natürlich ebenfalls anpassen.


      Welche Variablen gibt es?

      Momentan gibt es folgende:
      *user* = Benutzer der Verwarnt wurde.
      *userurl* = URL des Benutzers der verwarnt wurde.
      *mod* = Name des Moderatoren der die Verwarnung ausgesprochen hat.
      *modurl* = URL zum Profil des Moderatoren der die Verwarnung ausgesprochen hat.
      *title* = Titel der Verwarnung.
      *reason* = Begründung der Verwarnung.
      *points* = Verwarnungspunkte der Verwarnung.
      *expiresweek* = Anzahl der Wochen bis zum Ablauf der Verwarnung.
      *expiresday* = Anzahl der Tage bis zum Ablauf der Verwarnung.
      *expireshour* = Anzahl der Stunden bis zum Ablauf der Verwarnung.
      *warnid* = Nummer der Verwarnung.
      *sourcetype* = Typ des Ursprunges der Verwarnung (z. B. "Beitrag", "Gästebucheintrag", etc.).
      *sourceurl* = URL des Ursprunges der Verwarnung.
      *sourcemessage* = Inhalt des Ursprunges der Verwarnung. (Kein Inhalt => '-')
      *sourcetopic* = Thema des Ursprunges der Verwarnung. (Gästebucheintrag => '-')
      *sourcesubject* = Titel des Ursprunges der Verwarnung (Gästebucheintrag => '-')
      *copyright* = Copyright des genutzen Paketes.

      Screenshots

      screen2.png

      screen3.png

      screen4.png

      screen5.png

      screen6.png

      Einstellungen

      Im ACP findet ihr die Einstellungen unter System => Optionen => Mitglieder => Private Nachricht bei Verwarnung


      Lizenz

      -- Siehe Downloadlink --

      Download


      lenielsen.de/downloads.html?dls_pos=4#dl_entry_4

      Changelog
      Spoiler anzeigen

      1.0.8

      1. Die Nachricht kann nun (zusätzlich) als E-Mail versendet werden. (HTML und
        CSS möglich)
      2. Sourcecode optimiert.

      1.0.7

      1. Aufgrund eines Fehlers in der Version 1.0.6 trat bei der Nutzung von
        mehreren WCF-Installationen in einer Datenbank folgender Fehler
        ein:
        "Undefined variable: pmID"
        Dieser Fehler dürfte nun behoben
        sein.

      1.0.6

      1. Mehrsprachigkeit möglich.
      2. Vordefinierte Verwarnungen sind nun möglich.
      3. Zeitangaben entfernt und *expirestime* und *expiresdate* eingefügt.
      4. Genaue Anleitung für Mehrsprachigkeit eingefügt.
      5. Diverse Sourcecodeoptimierungen.

      1.0.4-1.0.5

      1. Diese Versionen waren Intern bzw. nur für private Tester zugelassen.

      1.0.3

      1. Variable *sourcetype* hinzugefügt. (Typ des Ursprunges der Verwarnung (z. B.
        "Beitrag", "Gästebucheintrag", etc.)
      2. Variable *sourceurl* hinzugefügt. (URL des Ursprunges der Verwarnung)
      3. Variable *sourcemessage* hinzugefügt. (Inhalt des Ursprunges der Verwarnung.
        (Kein Inhalt => '-'))
      4. Variable *sourcetopic* hinzugefügt. (Thema des Ursprunges der Verwarnung.
        (Gästebucheintrag => 'Gästebuch von NAME'))
      5. Variable *sourcesubject* hinzugefügt. (Titel des Ursprunges der Verwarnung
        (Gästebucheintrag => '-'))

      1.0.2

      1. Es muss keine Modifizierung der WCF Dateien vorgenommen werden.
      2. Sourcecode optimiert.
      3. Bessere Dokumentation des Codes.

      1.0.1

      1. Variable *warnid* hinzugefügt.



      1.0.0

      1. Release

      Dieser Beitrag wurde bereits 24 mal editiert, zuletzt von Lars ()

    • MegaThorx schrieb:

      Sieht gut aus

      Das einzige was blöd ist das man die Zeile auskommentieren muss | kannst die nicht einfach löschen?

      MfG
      MegaThorx
      Als Pluginhersteller sollte man nie Zeilen des WCF's löschen.
      Einfach aus dem Grund das es sich nicht gehört, der Nutzer soll möglichst ein originales WCF / WBB haben wenn das Plugin deinstalliert ist.
      Eine auskommentierte Zeile kann jeder Zeit wieder "hergestellt" werden.
      Du kannst deine Zeile löschen, aber ich würde es dir nicht empfehlen.
      Später wird woltlab.com zugespammt von leuten denen diese Zeile fehlt.

      Ich bin bereits dabei eine Lösung zu finden die Zeile temporär zu überschreiben (so das die Originale Datei unberührt bleibt).
    • Danke,

      WBB4 wird in Richtung "Soziales Netzwerk" abdriften.
      Es sind viele tolle Funktionen, aber die tendenz ist in Richtung Facebook.
      Ein "Beitragsbewertungssystem" ist eingebaut.
      Ich finde das nicht toll, damit nehmen sie den Pluginentwicklern die "Chance".
      WoltLab hat sich nie mit dem Entwickler von "Thankomat" zusammengesetzt, jetzt bauen die einfach was eigenes.

      Finde ich schlecht.

      Ich denke es hat keinen Sinn um die Einbindung zu bitten, die Prioritäte liegen definitiv bei anderen dingen.

      Ich überlege das Plugin (kostenfrei natürlich) in den Plugin-Store hochzuladen, nur muss ich das Problem mit der Codezeile noch lösen.
      Ich denke es gibt keine andere Lösung als die Zeile auszukommentieren, ansonsten müsste ich grundlegend anders vorgehen. (So hatte ich es übrigends geplant)

      1. Einen EventListener auf die "OptionForm" im Bereich ACP.
      2. Immer wenn die Einstellugnen geändert werden die Sprachvariablen für den Verwarnungstext ändern.
      3. Die Sprachcache leeren.
      4. Im EventListener der auf die UserWarnForm zeigt die Variablen die in den Sprachvariablen sind gegen die Werte ersetzen.
      5. Sprachcache leeren
      Problem ist das kommt alles ins schleudern wenn mehrere gleichzeitig verwarnt werden, außerdem frisst es performance. (Cache leeren)
    • Lars_Vegas schrieb:

      MegaThorx schrieb:

      Sieht gut aus

      Das einzige was blöd ist das man die Zeile auskommentieren muss | kannst die nicht einfach löschen?

      MfG
      MegaThorx
      Als Pluginhersteller sollte man nie Zeilen des WCF's löschen.
      Einfach aus dem Grund das es sich nicht gehört, der Nutzer soll möglichst ein originales WCF / WBB haben wenn das Plugin deinstalliert ist.
      Eine auskommentierte Zeile kann jeder Zeit wieder "hergestellt" werden.
      Du kannst deine Zeile löschen, aber ich würde es dir nicht empfehlen.
      Später wird woltlab.com zugespammt von leuten denen diese Zeile fehlt.

      Ich bin bereits dabei eine Lösung zu finden die Zeile temporär zu überschreiben (so das die Originale Datei unberührt bleibt).


      Ich lösche nie Code kommentiere immer aus !

      Nur ich find es blöd das es nötig ist

      MfG
      MegaThorx
      If A equals success, then the formula is A equals X plus Y plus Z. X is work. Y is play. Z is keep your mouth shut.
    • So ist es leider, eine andere Lösung gibt es nicht, außer du willst immer zwei Nachrichten bekommen. :P

      /e
      Ich habe eine Idee was ich machen könnte, vielleicht ist das ja doch die Lösung.
      Ich ändere die Sprachvariablen des PN Titels auf einen langen SHA1-Hash, dann sendet die UserWarnForm Klasse die PN, ich sende meine PN und dann suche ich anhand des SHA1-Hashes die PN mit den Titel und lösche diese.

      Das müsste eigentlich zeitlich so schnell sein das der User es nicht nervt, ich versuche es heute oder morgen!
    • Neue Version: 1.0.3

      1.0.3

      Variable *sourcetype* hinzugefügt. (Typ des Ursprunges der Verwarnung (z. B. "Beitrag", "Gästebucheintrag", etc.)
      Variable *sourceurl* hinzugefügt. (URL des Ursprunges der Verwarnung)
      Variable *sourcemessage* hinzugefügt. (Inhalt des Ursprunges der Verwarnung. (Kein Inhalt => '-'))
      Variable *sourcetopic* hinzugefügt. (Thema des Ursprunges der Verwarnung. (Gästebucheintrag => 'Gästebuch von NAME'))
      Variable *sourcesubject* hinzugefügt. (Titel des Ursprunges der Verwarnung (Gästebucheintrag => '-'))
    • Ich will dir nicht ins Handwerk pfuschen, kann dir aber einen Vorschlag geben, wie du das mit der Zeile in den Griff bekommst. Ich musste das leider auch so mit meinem Plugin machen und Woltlab hat das angenommen. Dadurch wird die PN nicht gelöscht und du bekommst nicht bei jeder PN 2 IDs draufehauen in deiner Datenbank.

      Du Liest die zuletzt gesendete PN an den Benutzer aus, der Verwarnt wurde und bearbeitest sie um deinen Inhalt. Ich hab das zwar im Umfang mit dem ACP gemacht, aber du kannst dem SQL ja noch eine AND-Bedingung um den Titel der PN oder den Autor der PN (derjenige der Verwarnt), dann kann sich da eigentlich nichts kreuzen.

      Ein Auszug aus meinem Plugin:

      PHP-Quellcode

      1. case 'saved':
      2. $sql = "SELECT warningID
      3. FROM wcf".WCF_N."_user_infraction_warning
      4. ORDER BY warningID DESC
      5. LIMIT 1";
      6. $row = WCF::getDB()->getFirstRow($sql);
      7. $this->warningID = $row['warningID'];
      8. $sql = "UPDATE wcf".WCF_N."_user_infraction_warning
      9. SET additionalMessage = '".escapeString($this->additionalMessage)."',
      10. additionalMessageColor = '".escapeString($this->additionalMessageColor)."'
      11. WHERE warningID = ".$this->warningID;
      12. WCF::getDB()->sendQuery($sql);
      13. $this->additionalMessage = '';
      14. $this->additionalMessageColor = '#000';
      15. break;
      Alles anzeigen


      LG
      Sebastian S.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Sebastian S. ()