vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 4.x Template Modifications (https://vborg.vbsupport.ru/forumdisplay.php?f=246)
-   -   Private Messages Enhancements - Move Private Message Download Options (https://vborg.vbsupport.ru/showthread.php?t=266278)

grey_goose 07-04-2011 10:00 PM

Move Private Message Download Options
 
1 Attachment(s)
This is fairly straightforward, and something I've done because so many of my users overlooked that they could download their Private Messages. Basically, we're moving the option from the easily-overlooked bottom of the page to where the other relevant info is: the usage bar, and the other "All" option -- Delete. Now users can easily see that saving their messages is an option.

ACP > Styles & Templates > Search in Templates > pm_messagelist

Find (Line 105 of a default template):
Code:

                <h3 class="blocksubhead">{vb:rawphrase x_contains_y_z_messages_of_xx, {vb:raw foldername} {vb:raw totalmessages} {vb:raw pmtotal}, {vb:raw pmquota}} (<a href="private.php?{vb:raw session.sessionurl}do=emptyfolder&amp;folderid={vb:raw folderid}">{vb:rawphrase empty_folder}</a>)</h3>
Replace With:
Code:

                <h3 class="blocksubhead">{vb:rawphrase x_contains_y_z_messages_of_xx, {vb:raw foldername} {vb:raw totalmessages} {vb:raw pmtotal}, {vb:raw pmquota}}
                <br /><a href="private.php?{vb:raw session.sessionurl}do=emptyfolder&amp;folderid={vb:raw folderid}">{vb:rawphrase empty_folder}</a> or <strong>{vb:rawphrase download_all_private_messages_as}</strong>:  <a href="private.php?{vb:raw session.sessionurl}do=downloadpm&amp;dowhat=xml">{vb:rawphrase xml}</a> | <a href="private.php?{vb:raw session.sessionurl}do=downloadpm&amp;dowhat=csv">{vb:rawphrase csv}</a> | <a href="private.php?{vb:raw session.sessionurl}do=downloadpm&amp;dowhat=txt">{vb:rawphrase text}</a></h3>

To remove the original options, delete (found on lines 139-144 of the default template):
Code:

        <div>
                <strong>{vb:rawphrase download_all_private_messages_as}</strong>:<br />
                <a href="private.php?{vb:raw session.sessionurl}do=downloadpm&amp;dowhat=xml">{vb:rawphrase xml}</a> |
                <a href="private.php?{vb:raw session.sessionurl}do=downloadpm&amp;dowhat=csv">{vb:rawphrase csv}</a> |
                <a href="private.php?{vb:raw session.sessionurl}do=downloadpm&amp;dowhat=txt">{vb:rawphrase text}</a>
        </div>


HMBeaty 07-04-2011 11:22 PM

Looks good. Tagged for later! Thanks :)

Taurus1 07-05-2011 01:57 AM

Great stuff. Thanks. Works a charm. I think it will look even better if we can move that whole part to the top. Does anyone know how to do that perhaps? Thanks!

grey_goose 07-05-2011 03:01 AM

Cool :)

Taurus1, take this and copy/paste it, replacing your whole pm_messagelist. It will move the usage bar, etc. to the top as well as doing the move options.

NOTE: Back up your old pm_messagelist first, in case you change your mind.

Code:

