Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
Register FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 08-18-2012, 11:42 AM
Gizmo99 Gizmo99 is offline
 
Join Date: Feb 2002
Location: London
Posts: 65
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Send a Auto Reply to PM

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();
    }
} 
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 01:50 PM.


Powered by vBulletin® Version 3.9.0
Copyright ©2000 - 2017, vBulletin Solutions Inc.