Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 7 Gast/Gäste
Automatische Pm
#1
Hallo,
Ich wollte mal fragen wie ich über einen PHP Code eine PM versenden kann, ich würde das für das ModCP gebrauchen wenn ein Thread freigeschaltet wird, wo ich es einfügen muss usw. weis ich schon Big Grin

mfg,

Danke im Vorraus
Zitieren
#2
Vielleicht hilft Dir dieser Beitrag weiter. Er bezieht sich zwar auf die Game Section, sollte aber auch in abgewandelter Form für Deine Anwendung realisierbar sein.
https://www.mybb.de/forum/thread-19330-p...#pid157942
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#3
Werde das gleich mal ausprobieren danke!

Habe jetzt diesen Code:
PHP-Code:
global $mybb;
    
        require_once 
MYBB_ROOT."inc/datahandlers/pm.php";
        
$pmhandler = new PMDataHandler();
        
        
$subject "Dein Highscore wurde geschlagen....";
        
$message "Hallo ".$thread['username']."
            
        Dein Highscore bei dem Spiel "
.$champ['title']." wurde von ".addslashes($mybb->user['username'])." geschlagen.
                        
        Klicke [url="
.$mybb->settings['bburl']."/games.php?action=play&gid=".$gid."]hier[/url], um das Spiel erneut zu spielen und Deinen [url=".$mybb->settings['bburl']."/games.php?action=scores&gid=".$gid."]Highscore[/url] zurück zu holen.";

        
$toid $thread['uid'];
        
$fromid $mybb->user['uid'];
                
        
$pm = array(
            
'subject' => $subject,
            
'message' => $message,
            
'toid' => array($toid),
            
'fromid' => $fromid
        
);

        
$pmhandler->set_data($pm);
        if(!
$pmhandler->validate_pm())
            return 
false;
        else
        {
            
$pmhandler->insert_pm();
            
//return true;
        
}
    } 
Geht aber net
Zitieren
#4
So, ich habe es jetzt mal in die moderation.php eingefügt, das geht alles aber die PM wird nicht gesendet Sad
PHP-Code:
global $mybb;

        require_once 
MYBB_ROOT."inc/datahandlers/pm.php";
        
$pmhandler = new PMDataHandler();

        
$subject "Thema freigeschaltet";
        
$message "Hallo, Test"



        
$toid $champ['uid'];
        
$fromid $mybb->user['uid'];

        
$pm = array(
            
'subject' => $subject,
            
'message' => $message,
            
'toid' => array($toid),
            
'fromid' => $fromid
        
);

        
$pmhandler->set_data($pm);
        if(!
$pmhandler->validate_pm())
            return 
false;
        else
        {
            
$pmhandler->insert_pm();
            
//return true;
        

Zitieren
#5
Der von mir verlinkte Beitrag war nur als Beispiel gedacht und nicht so, dass man ihn 1:1 verwenden kann. Eine entsprechende Anpassung wäre natürlich notwendig und hängt davon ab, was Du tatsächlich machen möchtest. In Deinem letzten Code-Beispiel dürfte das Hauptproblem daran liegen, dass
PHP-Code:
$toid $champ['uid']; 
nicht ausgeführt werden kann, weil $champ nicht bekannt ist. Das war auf die Game Section ausgelegt....
Und wenn der Empfänger kein Array ist, dann müsste man vermutlich
PHP-Code:
'toid' => array($toid), 
auch noch ändern.
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#6
Also das ganze ist in der moderation.php wenn ein Thread freigeschaltet wird.
Ich will jetzt mit diesem Code das der Freischalter diese Test PM bekommt, aber er bekommt keine Sad
Trotzdem danke für die Hilfe.
PHP-Code:
global $mybb;

        require_once 
MYBB_ROOT."inc/datahandlers/pm.php";
        
$pmhandler = new PMDataHandler();

        
$subject "Thema freigeschaltet";
        
$message "Hallo, Test";



        
$toid $mybb->user['uid'];
        
$fromid $mybb->user['uid'];

        
$pm = array(
            
'subject' => $subject,
            
'message' => $message,
            
'toid' => $toid,
            
'fromid' => $fromid
        
);

        
$pmhandler->set_data($pm);
        if(!
$pmhandler->validate_pm())
            return 
false;
        else
        {
            
$pmhandler->insert_pm();
            
//return true;
        

Zitieren
#7
Evtl. hast Du den Code an der falschen Stelle eingebunden. Mit diesem Code
PHP-Code:
$toid $mybb->user['uid'];
$fromid $mybb->user['uid']; 
schickt sich der "Freischalter" übrigens selbst eine PM.
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#8
Ja, das ist mir bewusst, soll ja zum testen sein Wink.
Ich habe es vor dem break; in der moderation.php in der Funktion approve eingefügt, müsste doch stimmen
Zitieren
#9
Ich finde da keine Funktion "approve" Sad
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#10
Zeile 672
PHP-Code:
    case "approvethread"
Zitieren