PD_Warning automatische Sperre bei 100 Punkte + Admin PN |
|
|
Mitglied
|
Guten Abend! Ich habe diese Frage bereits auch schon im Supportclub gestellt, allerdings ohne Erfolg. Hier sind mehr aktive Coder Tag für Tag Online und ich bin mir Sicher einer von Euch kann mir helfen.
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:
///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.
Wir reden bei diesem Addon um die Free Version des PD Warning - Sprich nicht die Kaufversion.
Würde mich wirklich sehr über Hilfe freuen! |
|
|
|
Seiten Administrator
|
David Geschrieben am 20.10.2013 um 21:42 |
|
Könntest du eventuell das Addon anhängen? |
Liebe Grüße, euer David.
Aktiver PHP-Fusion Nutzer seit 3. September 2006
--------------------------------------------------------
PHP-Fusion Österreich Seitenbetreiber.
|
|
|
|
Mitglied
|
Klar kann ich :-)
Bitte sehr
P.S.: Wenn das machbar ist, wäre es Gut wenn bekannt gegeben wird was gemacht werden muss :-) |
|
|
|
Seiten Administrator
|
David Geschrieben am 21.10.2013 um 22:38 |
|
Also das ganze ist komplett ungetestet, daher unbedingt von den zu bearbeitenden Dateien ein Backup erstellen, und natürlich auch keine Garantie das es funktioniert.
Öffne die Datei "warning.inc.php" und Suche folgendes:
GeSHi: PHP 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')"); }
gewandelt in 0.016 Sekunden, benutzt wurde GeSHi 1.0.8.10
Das ganze ersetzt du durch folgendes:
GeSHi: PHP // Benutzer ab 100 Verwarnpunkte bannen und alle Super Administratoren eine private Nachricht senden if (show_warning_points($post_warn_data['post_author']) >= 100) { // Userdaten $warnuserdata = dbarray(dbquery("SELECT user_name, user_email FROM ".DB_USERS." WHERE user_id='".$post_warn_data['post_author']."' LIMIT 0,1")); // E-Mail Text, Ban Grund $mail_subject = "Du wurdest gebannt"; $mail_message = "Hallo ".$warnuserdata['user_name'].",\n\ndu wurdest auf unserer Seite gebannt, da du ueber 100 Verwarnpunkte gesammelt hast."; $ban_reason = "Maximale Verwarnpunkte erreicht."; // Dateien einbinden fuer Ban, private Nachricht und E-Mail require_once INCLUDES."suspend_include.php"; require_once INCLUDES."infusions_include.php"; require_once INCLUDES."sendmail_include.php"; // Benutzerstatus aendern $update = dbquery("UPDATE ".DB_USERS." SET user_status='1', user_actiontime='0' WHERE user_id='".$post_warn_data['post_author']."'"); // Ban Log und E-Mail versenden suspend_log($post_warn_data['post_author'], 1, $ban_reason); sendemail($warnuserdata['user_name'], $warnuserdata['user_email'], $settings['siteusername'], $settings['siteemail'], $mail_subject, $mail_message); // Private Nachricht an alle Super Administratoren versenden $pm_sender = ($pd_warning_settings['set_pm_from'] ? $userdata['set_pm_from'] : $userdata['user_id']); $pmreceivers_result = dbquery("SELECT user_id FROM ".DB_USERS." WHERE user_status='0' AND user_level='103'"); if (dbrows($pmreceivers_result)) { while ($pmreceivers_data = dbarray($pmreceivers_result)) { send_pm($pmreceivers_data['user_id'], $pm_sender, $locale['PDWA217'], "[url=".$settings['siteurl']."infusions/pd_warning/warning.php?lookup=".$post_warn_data['post_author']."]".$locale['PDWA218']."[/url]", "y"); } } }
gewandelt in 0.008 Sekunden, benutzt wurde GeSHi 1.0.8.10
Würde mich über eine kurze Rückmeldung, ob es funktioniert hat, freuen. |
Liebe Grüße, euer David.
Aktiver PHP-Fusion Nutzer seit 3. September 2006
--------------------------------------------------------
PHP-Fusion Österreich Seitenbetreiber.
|
|
|
|
Mitglied
|
Also David deine möglichkeit funktioniert schonmal nicht. |
Bearbeitet von Jean-Paul am 21.10.2013 um 23:03
|
|
|
|
Seiten Administrator
|
David Geschrieben am 21.10.2013 um 23:04 |
|
Ja was ist denn der Fehler?! |
Liebe Grüße, euer David.
Aktiver PHP-Fusion Nutzer seit 3. September 2006
--------------------------------------------------------
PHP-Fusion Österreich Seitenbetreiber.
|
|
|
|
Mitglied
|
Fehler werden keine Ausgegeben - Ich habe eben nochmal geschaut und mir ist aufgefallen das ich die Pro Version nutze (Habe diese vor Einiger Zeit erworben) - Nun kann ich die Pro Version nicht anhängen.
Zusammengefügt am 22. Oktober 2013 um 00:39:17:
Also habe eben Nochmal nachgeschaut, es spielt keine Rolle ob es die Pro Version oder die Free Version ist. Die Einträge sind in der warnic.inc.php gleich - Jedoch wird bei Verwarnen des Users mit 100 Punkte keine PN ausgelöst und eben der User nicht "Gesperrt" wird - Da der Code nicht getestet wurde ist das Ergebnis trotzdem Gut, eventuell hat ein anderer noch eine Lösung.
P.S.
diese Zeile ist Fehlerhaft:
send_pm($pmreceivers_data['user_id'], $pm_sender, $locale['PDWA217'], "<a href='http://".$settings['siteurl'' target='_blank' title='".$settings['siteurl''>."infusions/pd_warning/warning.php?lookup=".$post_warn_data['post_author']."]".$locale['PDWA218']."</a>", "y");
habe diese durch
send_pm($pmreceivers_data['user_id'], $pm_sender, $locale['PDWA217'], "<a target='_blank' title='' href='http://".$settings['siteurl']."infusions/pd_warning/warning.php?lookup=".$post_warn_data['post_author']."'>".$locale['PDWA218']."</a>", "y");
ersetzt.
Zusammengefügt am 25. Oktober 2013 um 18:54:42:
Ahoi!
Ich wollte mal wissen, ob da schon jemand weiter gekommen ist - Ich bin es bisher nicht - Ich weiß nur das Davids Anleitung nicht funktioniert, weder bei der Kauf noch bei der Free Version - Wobei die Datei bei beiden gleich zu sein scheint.
Würde mich sehr freuen, wenn ich das noch hinbekommen würde, wäre sicherlich für andere Nutzer hilfreich zu wissen wie man das macht,. |
|
|
|
Neuling
|
ich wäre auch an einer lösung interessiert. |
|
|