HiHi
Ok hacking this
https://vborg.vbsupport.ru/showthread.php?t=116325 to work with 3.8
I get all options to work and menu etc, its just the sending of a PM !
Below is the plugin it uses hook location private_insertpm_complete
Everything works no problem just no pm sent to the sender
Tar
Giz
P.S will add as new plugin once fixed
PHP Code:
// get list of recipients the current user want's to send PMs to
$recipients = explode( ";", $pm['recipients'] );
$autoreplytitle = trim($vbphrase['pm_autoreplyprefix']) . " " . $pm['title'];
$forwardtitle = trim($vbphrase['pm_autoreplyfwprefix']) . " " . $pm['title'];
// for every single recipient, check if autorespond is activated, get the autorespond text and save the reply to the senders INBOX
foreach ( $recipients as $recipient )
{
$r = $db->query_read( "SELECT userid, pmautoreplystatus, pmautoreplytext, pmautoreplydate, pmautoreplyforward FROM " . TABLE_PREFIX . "user WHERE username='" . addslashes( trim($recipient) ) . "'" );
$rcpinfo = $db->fetch_array($r);
$a = explode( "#", $rcpinfo['pmautoreplydate'] );
$tnow = time();
if ( ( strtotime( trim ( $a[0] ) ) < $tnow ) AND ( $tnow < strtotime( trim ( $a[1] ) ) ) ) { $dateok = true; } else { $dateok = false; }
if ( strlen( $rcpinfo['pmautoreplydate'] ) < 5 ) { $dateok = true; }
if ( ( $rcpinfo['pmautoreplystatus'] == "1" ) AND ( $dateok ) )
{
$autoreplytext = $rcpinfo['pmautoreplytext'];
$autoreplysendername = $recipient;
$autoreplysenderid = $rcpinfo['userid'];
// do some replacements of placeholders.
// I rather use str_replace() instead of a eval() to prevent internal vars to be parsed!
$autoreplytext = str_replace( "{name}", trim( $userinfo['username'] ), $autoreplytext );
$autoreplytext = str_replace( "{from}", trim( $a[0] ), $autoreplytext );
$autoreplytext = str_replace( "{to}", trim( $a[1] ), $autoreplytext );
// create the datamanager
$pmdm =& datamanager_init('PM', $vbulletin, ERRTYPE_ARRAY);
// set all required fields
$pmdm->set_info('savecopy', false);
$pmdm->set_info('receipt', false);
$pmdm->set_info('cantrackpm', false);
$pmdm->set_info('forward', false);
$pmdm->set('fromuserid', $autoreplysenderid);
$pmdm->set('fromusername', $autoreplysendername);
$pmdm->setr('title', $autoreplytitle);
$pmdm->setr('message', $autoreplytext);
$pmdm->set_recipients($userinfo['username'], $permissions);
$pmdm->set('dateline', TIMENOW);
// and save the autoreply :-)
$pmdm->pre_save();
// If no errors, save.
if ($pmdm->errors) {
return $pmdm->errors;
}else{
$pmdm->save();
}
}
// now check if the recipient wants to have the PM forwarded to someone else
if ( strlen( $rcpinfo["pmautoreplyforward"] ) > 1 )
{
// create a new datamanager
// we recycle the old variable for this....
$pmdm =& datamanager_init('PM', $vbulletin, ERRTYPE_ARRAY);
// set all required fields again
$pmdm->set_info('savecopy', false);
$pmdm->set_info('receipt', false);
$pmdm->set_info('cantrackpm', false);
$pmdm->set_info('forward', false);
$pmdm->set('fromuserid', $autoreplysenderid);
$pmdm->set('fromusername', $autoreplysendername);
$pmdm->setr('title', $forwardtitle);
$pmfwtext = "[quote=" . $userinfo['username'] . "]" . $pm['message'] . "[/quote]";
$pmdm->setr('message', $pmfwtext);
$pmdm->set_recipients( addslashes( $rcpinfo['pmautoreplyforward'] ), $permissions);
$pmdm->set('dateline', TIMENOW);
// and save the forwarded PM
$pmdm->pre_save();
if (empty($pmdm->errors))
{
$pmdm->save();
}
}