<vb:if condition="$show['messagelist']">

        <script type="text/javascript">
        <!--
                vB_XHTML_Ready.subscribe(
                        function() { register_inlinemod("pmfolderlist", "li", "blockrow", "pm"); }
                );
        //-->
        </script>
       
       
       
        <div class="block" id="foldercontrols">
        <div class="blockhead">
                <div class="popupgroup" id="folderpicker">
                        <div class="popupmenu">
                                <a href="javascript://" class="popupctrl">{vb:rawphrase jump_to_folder}</a>
                                <ul class="popupbody popuphover">
                                        <vb:each from="folderjump" value="folder">
                                                <li><a href="private.php?{vb:raw session.sessionurl}folderid={vb:raw folder.id}">{vb:raw folder.name} ({vb:raw folder.count} {vb:raw folder.type})</a></li>
                                        </vb:each>
                                </ul>
                        </div>
                </div>       
                <h2>{vb:rawphrase folder_controls}</h2>
        </div>
        <div class="blockbody settings_form_border">
                <h3 class="blocksubhead">{vb:rawphrase x_contains_y_z_messages_of_xx, {vb:raw foldername} {vb:raw totalmessages} {vb:raw pmtotal}, {vb:raw pmquota}}
                <br /><a href="private.php?{vb:raw session.sessionurl}do=emptyfolder&amp;folderid={vb:raw folderid}">{vb:rawphrase empty_folder}</a> or <strong>{vb:rawphrase download_all_private_messages_as}</strong>:  <a href="private.php?{vb:raw session.sessionurl}do=downloadpm&amp;dowhat=xml">{vb:rawphrase xml}</a> | <a href="private.php?{vb:raw session.sessionurl}do=downloadpm&amp;dowhat=csv">{vb:rawphrase csv}</a> | <a href="private.php?{vb:raw session.sessionurl}do=downloadpm&amp;dowhat=txt">{vb:rawphrase text}</a></h3>
                <div class="blockrow">
               
                        <div class="floatcontainer totals">
                                <vb:if condition="$show['thisfoldertotal']">
                                        <div class="thisfolder" style="width:{vb:raw tdwidth.folder}%" title="{vb:rawphrase messages_stored_in_folder_x, {vb:raw totalmessages}}"></div>
                                </vb:if>
                                <vb:if condition="$show['allfolderstotal']">
                                        <div class="allfolders" style="width:{vb:raw tdwidth.total}%" title="{vb:rawphrase total_messages_in_all_folders_x, {vb:raw bbuserinfo.pmtotal}}"></div>
                                </vb:if>
                                <vb:if condition="$tdwidth['quota'] > 0">
                                        <div class="quota" style="width:<vb:if condition="is_browser('ie') AND is_browser('ie') < 8">{vb:math {vb:raw tdwidth.quota}-0.1}<vb:else />{vb:raw tdwidth.quota}</vb:if>%" title="{vb:rawphrase maximum_allowed_messages_x, {vb:raw permissions.pmquota}}"></div>
                                </vb:if>               
                        </div>
                </div>
        </div>
        <div class="blockfoot floatcontainer">
                <vb:if condition="$receipts['unconfirmed'] OR $receipts['confirmed']">
                        <a href="private.php?{vb:raw session.sessionurl}do=trackpm">{vb:rawphrase you_have_x_and_y_receipts, {vb:raw receipts.confirmed}, {vb:raw receipts.unconfirmed}}</a>
                </vb:if>       
        </div>
        </div>
       

        <vb:if condition="$pagenav">
        <div id="above_postlist">
                <div id="pagination_top">
                        {vb:raw pagenav}
                </div>
                <div class="folderstats">{vb:rawphrase showing_messages_x_to_y_of_z, {vb:raw startmessage}, {vb:raw endmessage}, {vb:raw totalmessages}}</div>
        </div>
        </vb:if>

        <form id="pmform" action="private.php?do=managepm&amp;folderid={vb:raw folderid}" method="post">
                <input type="hidden" name="s" value="{vb:raw session.sessionhash}" />
                <input type="hidden" name="securitytoken" value="{vb:raw bbuserinfo.securitytoken}" />
                <input type="hidden" name="do" value="managepm" />
                <input type="hidden" name="folderid" value="{vb:raw folderid}" />
       
                <div class="block" id="pmfolderlist">
                        <input type="checkbox" name="allbox" class="checkall pm_checkall" id="checkall_all" title="{vb:rawphrase check_uncheck_all}" value="all" />
                        <dl class="stats foldercount">
                                <dt class="folder_count">{vb:rawphrase messages}</dt>
                                <dd class="folder_count">{vb:raw totalmessages}</dd>
                        </dl>
                        <h2 class="blockhead">{vb:raw foldername}</h2>
                        <div class="blockbody settings_form_border">
                                <div class="blocksubhead sortrow">
                                        <div class="date">
                                                <a href="{vb:raw orderlinks.date}&amp;pp={vb:raw perpage}&amp;page={vb:raw pagenumber}">{vb:rawphrase date}</a> {vb:raw sortarrow.date}
                                        </div>
                                        <div>
                                                <a href="{vb:raw orderlinks.title}&amp;pp={vb:raw perpage}&amp;page={vb:raw pagenumber}">{vb:rawphrase title}</a> {vb:raw sortarrow.title} /
                                                <a href="{vb:raw orderlinks.sender}&amp;pp={vb:raw perpage}&amp;page={vb:raw pagenumber}">{vb:rawphrase sender}</a> {vb:raw sortarrow.sender}
                                        </div>
                                </div>
                                <vb:if condition="$totalmessages">
                                        {vb:raw messagelist_periodgroups} 
                                <vb:else />
                                        <div class="blockrow">
                                                {vb:raw no_messages_to_display}
                                        </div>
                                </vb:if>
                        </div>
                        <div class="blockfoot settings_form_top_border">
                                <div class="navpopupmenu popupmenu nohovermenu">
                                        <a href="javascript://" class="popupctrl"><span class="ctrlcontainer">{vb:rawphrase selected_messages} (<span id="pm_inlinemod_count">0</span>)</span></a>
                                        <ul class="popupbody popuphover">
                                                <vb:if condition="$show['movetofolder']"><li><label><input type="radio" name="dowhat" value="move" checked="checked" /> {vb:rawphrase move_to_folder}...</label></li></vb:if>
                                                <li><label><input type="radio" name="dowhat" value="delete" /> {vb:rawphrase delete}</label></li>
                                                <li><label><input type="radio" name="dowhat" value="read" /> {vb:rawphrase mark_as_read}</label></li>
                                                <li><label><input type="radio" name="dowhat" value="unread" /> {vb:rawphrase mark_as_unread}</label></li>
                                                <li><label><input type="radio" name="dowhat" value="xml" /> {vb:rawphrase download_as_xml}</label></li>
                                                <li><label><input type="radio" name="dowhat" value="csv" /> {vb:rawphrase download_as_csv}</label></li>
                                                <li><label><input type="radio" name="dowhat" value="txt" /> {vb:rawphrase download_as_text}</label></li>
                                                <li><label><input type="radio" name="dowhat" value="clear" /> {vb:rawphrase deselect_all_messages}</label></li>
                                                <li class="formsubmit"><label><input id="pm_inlinego" type="submit" class="button" value="{vb:rawphrase proceed_ellipsis}" /></label></li>
                                        </ul>
                                </div>
                                <div class="clear"></div>
                        </div>
                </div>               
               
        <script type="text/javascript">
        <!--
                vB_XHTML_Ready.subscribe(
                        function() { register_inlinemod_checkboxes("pmform", "li", "pmbit", "pmform", "pm"); }
                );
        //-->
        </script>
               
        </form>
</vb:if>
<vb:if condition="$pagenav">
<div id="below_postlist">
        <div id="pagination_bottom">
                {vb:raw pagenav}
        </div>
</div>
</vb:if>

{vb:raw sortfilter}



<div id="pmlist_info" class="floatcontainer">
        <div id="forum_icon_legend" >
                <h5>{vb:rawphrase icon_legend}</h5>
                <dl>
                        <table width="100%"> 
                        <tr>
                                <td width="25%" valign="top"><dt><img src="{vb:stylevar imgdir_statusicon}/pm_new.png" alt="{vb:rawphrase unread_message}" /></dt><dd>{vb:rawphrase unread_message}</dd></td>
                                <td width="25%" valign="top"><dt><img src="{vb:stylevar imgdir_statusicon}/pm_old.png" alt="{vb:rawphrase read_message}" /></dt><dd>{vb:rawphrase read_message}</dd></td>
                                <td width="25%" valign="top"><dt><img src="{vb:stylevar imgdir_statusicon}/pm_replied.png" alt="{vb:rawphrase repliedto_message}" /></dt><dd>{vb:rawphrase repliedto_message}</dd></td>
                                <td width="25%" valign="top"><dt><img src="{vb:stylevar imgdir_statusicon}/pm_forwarded.png" alt="{vb:rawphrase forwarded_message}" /></dt><dd>{vb:rawphrase forwarded_message}</dd></td>
                        </tr>
                        </table>
                </dl>
        </div>
</div> 

{vb:raw forumjump}


Taurus1 07-05-2011 03:42 AM

Thank you so much!! Makes it even easier now!

merk_aus 07-06-2011 12:52 AM

Thanks for this. Like Taurus1 I also enjoyed moving it all to the top - great work.

Randomm 07-08-2011 05:45 PM

when I do this the previous
Quote:

Download all Private Messages as:
XML | CSV | Text
still remains leaving 2 of these

grey_goose 07-08-2011 08:22 PM

Ah, indeed. I didn't remove the one at the bottom. I've updated the original mod post; or you can copy/paste this:

Code:

<vb:if condition="$show['messagelist']">

        <script type="text/javascript">
        <!--
                vB_XHTML_Ready.subscribe(
                        function() { register_inlinemod("pmfolderlist", "li", "blockrow", "pm"); }
                );
        //-->
        </script>

        <vb:if condition="$pagenav">
        <div id="above_postlist">
                <div id="pagination_top">
                        {vb:raw pagenav}
                </div>
                <div class="folderstats">{vb:rawphrase showing_messages_x_to_y_of_z, {vb:raw startmessage}, {vb:raw endmessage}, {vb:raw totalmessages}}</div>
        </div>
        </vb:if>

        <form id="pmform" action="private.php?do=managepm&amp;folderid={vb:raw folderid}" method="post">
                <input type="hidden" name="s" value="{vb:raw session.sessionhash}" />
                <input type="hidden" name="securitytoken" value="{vb:raw bbuserinfo.securitytoken}" />
                <input type="hidden" name="do" value="managepm" />
                <input type="hidden" name="folderid" value="{vb:raw folderid}" />
       
                <div class="block" id="pmfolderlist">
                        <input type="checkbox" name="allbox" class="checkall pm_checkall" id="checkall_all" title="{vb:rawphrase check_uncheck_all}" value="all" />
                        <dl class="stats foldercount">
                                <dt class="folder_count">{vb:rawphrase messages}</dt>
                                <dd class="folder_count">{vb:raw totalmessages}</dd>
                        </dl>
                        <h2 class="blockhead">{vb:raw foldername}</h2>
                        <div class="blockbody settings_form_border">
                                <div class="blocksubhead sortrow">
                                        <div class="date">
                                                <a href="{vb:raw orderlinks.date}&amp;pp={vb:raw perpage}&amp;page={vb:raw pagenumber}">{vb:rawphrase date}</a> {vb:raw sortarrow.date}
                                        </div>
                                        <div>
                                                <a href="{vb:raw orderlinks.title}&amp;pp={vb:raw perpage}&amp;page={vb:raw pagenumber}">{vb:rawphrase title}</a> {vb:raw sortarrow.title} /
                                                <a href="{vb:raw orderlinks.sender}&amp;pp={vb:raw perpage}&amp;page={vb:raw pagenumber}">{vb:rawphrase sender}</a> {vb:raw sortarrow.sender}
                                        </div>
                                </div>
                                <vb:if condition="$totalmessages">
                                        {vb:raw messagelist_periodgroups} 
                                <vb:else />
                                        <div class="blockrow">
                                                {vb:raw no_messages_to_display}
                                        </div>
                                </vb:if>
                        </div>
                        <div class="blockfoot settings_form_top_border">
                                <div class="navpopupmenu popupmenu nohovermenu">
                                        <a href="javascript://" class="popupctrl"><span class="ctrlcontainer">{vb:rawphrase selected_messages} (<span id="pm_inlinemod_count">0</span>)</span></a>
                                        <ul class="popupbody popuphover">
                                                <vb:if condition="$show['movetofolder']"><li><label><input type="radio" name="dowhat" value="move" checked="checked" /> {vb:rawphrase move_to_folder}...</label></li></vb:if>
                                                <li><label><input type="radio" name="dowhat" value="delete" /> {vb:rawphrase delete}</label></li>
                                                <li><label><input type="radio" name="dowhat" value="read" /> {vb:rawphrase mark_as_read}</label></li>
                                                <li><label><input type="radio" name="dowhat" value="unread" /> {vb:rawphrase mark_as_unread}</label></li>
                                                <li><label><input type="radio" name="dowhat" value="xml" /> {vb:rawphrase download_as_xml}</label></li>
                                                <li><label><input type="radio" name="dowhat" value="csv" /> {vb:rawphrase download_as_csv}</label></li>
                                                <li><label><input type="radio" name="dowhat" value="txt" /> {vb:rawphrase download_as_text}</label></li>
                                                <li><label><input type="radio" name="dowhat" value="clear" /> {vb:rawphrase deselect_all_messages}</label></li>
                                                <li class="formsubmit"><label><input id="pm_inlinego" type="submit" class="button" value="{vb:rawphrase proceed_ellipsis}" /></label></li>
                                        </ul>
                                </div>
                                <div class="clear"></div>
                        </div>
                </div>               
               
        <script type="text/javascript">
        <!--
                vB_XHTML_Ready.subscribe(
                        function() { register_inlinemod_checkboxes("pmform", "li", "pmbit", "pmform", "pm"); }
                );
        //-->
        </script>
               
        </form>
</vb:if>
<vb:if condition="$pagenav">
<div id="below_postlist">
        <div id="pagination_bottom">
                {vb:raw pagenav}
        </div>
</div>
</vb:if>

{vb:raw sortfilter}

<div class="block" id="foldercontrols">
        <div class="blockhead">
                <div class="popupgroup" id="folderpicker">
                        <div class="popupmenu">
                                <a href="javascript://" class="popupctrl">{vb:rawphrase jump_to_folder}</a>
                                <ul class="popupbody popuphover">
                                        <vb:each from="folderjump" value="folder">
                                                <li><a href="private.php?{vb:raw session.sessionurl}folderid={vb:raw folder.id}">{vb:raw folder.name} ({vb:raw folder.count} {vb:raw folder.type})</a></li>
                                        </vb:each>
                                </ul>
                        </div>
                </div>       
                <h2>{vb:rawphrase folder_controls}</h2>
        </div>
        <div class="blockbody settings_form_border">
                <h3 class="blocksubhead">{vb:rawphrase x_contains_y_z_messages_of_xx, {vb:raw foldername} {vb:raw totalmessages} {vb:raw pmtotal}, {vb:raw pmquota}}
                <br /><a href="private.php?{vb:raw session.sessionurl}do=emptyfolder&amp;folderid={vb:raw folderid}">{vb:rawphrase empty_folder}</a> or <strong>{vb:rawphrase download_all_private_messages_as}</strong>:  <a href="private.php?{vb:raw session.sessionurl}do=downloadpm&amp;dowhat=xml">{vb:rawphrase xml}</a> | <a href="private.php?{vb:raw session.sessionurl}do=downloadpm&amp;dowhat=csv">{vb:rawphrase csv}</a> | <a href="private.php?{vb:raw session.sessionurl}do=downloadpm&amp;dowhat=txt">{vb:rawphrase text}</a></h3>
                <div class="blockrow">
               
                        <div class="floatcontainer totals">
                                <vb:if condition="$show['thisfoldertotal']">
                                        <div class="thisfolder" style="width:{vb:raw tdwidth.folder}%" title="{vb:rawphrase messages_stored_in_folder_x, {vb:raw totalmessages}}"></div>
                                </vb:if>
                                <vb:if condition="$show['allfolderstotal']">
                                        <div class="allfolders" style="width:{vb:raw tdwidth.total}%" title="{vb:rawphrase total_messages_in_all_folders_x, {vb:raw bbuserinfo.pmtotal}}"></div>
                                </vb:if>
                                <vb:if condition="$tdwidth['quota'] > 0">
                                        <div class="quota" style="width:<vb:if condition="is_browser('ie') AND is_browser('ie') < 8">{vb:math {vb:raw tdwidth.quota}-0.1}<vb:else />{vb:raw tdwidth.quota}</vb:if>%" title="{vb:rawphrase maximum_allowed_messages_x, {vb:raw permissions.pmquota}}"></div>
                                </vb:if>               
                        </div>
               
                </div>
        </div>
        <div class="blockfoot floatcontainer">
                <vb:if condition="$receipts['unconfirmed'] OR $receipts['confirmed']">
                        <a href="private.php?{vb:raw session.sessionurl}do=trackpm">{vb:rawphrase you_have_x_and_y_receipts, {vb:raw receipts.confirmed}, {vb:raw receipts.unconfirmed}}</a>
                </vb:if>       
        </div>
