vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 4.x Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=245)
-   -   Private Messages Enhancements - Reply to All (https://vborg.vbsupport.ru/showthread.php?t=255424)

ForumsMods 12-16-2010 10:00 PM

Reply to All
 
1 Attachment(s)
Reply to All 4.0.1

Description:
User can reply all when replying to a PM sent to multiple users

Installation:
  1. Import "product-pm_replyall.xml" as a product, overwrite if it's already installed
  2. Check Settings
Where to set option:
Settings-> Options-> Private Messaging Options-> Enable "Reply To All

Languages:

- English

History:
17-12-10: v4.0 First Release
08-12-11: v4.0.1 - Upgrade for vBulletin 4.1.8

This hack is created for your use free of charge. No payment is requested. However, if you would like to donate money for the work I put in to this hack, a donation would show your appreciation.

sulasno 12-17-2010 10:47 PM

tagged and thanks

this should belong to the vB's standard featurers

sross 12-19-2010 09:42 PM

Thank you!

Eq4bits 03-31-2011 09:04 PM

Thank YOU!
Def should be standard!

CharlieDelta 06-23-2011 06:41 PM

Perfect!:up:

av8or1 07-03-2011 04:11 PM

Installed, thanks!

Schoelle 08-09-2011 07:02 PM

Is it possible to change this from the link above the message to an action button next to the existing buttons 'Submit message' and 'Go Advanced' ?

Bogart 11-19-2011 04:42 PM

It does not work in version 4.1 8 vb

BayLee2 11-21-2011 10:35 AM

Quote:

Originally Posted by Bogart (Post 2269637)
It does not work in version 4.1 8 vb

+1 :(

Thunderbird8 11-22-2011 09:20 AM

This broke because the modification is attempting to append its reply to all template to the end of $ccrecipients, which used to be a string. Now that it's an array, it causes the entire array to get scrapped (from what I can tell).

I adjusted it on my end to append the template to $vbphrase['recipients'] instead (also removing the <li> tag from the template itself).

Bogart 11-22-2011 09:53 AM

Quote:

Originally Posted by Thunderbird8 (Post 2270692)
This broke because the modification is attempting to append its reply to all template to the end of $ccrecipients, which used to be a string. Now that it's an array, it causes the entire array to get scrapped (from what I can tell).

I adjusted it on my end to append the template to $vbphrase['recipients'] instead (also removing the <li> tag from the template itself).

Do not quite understand how you do what you have explained. Could you explain about the code?
Sorry my bad English
Thank you very much.

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[<li><a href="private.php?{vb:raw session.sessionurl}do=newpm&amp;pmid={vb:raw pm.pmid}&amp;replyto=all" class="username">{vb:rawphrase pm_reply_to_all}</a></li>]]></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);
        $ccrecipients .= $templater->render();
        $page_templater->register('ccrecipients', $ccrecipients);
}
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>


Carpesimia 12-07-2011 05:19 PM

Quote:

Originally Posted by Thunderbird8 (Post 2270692)
This broke because the modification is attempting to append its reply to all template to the end of $ccrecipients, which used to be a string. Now that it's an array, it causes the entire array to get scrapped (from what I can tell).

I adjusted it on my end to append the template to $vbphrase['recipients'] instead (also removing the <li> tag from the template itself).

I dont understand your fix, either. Can you be a little more descriptive on how to get this to work? I'd really appreciate it, my boss is on me to get this working and ive spent like 3 hours on this to no avail.

Carpesimia 12-08-2011 06:20 PM

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&amp;pmid={vb:raw pm.pmid}&amp;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...

ForumsMods 12-08-2011 09:24 PM

New version released:
08-12-11: v4.0.1 - Upgrade for vBulletin 4.1.8

ofir24 12-09-2011 12:56 AM

is it work on vb 4.1.7?

CountRock 12-13-2011 11:24 AM

Simple and brilliant! works great on 4.1.8!

Baja170 01-27-2012 08:50 PM

Works on 4.1.10. Thank you!!

sross 06-29-2012 10:07 AM

Anyone use this on 4.1.12 pl2? Thanks

ricker 11-09-2012 05:42 AM

Not working on the latest upgrade. But this one works:
https://vborg.vbsupport.ru/showthread.php?t=285580


All times are GMT. The time now is 05:23 PM.

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.03633 seconds
  • Memory Usage 1,806KB
  • 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
  • (3)bbcode_code_printable
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (19)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
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete