Ok people, I got it working, and nicely. Here is the updated XML that I used to get it to work. *note* this requires 1 template EDIT in order to do it the way i did it.
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<product productid="pm_replyall" active="1">
<title>Reply to All - PM</title>
<description>User can reply all when replying to a PM sent to multiple users</description>
<version>4.0</version>
<url>http://www.forumsmods.com/</url>
<versioncheckurl />
<dependencies>
<dependency dependencytype="vbulletin" minversion="4.0.0 Alpha 1" maxversion="" />
</dependencies>
<codes>
</codes>
<templates>
<template name="pm_replyall" templatetype="template" date="1292609646" username="vB Style" version="4.0"><![CDATA[ - <b>[<a href="private.php?{vb:raw session.sessionurl}do=newpm&pmid={vb:raw pm.pmid}&replyto=all" class="username">{vb:rawphrase pm_reply_to_all}</a>]</b>]]></template>
</templates>
<stylevardfns>
</stylevardfns>
<stylevars>
</stylevars>
<plugins>
<plugin active="1" executionorder="5">
<title>Cache Templates</title>
<hookname>cache_templates</hookname>
<phpcode><![CDATA[if (THIS_SCRIPT == 'private' AND $_REQUEST['do'] == 'showpm')
{
$cache[] = 'pm_replyall';
}]]></phpcode>
</plugin>
<plugin active="1" executionorder="5">
<title>Reply to All - PM</title>
<hookname>private_complete</hookname>
<phpcode><![CDATA[if ($vbulletin->options['pmreplyall'] AND ($_REQUEST['do'] == 'showpm' AND !empty($ccrecipients)))
{
$templater = vB_Template::create('pm_replyall');
$templater->register('pm', $pm);
$repall = $templater->render();
$page_templater->register('repall', $repall);
}
if ($vbulletin->options['pmreplyall'] AND ($_REQUEST['replyto'] == 'all' AND $_REQUEST['do'] == 'newpm' AND !empty($pm['touserarray'])))
{
$touser = unserialize($pm['touserarray']);
if (is_array($touser))
{
unset($touser['cc'][array_search($vbulletin->userinfo['username'], $touser['cc'])]);
$pm['recipients'] .= implode(' ; ', $touser['cc']);
$page_templater->register('pm', $pm);
}
}]]></phpcode>
</plugin>
</plugins>
<phrases>
<phrasetype name="Private Messaging" fieldname="pm">
<phrase name="pm_reply_to_all" date="1292609222" username="vB Style" version="4.0"><![CDATA[Reply to All]]></phrase>
</phrasetype>
<phrasetype name="vBulletin Settings" fieldname="vbsettings">
<phrase name="setting_pmreplyall_desc" date="1292609743" username="vB Style" version="4.0"><![CDATA[Enable "Reply To All" when replying to a PM sent to multiple users]]></phrase>
<phrase name="setting_pmreplyall_title" date="1292609743" username="vB Style" version="4.0"><![CDATA[Enable "Reply To All"]]></phrase>
</phrasetype>
</phrases>
<options>
<settinggroup name="pm" displayorder="440">
<setting varname="pmreplyall" displayorder="150">
<datatype>boolean</datatype>
<optioncode>yesno</optioncode>
<defaultvalue>1</defaultvalue>
</setting>
</settinggroup>
</options>
<helptopics>
</helptopics>
<cronentries>
</cronentries>
<faqentries>
</faqentries>
</product>
Then, inside the pm_showpm template (in the Private Message Templates), add {vb:raw repall} wherever you want the REPLY ALL link to show. For example, here is where I put mine:
Code:
<div id="showpm">
<vb:if condition="$show['recipients']">
<div class="abovepm floatcontainer">
<vb:if condition="$ccrecipients">
<div>
<span class="bold">{vb:rawphrase recipients}: </span>
<ol class="commalist">
<vb:each from="ccrecipients" value="row">
<li><a href="{vb:link member|js, {vb:raw row}}" class="username understate">{vb:raw row.username}</a>{vb:raw row.comma}</li>
</vb:each> {vb:raw repall}
</ol>
</div>
</vb:if>
I put mine right on the same line as each name. So the outcome looks like this:
Recipient users: user1, user2, user3 -
[Reply to all]
That's it. I opted for the template edit because it let me put the reply all exactly where i wanted it, without trying to piggyback it on another variable.
I hope this helps...