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)

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 02:59 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.01141 seconds
  • Memory Usage 1,772KB
  • 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
  • (2)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (9)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
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete