Go Back   vb.org Archive > vBulletin Modifications > vBulletin 4.x Modifications > vBulletin 4.x Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Reply to All Details »»
Reply to All
Version: 4.0.1, by ForumsMods ForumsMods is offline
Developer Last Online: Sep 2022 Show Printable Version Email this Page

Category: Private Messages Enhancements - Version: 4.x.x Rating:
Released: 12-16-2010 Last Update: 12-07-2011 Installs: 115
Uses Plugins
Code Changes Translations  
No support by the author.

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.

Download Now

File Type: xml product-pm_replyall.xml (2.3 KB, 230 views)

Screenshots

File Type: png reply_all.png (41.8 KB, 0 views)

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
Благодарность от:
Filgga

Comments
  #12  
Old 11-22-2011, 09:53 AM
Bogart Bogart is offline
 
Join Date: Dec 2006
Posts: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Thunderbird8 View Post
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>
Reply With Quote
  #13  
Old 12-07-2011, 05:19 PM
Carpesimia Carpesimia is offline
 
Join Date: Jun 2011
Posts: 49
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Thunderbird8 View Post
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.
Reply With Quote
  #14  
Old 12-08-2011, 06:20 PM
Carpesimia Carpesimia is offline
 
Join Date: Jun 2011
Posts: 49
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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...
Reply With Quote
Благодарность от:
Bogart
  #15  
Old 12-08-2011, 09:24 PM
ForumsMods ForumsMods is offline
 
Join Date: Aug 2007
Location: Argentina
Posts: 667
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

New version released:
08-12-11: v4.0.1 - Upgrade for vBulletin 4.1.8
Reply With Quote
2 благодарности(ей) от:
Bogart, CharlieDelta
  #16  
Old 12-09-2011, 12:56 AM
ofir24 ofir24 is offline
 
Join Date: Oct 2011
Posts: 162
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

is it work on vb 4.1.7?
Reply With Quote
  #17  
Old 12-13-2011, 11:24 AM
CountRock CountRock is offline
 
Join Date: Jun 2011
Posts: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Simple and brilliant! works great on 4.1.8!
Reply With Quote
  #18  
Old 01-27-2012, 08:50 PM
Baja170 Baja170 is offline
 
Join Date: Jul 2008
Posts: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Works on 4.1.10. Thank you!!
Reply With Quote
  #19  
Old 06-29-2012, 10:07 AM
sross sross is offline
 
Join Date: Mar 2004
Posts: 355
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Anyone use this on 4.1.12 pl2? Thanks
Reply With Quote
  #20  
Old 11-09-2012, 05:42 AM
ricker ricker is offline
 
Join Date: Jun 2003
Location: Apple Valley, CA
Posts: 108
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:16 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.06016 seconds
  • Memory Usage 2,351KB
  • Queries Executed 27 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (3)bbcode_code
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (10)post_thanks_box
  • (4)post_thanks_box_bit
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit
  • (10)post_thanks_postbit_info
  • (9)postbit
  • (2)postbit_attachment
  • (10)postbit_onlinestatus
  • (10)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete