Thread Verfasser: John Doe
Thread ID: 22
Thread Info
Es gibt 20 Beiträge zu diesem Thema, und es wurde 9669 Mal angesehen.
 Thema drucken
PD_Warning automatische Sperre bei 100 Punkte + Admin PN
John Doe
Guten Abend! Ich habe diese Frage bereits auch schon im Supportclub sowie auf AT gestellt, david hatte zwar was gepostet allerdings funktioniert das nicht.

Frage 1:
Bei dem PD_Warning ist es so das ein User ab 100 Punkte gesperrt wird, eine Benachrichtigung dazu bekommt ein Administrator welcher im Adminbereich eingestellt wurde - Nun kann es durchaus vorkommen das ein Admin 2 Tage nicht Online ist und diese 2 Tage hätte der "Unruhestifter" zeit weitere Unruhe zu stiften - Daher die Frage wie kann man es Realisieren das der User ab 100 Punkte automatisch von PHP-Fusion gesperrt wird ?

Frage 2:
Wenn ein User 100 Punkte hat kann man auswählen von den Seiten Administratoren welcher davon eine Hinweis PN bekommen soll - Wie ist es zu Realisieren das alle Seiten Administratoren eine PN bekommen ? Dann würde u.U. Frage 1 weg fallen, besser ist es wenn man beide Fragen realisieren könnte.

Für die PN an alle Administratoren würde es bereits einen Schnipsel geben:

Code 

///PN an Admins start
function pm_send($pmtoid, $subject, $pmfromid, $message){
      $pmtoid = stripinput($pmtoid);
      $subject = stripinput($subject);
      $pmfromid = stripinput($pmfromid);
      $message = descript($message);
      dbquery("INSERT INTO ".DB_MESSAGES." (message_id, message_to, message_from, message_subject, message_message, message_smileys, message_read, message_datestamp, message_folder) VALUES ('', '".$pmtoid."', '".$pmfromid."', '".$subject."', '".$message."', '0', '0', '".time()."', '0')");
   }
   $pn_result = dbquery("SELECT user_id FROM ".DB_USERS." WHERE user_level='103'");
                  while($data = dbarray($pn_result)){
                     pm_send($data['user_id'], 'Der Betreff der Nachricht', 'Die Absender ID', 'Der Nachrichtentext');
                  }
                  //PN an Admins stop



Nur das einbauen ist mit diesem schnipsel nicht ganz so einfach, aber vielleicht kann einer von Euch damit schon mehr anfangen.

Wäre sicher für alle Nutzer des PD Warnings ein tolles feature!
 
John Doe
Also die Sache mit dem Senden der PN an alle Admins sollte jetzt nicht das Riesenproblem sein...

Code 

function pm_send($pmtoid, $subject, $pmfromid, $message){
      $pmtoid = stripinput($pmtoid);
      $subject = stripinput($subject);
      $pmfromid = stripinput($pmfromid);
      $message = descript($message);



Hier wird die Funktion mit Variablen gefüllt, bzw deren Variablen mit den entsprechenden Inhalten. Interessant für uns ist da im Grund enur die erste, sprich

Code 

$pmtoid = stripinput($pmtoid);



Da hier "stripinput" steht, wird dieser Wert woanders übergeben, in diesem Fall im Adminbereich. Diese komplette Funktionsvraiable müsste man rausnehmen oder zumindest nicht mehr ausgeben lassen und durch eine entsprechend andere Variable oder wie in diesem Fall sogar durch einen festen Wert ersetzen.

Um da jetzt genaueres zu sagen müsste ich mir die Infusion mal in Ruhe ansehen, aber dafür fehlt mir momentan einfach die Zeit.
 
John Doe
Guten Morgen,
also die Funktion für die ADMIN-PN haben wir, nur wo dieser eingebaut wird, wissen wir nicht.
 
Basti
Welche Version der Infusion hast du denn?
Diese hier?
http://www.phpfusion-supportclub.de/i...rowstart=0
 
John Doe
Ich habe die Kauf Version, aber die teile von der free version kann ich dann anschauen, wenn man das hinbekommen würde.
 
Basti
Was ist an der "Kauf-Version" denn anders?
Ich schau mir die normale Version mal an.. Wink
 
John Doe
Bei der Kauf Version kann man über das Profil, Shoutbox, etc. verwarnen und bei der normalen nur über das Forum.
 
Basti
Suche in warning.inc.php

Code 



      if (show_warning_points($post_warn_data['post_author'])>=100)
   {
     $pn_subject = stripinput(trim($locale['PDWA217']));
       $pn_messages = stripinput(trim("[url=".$settings['siteurl']."infusions/pd_warning/warning.php?lookup=".$post_warn_data['post_author']."]".$locale['PDWA218']."[/url]"));
     if($pd_warning_settings['set_pm_from']==0) { $pn_from = $userdata['user_id']; } else { $pn_from = $userdata['set_pm_from']; }
      $result = dbquery("INSERT INTO ".DB_PREFIX."messages (message_to, message_from, message_subject, message_message, message_smileys, message_read, message_datestamp, message_folder)
                                                   VALUES ('".$pd_warning_settings['set_pm_to']."','".$pn_from."','".$pn_subject."','".$pn_messages."','y','0','".$insertdate."','0')");
   }
   


Ersetze mit:

Code 


      if (show_warning_points($post_warn_data['post_author'])>=100)
   {
     $pn_subject = stripinput(trim($locale['PDWA217']));
       $pn_messages = stripinput(trim("[url=".$settings['siteurl']."infusions/pd_warning/warning.php?lookup=".$post_warn_data['post_author']."]".$locale['PDWA218']."[/url]"));
     if($pd_warning_settings['set_pm_from']==0) { $pn_from = $userdata['user_id']; } else { $pn_from = $userdata['set_pm_from']; }
    
        $pn_result = dbquery("SELECT user_id FROM ".DB_USERS." WHERE user_level='103'");
            while($data = dbarray($pn_result)){
            $result = dbquery("INSERT INTO ".DB_MESSAGES." (message_to, message_from, message_subject, message_message, message_smileys, message_read, message_datestamp, message_folder) VALUES ('".$data['user_id']."','".$pn_from."','".$pn_subject."','".$pn_messages."','y','0','".$insertdate."','0')");
             }
    
     require_once INCLUDES."suspend_include.php";
     $result = dbquery("UPDATE ".DB_USERS." SET user_status='1', user_actiontime='0' WHERE user_id='".$post_warn_data['post_author']."'");
     suspend_log($post_warn_data['post_author'], 1, stripinput("banned by the Warning Sstem; Reason: User has more than 100 Warning Points"));
   }


 
John Doe
Ergebnis: Weiße Seite
 
Basti
Hast du den Code einfach oben aus dem Forum kopiert oder über den "Download Code"-Button (Code wird in einer Textdatei gedownloaded)?

Bitte den Download Code Button benutzen, da im obigen Forum Beitrag der Code falsch dargestellt wird.

Dann sollte das auch funktionieren, wenn nicht, dann poste mal deine Datei.
 
d-thye
Zitat: Basti schrieb:

Bitte den Download Code Button benutzen, da im obigen Forum Beitrag der Code falsch dargestellt wird.


Dat is ja mal ein echt fieser bug im code-BBCode! Dickeslachen
 
Basti
ja, ist gemein razz
 
John Doe
Also ich hab den normal raus kopiert, wenn das nen Bug ist dann ist das richtig Fies!

Also nun geht der Code, allerdings ohne Ergebnis, es wird weder eine PN AN ALLE ausgelöst, noch wird der User gesperrt - Der Abschnitt ist mit der Free Version gleich.

Es geht um die Version 7.02.07
Bearbeitet von John Doe am 10.11.2013 um 21:13
 
Basti
Also eigentlich sollte jeder Super-Admin eine PN bekommen und der User sollte gebannt werden.

Zumindest wenn der User über das Forum gebannt wird.
(da ich die andere Version nicht habe, kann ich nicht ausschließen, dass es beim Verwarnen über das Profil auch funktioniert)

PS: Ich überarbeite die ganze Infusion gerade und passe sie etwas an.
 
John Doe
Ja, dass kann natürlich sein, muss dann wohl mal schauen ob ich das per Profil bekomme, ich kann die Kaufversion aber leider nicht weiter geben sonst könntest du das besser gucken
 
Basti
Ich glaub, ich werde die frei verfügbare Version einfach so umschreiben, dass sie auch für Profil und Shoutbox geht... Eigentlich keine große Sache Smile

Hast du mal getestet, ob mein oben geposteter Code nun -wie gewünscht zumindest im Forum- funktioniert?
 
John Doe
Achso Ja, im Forum funktionierts!

Wenn du das hinbekommst, wäre Super! Hauptsächlich ist glaube ich die warning.inc.php anders
Bearbeitet von John Doe am 12.11.2013 um 22:48
 
Basti
pd-warning v2.0 beta:
http://basti2web.de/infusions/pro_dow...hp?did=204

Änderungen:
Zitat: - PHP-Bugfixes
- MSQL-Fixes
- Locale Fixes
- PHP-FUSION Code Styling Fixes
- Security Bugs fixed

-NEW Option: User can be banned automaticcly after reaching the limit
-NEW Option: All Superadmin can receive the message, when a user reached the warning limit
-NEW: warn users on profile
-NEW: warn users on shoutbox
-NEW option: Hide user's warnings from Guests

 
punkerwelle
bei Selbst angelegte verwarn gründe wird immer nur 1 Verwarnpunkt vergeben. auch wenn ich zb 50 punkte vergebe. mehrere punkte kann ich nur vergeben wenn ich die manuell im unteren feld eingebe.

auch wird der account nicht wieder entsperrt, wenn ich die verwarnungen lösche, oder die verwarnung abgelaufen ist.
die aufräum funktion hat keine funktion. die verwarnungen bleiben eingetragen.

und die lokale ist teilweise noch in Englisch.
 
Basti
Neue Version mit Fehlerbehebungen:

http://basti2web.de/infusions/pro_dow...hp?did=204
 
Springe ins Forum: