PDA

View Full Version : Mass Pm


chrispadfield
02-13-2001, 10:00 PM
Ok my first hack (and very simple)

What it does is lets an admin pm everyone. This is very simple at the moment and could be made more complicated like the email one in later versions. It only pm's people who have set pm to on in their profile.

I have attached the file but this is it:


<?
require("./global.php");

echo "<html><body>";

echo "<h1>Mass PM</h1><br>";
echo "This will send a pm to every user who has set receive pm on.";
echo "<FORM METHOD=\"post\" ACTION=\"$PHP_SELF\">";
echo "Your user number:<br>";
echo "<INPUT type=\"text\" NAME=\"adminuser\" value=\"$adminuser\" SIZE=5></P>";
echo "PM Title:<br>";
echo "<INPUT type=\"text\" NAME=\"title\" SIZE=\"40\"></P>";
echo "Message:<br>";
echo "<textarea name=\"message\" rows=\"8\" cols=\"0\"></textarea><br>";
echo "<INPUT type=\"hidden\" NAME=\"action\" value=\"do\">";
echo "<INPUT type=\"submit\" NAME=\"Submit\">";
echo "<P><P><P>";



if ($action=="do") {

echo "<html><body>";



$forums=$DB_site->query("SELECT userid,username FROM user WHERE receivepm=1 ORDER BY userid");

while ($forum=$DB_site->fetch_array($forums)) {


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

echo "pm sent to $forum[userid] <br>";


}

echo "</body></html>";

}
?>



this is my first mod so i would like comments on what i am doing wrong!

p.s. do i get an award for the first v2.0 mod?

02-14-2001, 07:21 AM
Edit your thread here if you can and add a 2.0 to the title line, so we know its for 2.0.

02-14-2001, 09:51 AM
44 views, so is anyone using it ?

02-14-2001, 10:36 AM
does it work on v1.14? thanks for your nice hack

02-14-2001, 10:41 AM
i don't know what the table structure is for 1.4, if you post the table structure here for me i can edit it so that it will work.

02-14-2001, 12:48 PM
i'm new, i dunno where can i get it. sorry~~~ thanks for replied

02-14-2001, 01:12 PM
you are using v 1.4 are you? (i would recommend upgrading) but if you don't want to.

install phpmyadmin from www.phpwizard.com (i think that is right, otherwise search for it at www.hotscripts.com

Then once installed (it is very useful) click on your database with your forum in it and then you should see all the tables appear. Click on the privatemessage one and copy and paste the next page. It just shows me what the names of the columns are.

02-14-2001, 01:38 PM
i'm not sure is this you looking for.
msgid mediumint(8) UNSIGNED No auto_increment Change Drop Primary Index Unique
toid smallint(5) UNSIGNED No 0 Change Drop Primary Index Unique
fromid smallint(5) UNSIGNED No 0 Change Drop Primary Index Unique
title varchar(100) No Change Drop Primary Index Unique
text mediumtext No Change Drop Primary Index Unique
datetime datetime No 0000-00-00 00:00:00 Change Drop Primary Index Unique
signature tinyint(4) No 0 Change Drop Primary Index Unique
iconid smallint(5) No 0 Change Drop Primary Index Unique

Thanks a lot for all your helping

02-15-2001, 12:10 AM
Chris,

I just used it for a little over 1,500 members and it was FAST!

Thanks for the great add-on!

02-15-2001, 12:33 AM
cool, glad someone used it. I have already sent 2 to my members, it is a little difficult to contain oneself ;)

02-15-2001, 12:50 AM
It would be ever so more resourceful if the hack was to only save the message once into a "systemmessage" table that each user would then receive a message from. You could stick a "lastreadsystemmessagetime" field into the user table to figure out which users have read the message.

02-15-2001, 12:57 AM
Originally posted by freddie
It would be ever so more resourceful if the hack was to only save the message once into a "systemmessage" table that each user would then receive a message from. You could stick a "lastreadsystemmessagetime" field into the user table to figure out which users have read the message.

Damn smarty-pants! ;)

02-15-2001, 12:57 AM
true and it was something i thought about although slughtly differently. In the end this was a lot quicker and combine with a 30 day expiry date script of pms send by admin (me) which have not been read it will quickly get rid of those ones you don't need there any more.

Also, how under your suggestion would you do it for more than one message? arn't you then going to need more than one column in the user profile field or in the end perhaps an extra table linking user with adminmessage - by the time you have done that you loose most of the gains you started with.

02-15-2001, 06:08 AM
Worked for me... other then the $adminuser. Thanks!

PS. Maybe you could upgrade the style sheet to match the rest of the admin area. :)

02-15-2001, 08:03 AM
Heck you did the hard part so I thought I could clean the look of the page up for you/me...

Updated code at http://www.vbulletin.com/forum/showthread.php?threadid=8742

02-15-2001, 09:01 AM
cool thanks.

next little thing is to let you select usergroups so that you can say send one to all your moderators.. soon i hope.

theprof
04-08-2001, 10:14 AM
Is there one for vb 1.14? If so,c an you please provide the code?:cool:

John Harrison
04-08-2001, 11:12 AM
Originally posted by theprof
Is there one for vb 1.14? If so,c an you please provide the code?:cool:

I dont think there is one.
As this was released for v2.0

But if there was to be one it would be for v1.1.6 most likely.

wolfe
10-07-2002, 08:40 PM
where do u put the codeing?

Xenon
10-07-2002, 08:43 PM
you have to create a new file and insert it there, most likely into the adminfolder

wolfe
10-08-2002, 03:24 PM
should it be names something specific?

Xenon
10-08-2002, 03:43 PM
nope

wolfe
10-13-2002, 01:19 AM
tx works

Javazoid
03-12-2003, 03:15 AM
where do i put this text and what do i name the file and where do i put that?

where is this feature shown? in admin cp or user cp.

thanks

i looked up at the other posts but i created a file named masspm.php and put that code in it in my admin folder and it dun work. thanks

Erwin
03-12-2003, 05:31 AM
Put it in the admin folder, and run the file from the admin folder. If you edit the admin/index.php and add a link to it from there, it will show up in your admin folder.