vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 2.x Full Releases (https://vborg.vbsupport.ru/forumdisplay.php?f=4)
-   -   [UPDATE] Mass PM (vB 2.0) (https://vborg.vbsupport.ru/showthread.php?t=8742)

WreckRman2 02-14-2001 10:00 PM

An update to the hack posted by chrispadfield at http://www.vbulletin.com/forum/showt...threadid=8582.

Updates:

1. Modified the look of page to match that of the email page.

2. Added select fields to send message to.

4. Fixed $adminuser and set to a hidden field.

Enjoy!

PHP Code:


<?php

require("./global.php");

adminlog();

cpheader();

  if (
$action=="") {

  echo 
"<p>In the private message, you may use \$username, \$password and \$email.</p>";
  
doformheader("masspm","masspm");

  
makehiddencode("fromuserid","$bbuserid");
  
makeinputcode("Subject:","title");
  
maketextareacode("Message:","message","",10,40);

  echo 
"<tr><td colspan=2><b>Private message to users where:</b></td></tr>\n";
  
makeinputcode("User Name contains","ausername");
  if (
$pwdincp!=0) {
    
makeinputcode("and password contains","apassword");
  }
  
makechoosercode("and usergroup is","usergroupid","usergroup",-1,"Any");
  
makeinputcode("and email contains","aemail");
  
makeinputcode("and parent's email contains","parentemail");
  
makeinputcode("and is coppa user (yes, no, blank for don't mind)","coppauser");
  
makeinputcode("and homepage contains","homepage");
  
makeinputcode("and ICQ Number contains","icq");
  
makeinputcode("and AIM Handle contains","aim");
  
makeinputcode("and Yahoo Messenger Handle contains","yahoo");
  
makeinputcode("and Biography contains","biography");
  
makeinputcode("and Signature contains","signature");
  
makeinputcode("and User Title contains","usertitle");
  
makeinputcode("and Join Date is after<br>(Format yyyy-mm-dd, leave blank for today)","joindateafter");
  
makeinputcode("and Join Date is before<br>(Format yyyy-mm-dd, leave blank for today)","joindatebefore");
  
makeinputcode("and Last Visit is after<br>(Format yyyy-mm-dd hh:mm:ss, leave blank for today)","lastvisitafter");
  
makeinputcode("and Last Visit is before<br>(Format yyyy-mm-dd hh:mm:ss, leave blank for today)","lastvisitbefore");
  
makeinputcode("and Last Post is after<br>(Format yyyy-mm-dd hh:mm:ss, leave blank for today)","lastpostafter");
  
makeinputcode("and Last Post is before<br>(Format yyyy-mm-dd hh:mm:ss, leave blank for today)","lastpostbefore");
  
makeinputcode("and Number of Posts is greater than","postslower");
  
makeinputcode("and Number of Posts is less than","postsupper");

  
doformfooter();
}

if (
$action=="masspm") {   

if (
$condition=="") {

    
$condition="1=1";
    if (
$ausername!="") {
      
$condition.=" AND INSTR(username,'".addslashes(htmlspecialchars($ausername))."')>0";
    }
    if (
$apassword!="") {
      
$condition.=" AND INSTR(password,'".addslashes($apassword)."')>0";
    }
    if (
$usergroupid!=-and $usergroupid!="") {
      
$condition.=" AND usergroupid=$usergroupid";
    }
    if (
$aemail!="") {
      
$condition.=" AND INSTR(email,'".addslashes(htmlspecialchars($aemail))."')>0";
    }
    if (
$parentemail!="") {
      
$condition.=" AND INSTR(parentemail,'".addslashes(htmlspecialchars($parentemail))."')>0";
    }
    
$coppauser=strtolower($coppauser);
    if (
$coppauser=="yes") {
      
$condition.=" AND coppauser=1";
    }
    if (
$coppauser=="no") {
      
$condition.=" AND coppauser=0";
    }
    if (
$homepage!="") {
      
$condition.=" AND INSTR(homepage,'".addslashes(htmlspecialchars($homepage))."')>0";
    }
    if (
$icq!="") {
      
$condition.=" AND INSTR(icq,'".addslashes(htmlspecialchars($icq))."')>0";
    }
    if (
$aim!="") {
      
$condition.=" AND INSTR(aim,'".addslashes(htmlspecialchars($aim))."')>0";
    }
    if (
$yahoo!="") {
      
$condition.=" AND INSTR(yahoo,'".addslashes(htmlspecialchars($yahoo))."')>0";
    }
    if (
$biography!="") {
      
$condition.=" AND INSTR(biography,'".addslashes(htmlspecialchars($biography))."')>0";
    }
    if (
$signature!="") {
      
$condition.=" AND INSTR(signature,'".addslashes($signature)."')>0";
    }
    if (
$usertitle!="") {
      
$condition.=" AND INSTR(usertitle,'".addslashes($usertitle)."')>0";
    }
    if (
$joindateafter!="") {
      
$condition.=" AND joindate>UNIX_TIMESTAMP('".addslashes($joindateafter)."')";
    }
    if (
$joindatebefore!="") {
      
$condition.=" AND joindate<UNIX_TIMESTAMP('".addslashes($joindatebefore)."')";
    }
    if (
$lastvisitafter!="") {
      
$condition.=" AND lastvisit>UNIX_TIMESTAMP('".addslashes($lastvisitafter)."')";
    }
    if (
$lastvisitbefore!="") {
      
$condition.=" AND lastvisit<UNIX_TIMESTAMP('".addslashes($lastvisitbefore)."')";
    }
    if (
$lastpostafter!="") {
      
$condition.=" AND lastpost>UNIX_TIMESTAMP('".addslashes($lastpostafter)."')";
    }
    if (
$lastpostbefore!="") {
      
$condition.=" AND lastpost<UNIX_TIMESTAMP('".addslashes($lastpostbefore)."')";
    }
    if (
$postslower!="") {
      
$condition.=" AND posts>'$postslower'";
    }
    if (
$postsupper!="") {
      
$condition.=" AND posts<'$postsupper'";
    }
  }

$users=$DB_site->query("SELECT userid,username,password,email FROM user WHERE $condition");
    
    while (
$user=$DB_site->fetch_array($users)) {

    
$userid=$user[userid];
    
$message=$message;
    
$message=str_replace("\$email",$user[email],$message);
    
$message=str_replace("\$username",$user[username],$message);
    
$message=str_replace("\$password",$user[password],$message);

    
$sql=$DB_site->query("INSERT INTO privatemessage (privatemessageid, folderid, userid, touserid, fromuserid, title, message, dateline, showsignature, iconid, messageread) VALUES (NULL, '0', '$user[userid]', '$user[userid]', '$fromuserid', '".addslashes($title)."', '".addslashes($message)."', UNIX_TIMESTAMP(), '1', '0', '0')");
    
echo 
"PM sent to $user[userid] <br>";

    }
  }
    
?>


02-15-2001 09:00 AM

oh wicked, glad someone made these changes, saved me doing it ;)

02-15-2001 12:49 PM

very nice man :)
thanks alot..

