PDA

View Full Version : Private Messages Enhancements - Mass Private Messages


ThorstenA
08 Jan 2009, 13:12
Notice: This mod uses Re-usable Code, so please feel free to port it to vbulletin 4 under your username. Thanks.

What does this modification do?
On memberlist select multiple users for Mass Private Messages them. This is done by only 2 template edits :D
What is Mass PM? It's like Mass Mail in admincp. You write one pm to multiple users.

How to
In template memberlist_resultsbit replace
</tr>
with

<td class="$bgclass"><input type="checkbox" name="deletebox[$userinfo[userid]]" value="$userinfo[userid]" /></td>
</tr>


In template memberlist replace

<form action="profile.php?do=deleteusergroups&amp;usergroupid=$usergroupid" method="post">
<input type="hidden" name="do" value="deleteusergroups" />
<input type="hidden" name="s" value="$session[sessionhash]" />
<input type="hidden" name="securitytoken" value="$bbuserinfo[securitytoken]" />
<input type="hidden" name="usergroupid" value="$usergroupid" />

with

<script type="text/javascript">
<!--
function pm(tform)
{
var users = new Array();
var arrCount = 0;
for (i = 0; i < tform.elements.length; i++)
{
var element = tform.elements[i];
if ((element.name != "allbox") && (element.type == "checkbox") && (element.checked == true))
{
users[arrCount] = element.value;
arrCount++;
}
}
if (arrCount == 0)
{
alert("$vbphrase[no_users_selected]");
}
else
{
var querystring = "";
for (i = 0; i < users.length; i++)
{
querystring += "&userid[]=" + users[i];
}

self.location= "private.php?$session[sessionurl]do=newpm" + querystring;

}
}
// -->
</script>
<if condition="$totalcols++"></if>
<form action="private.php" method="post" name="vbform">

In template memberlist also replace the second instance this code appears:

</form>
with

<input type="button" class="button" value="$vbphrase[send_private_message_to_selected_users]" onclick="pm(this.form);" title="title" style="float:right"/>
</form>

In template memberlist also replace

</tr>
$memberlistbits
with

<td class="thead" align="right"><input type="checkbox" name="allbox" title="$vbphrase[check_uncheck_all]" onclick="js_check_all(this.form);" />$vbphrase[check_uncheck_all]</td>
</tr>
$memberlistbits



How does this template modification work?
This template edit puts a checkbox right to each user. If you click on "Send PMs", the small javascript generates a custom url "private.php?do=newpm&userid[]=1&userid[]=2&userid[]=3" and refreshes actual window with this url. Javascript code is mostly from Quick Links > Open Buddy List.

FAQ
I installed this product. But I don't want to show this feature to everyone. Is there a way to restrict few usergroups, such as admin, supermoderators and moderators?
You can for example only show this mod for moderators, supermoderators and administrators (usergroups 5,7,6). Note that you have to put this condition for any template edit you want to only show to these usergroups.

<if condition="in_array($bbuserinfo[usergroupid], array(5,6,7))">
here you do put template edits
</if>

Hornstar
09 Jan 2009, 01:40
hey do you think you could make a different hack but similiar to this where you can mass pm from within the admincp (I'd like to mass pm certain usergroups sometimes, but I can only email them currently) you would rock if you could do that version.

anyway, thanks for this release, it might come in handy down the track.

ThorstenA
09 Jan 2009, 06:30
This modificationen makes use of memberlist template and therefore has to be completely rewritten for an admincp version. That is why I will not write an admincp version. I'd be glad if another one would complete this task.

NFLfbJunkie
09 Jan 2009, 18:02
I am unsure as to what needs to be done to restrict this to certain user groups. Where exactly does this go and what gets placed in the "here you do put template edits"?

<if condition="in_array($bbuserinfo[usergroupid], array(5,6,7))">
here you do put template edits
</if>

ThorstenA
09 Jan 2009, 18:06
I am unsure as to what needs to be done to restrict this to certain user groups. Where exactly does this go and what gets placed in the "here you do put template edits"?

<if condition="in_array($bbuserinfo[usergroupid], array(5,6,7))">
here you do put template edits
</if>

You have to do this for all changed parts of this template (4x).

NFLfbJunkie
09 Jan 2009, 18:11
Sould I would put "<if condition="in_array($bbuserinfo[usergroupid], array(5,6,7))">" at the beginning of your edits and then </if> at the end of your edits?

So your last edit

<td class="thead" align="right"><input type="checkbox" name="allbox" title="$vbphrase[check_uncheck_all]" onclick="js_check_all(this.form);" />$vbphrase[check_uncheck_all]</td>
</tr>
$memberlistbits


Would be

<if condition="in_array($bbuserinfo[usergroupid], array(5,6,7))">
<td class="thead" align="right"><input type="checkbox" name="allbox" title="$vbphrase[check_uncheck_all]" onclick="js_check_all(this.form);" />$vbphrase[check_uncheck_all]</td>
</tr>
$memberlistbits
</if>

ThorstenA
09 Jan 2009, 18:19
Only changes from template should be within new <if conditions>. For last change it would be like this:
<if condition="in_array($bbuserinfo[usergroupid], array(5,6,7))">
<td class="thead" align="right"><input type="checkbox" name="allbox" title="$vbphrase[check_uncheck_all]" onclick="js_check_all(this.form);" />$vbphrase[check_uncheck_all]</td>
</if>

NFLfbJunkie
09 Jan 2009, 18:24
Why was this left out? I'm still confused. Not that advanced of a coder.

</tr>
$memberlistbits

ThorstenA
09 Jan 2009, 18:29
Why was this left out? I'm still confused. Not that advanced of a coder.

</tr>
$memberlistbits

This is html code from original template. You have to display this html code for all usergroups.

NFLfbJunkie
09 Jan 2009, 18:31
Would it be possible to get each of the required edits with the additional usergroup code? If so, can you PM it to me?

ThorstenA
09 Jan 2009, 18:34
Sorry, this mod is unsupported.

NFLfbJunkie
09 Jan 2009, 18:38
Can you at least help with the second edit. I have the one you already helped with and I try and do the other two on my own. I'm afraid I won't be able to figure out the big edit.

ThorstenA
09 Jan 2009, 18:42
Sorry, this mod is unsupported. If you want to code yourself and have questions about coding, please go to appropriate forums on vbulletin.org. Thank you.

ThorstenA
11 Mar 2009, 03:48
Re-Use: This code may be used in other modifications as long as the original author is credited.

Matt Lathrop
27 Sep 2009, 14:36
Is there a way to select all?

ThorstenA
27 Sep 2009, 20:04
Is there a way to select all?

Yes. There is a "Check / Uncheck All" box.

ThorstenA
18 Nov 2009, 00:39
Notice: This mod uses Re-usable Code, so please feel free to port it to vbulletin 4 under your username. Thanks.

nando99
30 Jul 2010, 22:23
just installed this and reinstalled it like 3 times... i really doubt i'm doing something wrong but you never know :)... it does't work for me... every time i click on "send a private message to selected users" it says "no users selected"...

v3.8.2 here...

any help is appreciated...

togebi33
01 Aug 2010, 17:05
Where is demo ?

ThorstenA
01 Aug 2010, 17:36
No demo available, sorry. I upgraded my board to vb 4 and did not port this product to vb 4.

Notice: This mod uses Re-usable Code, so please feel free to port it to vbulletin 4 under your username. Thanks.

Jorrit787
08 Oct 2010, 22:01
These instructions aren't very precise. There are multiple instances of </form> in the memberlist template. If you don't specify which one to make the edit to, people will mess up their Member List page.

ThorstenA
08 Oct 2010, 23:42
I am unfimiliar with this modification for now. I am using vb 4.0.x and do not use this any more.

You may try to take the first </form> on the template.

Jorrit787
09 Oct 2010, 00:19
I am unfimiliar with this modification for now. I am using vb 4.0.x and do not use this any more.

You may try to take the first </form> on the template.Nice try but it's actually the second instance ;)

ThorstenA
09 Oct 2010, 11:43
Thanks for your clarification! I have updated my description.

mgurain
26 Nov 2010, 14:22
We are waiting for somebody to make it available for vb 4.x ?

Thanks,,

maryx
30 Nov 2010, 15:20
in 4.x this does not appear in the template:

</tr>
$memberlistbits

so I can't do the last template edit.

Anyone have any ideas about how to change this for 4.x?

I did the other template edits OK.

Anyone have any success with this for 4.x?

oldfan
16 Dec 2010, 21:29
Any luck porting this to 4.x yet?
thanks

Tyran1
03 Mar 2013, 02:00
Not works with 3.8.7