Helpful Information
 
 
Category: vBulletin.org Forum
Mass 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?

Edit your thread here if you can and add a 2.0 to the title line, so we know its for 2.0.

44 views, so is anyone using it ?

does it work on v1.14? thanks for your nice hack

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.

i'm new, i dunno where can i get it. sorry~~~ thanks for replied

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.

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

Chris,

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

Thanks for the great add-on!

cool, glad someone used it. I have already sent 2 to my members, it is a little difficult to contain oneself ;)

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.

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! ;)

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.

Worked for me... other then the $adminuser. Thanks!

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

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

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.

Is there one for vb 1.14? If so,c an you please provide the code?:cool:

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.

where do u put the codeing?

you have to create a new file and insert it there, most likely into the adminfolder

should it be names something specific?

nope

tx works

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

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.










privacy (GDPR)