</div>

<div id="pmlist_info" class="floatcontainer">
        <div id="forum_icon_legend" >
                <h5>{vb:rawphrase icon_legend}</h5>
                <dl>
                        <dt><img src="{vb:stylevar imgdir_statusicon}/pm_new.png" alt="{vb:rawphrase unread_message}" /></dt><dd>{vb:rawphrase unread_message}</dd>
                        <dt><img src="{vb:stylevar imgdir_statusicon}/pm_old.png" alt="{vb:rawphrase read_message}" /></dt><dd>{vb:rawphrase read_message}</dd>
                        <dt><img src="{vb:stylevar imgdir_statusicon}/pm_replied.png" alt="{vb:rawphrase repliedto_message}" /></dt><dd>{vb:rawphrase repliedto_message}</dd>
                        <dt><img src="{vb:stylevar imgdir_statusicon}/pm_forwarded.png" alt="{vb:rawphrase forwarded_message}" /></dt><dd>{vb:rawphrase forwarded_message}</dd>
                </dl>
        </div>
</div>

{vb:raw forumjump}


Randomm 07-09-2011 05:09 AM

I was able to delete the original by myself by finding the code thru FF's "View Selection Source"
Felt great figuring it out by myself since I'm still a noob

Anyway installed and rated
Thanks

as7apcool 07-12-2011 05:29 PM

Thanks for this

grey_goose 07-12-2011 07:13 PM

Awesome, very welcome. It feels great to give a little something back :)

J. Schultz 08-09-2011 07:12 PM

Installed this on vB 4.1.4 a few weeks ago, and have received many positive comments on it. I went with the options at the top that grey_goose posted. Thanks!

grey_goose 08-09-2011 07:33 PM

Very welcome, and thanks for the feedback :)

stained 09-15-2011 05:00 PM

Thanks very much for this :)

ChimeraRS 09-22-2011 03:24 PM

Excellent mod, thanks!

RichieBoy67 05-21-2012 12:45 AM

Hmm wish I found this post last night..took me an hour to figure out which and where. haha

Anyhow, my client found another download option. She does not want members on her site to be able to download private messages. I have removed the code above but there is another option in a drop down. Does anyone know how to remove the download option from there??

Thanks

Not meaning to trample your thread..just seemed related..

Never mind...was very easy..I just could not see it because I had no messages..

pantani 05-25-2012 07:09 PM

Verry nice indeed thanks.
Could this be made that it is used by let say only moderators or admins? or other usergroup, would be nice if i could choose witch usergroup could use this function.


All times are GMT. The time now is 06:18 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.01273 seconds
  • Memory Usage 1,875KB
  • 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
  • (5)bbcode_code_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (17)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