02-15-2001 05:28 PM

Wow, that was quick and easy --

Is there anyway you can limit who it gets sent to?
(using the last visited, or join date fields)

Our board is over a year old and I just sent all these old users a test message which is a waste since they are long gone. Since my board is event based, if they are gone for more than a few months they probablyaren't coming back (which is fine!):)

02-15-2001 07:05 PM

me2be, it is just a matter of ammending the SELECT user line and adding an extra condition after WHERE. I will try and get the exact command i don't know how to do it with dates at the moment but someone might.

02-15-2001 07:08 PM

How about an addition, to MassPM a specific group so you can send to lets say only moderators, I think that would be nice.

02-15-2001 08:19 PM

I have updated the code which adds the select user statments. Also removed the icons as they really aren't needed... Enjoy!

02-15-2001 08:31 PM

What does this mean? It still shows the forum underneath the errors:

Warning: Cannot add header information - headers already sent by (output started at /usr/local/etc/httpd/***/admin/masspm.php:2) in /usr/local/etc/httpd/***/admin/global.php on line 68

Warning: Cannot add header information - headers already sent by (output started at /usr/local/etc/httpd/***/admin/masspm.php:2) in /usr/local/etc/httpd/***/admin/global.php on line 69

Warning: Cannot add header information - headers already sent by (output started at /usr/local/etc/httpd/***/admin/masspm.php:2) in /usr/local/etc/httpd/***/admin/global.php on line 70

Warning: Cannot add header information - headers already sent by (output started at /usr/local/etc/httpd/***/admin/masspm.php:2) in /usr/local/etc/httpd/***/admin/global.php on line 71

Warning: Cannot add header information - headers already sent by (output started at /usr/local/etc/httpd/***/admin/masspm.php:2) in /usr/local/etc/httpd/***/admin/global.php on line 128

02-15-2001 08:43 PM

Not sure why you would get header errors... Maybe you have a space on the first line of your code?

Try the zipped file attached below...

02-15-2001 08:56 PM

Yay!!! It worked!!!!! ** happy dance **


All times are GMT. The time now is 08:22 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01238 seconds
  • Memory Usage 1,807KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete