vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.6 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=194)
-   -   Private Messages Enhancements - View Unread PMs (https://vborg.vbsupport.ru/showthread.php?t=144293)

MPDev 04-07-2007 10:00 PM

View Unread PMs
 
As an admin I get a ton of PMs; and I don't always get around to them when I should. Finding old PMs I haven't read can be a pain. So I coded up some quick changes to allow me to have a "Unread PMs" system folder that let me quickly view all my unread PMs.

Now, before you go looking for a plug-in, I'll tell you now you have to make code modifications to two files because vBulletin hard codes system folders. In adding a new system folder the only option I was able to come up with involved a few code changes.

From the dropdown folder selector is an "Unread PMs" option.

I also modified my USERCP_SHELL to include a link to the Unread PMs options.

Code:

            <if condition="$show['showunread']">           
            <tr>
                <td class="$navclass[pm_messagelist]" nowrap="nowrap"><a class="smallfont" href="private.php?$session[sessionurl]folderid=-2">Unread PMs</a></td>
            </tr>
            </if>

Version 1.0 - April 7th, 2007
. Initial release

MPDev 04-08-2007 12:26 AM

Reserved for some screen shots....

blogtorank 04-08-2007 01:24 AM

First install and kicks butt!

Jeordie015 04-08-2007 02:16 PM

Is there a way to include a link to the unread PMs in the popup menu that is below the folder jump menu?

MPDev 04-09-2007 10:58 AM

You mean the dropdown folder list? That's covered in the changes; or do you mean a different dropdown?

Muellmann 04-09-2007 09:09 PM

You've made a good job, I like this modification because I had many unread messages everywhere in my box, now I can see them in one place, thanks ;)

MPDev 04-16-2007 09:04 PM

Thanks! Has been a huge timesaver for me as well; amazingly simple and should probably be an option by default.

Ian Montgomerie 05-28-2007 06:11 AM

I tried this and there's a fundamental problem with the coding - it sets up the "unread PMs" folder to be treated the same way as the "sent items" folder. It should be treated like the inbox folder, because the unread PMs are from the inbox. For example, this problem causes all messages in the unread PM list to display as if they were sent by you.

The fix is easy because the "inbox" way of doing things is the default. You just have to remove all of the modifications which look for a "-1" case in the code and change it to "-1 or -2". "-1" is the special case for the sent items folder.

I'm using a shorter, simpler mod file that looks like this. Working with 3.7 PL1.

Code:


//################################################################################//
//        MOD NAME: Unread PMs                                                  #//
//################################################################################//
//      DESCRIPTION: Let's users view only unread PMs                            #//
//                  Sorry, folks; this couldn't be done via a plug-in because  #//
//                  it requires changing lines of code which explicitly use    #//
//                  a folder id to identify "system" folders.                  #//
//################################################################################//
//              BY: MPDev                                                      #//
//            DATE: 4.07.07                                                    #//
//          VERSION: 1.0                                                        #//
//################################################################################//
//      FILES UPDATED:                                                          #//
//                  private.php                                                #//
//                  includes/functions_misc.php                                #//
//################################################################################//

Please make backups of these two files before editting them so you can back
it out if you want.

//################################################################################//
//                                private.php                                  #//
//################################################################################//

Find:

        $pmfolders = array('0' => $vbphrase['inbox'], '-1' => $vbphrase['sent_items']);

change to:

        $pmfolders = array('0' => $vbphrase['inbox'], '-1' => $vbphrase['sent_items'], '-2' => 'Unread PMs');

//################################################################################//

Find:

                        switch ($vbulletin->GPC['folderid'])
                        {
                                case -1:

change to:

                        switch ($vbulletin->GPC['folderid'])
                        {
                            // MDP
                                case -2:
                                        $fromfolder = 'Unread PMs';
                                        break;
                            // MDP
                                case -1:

//################################################################################//


Find:

        ($hook = vBulletinHook::fetch_hook('private_messagelist_start')) ? eval($hook) : false;

Add after:

    $foldernames["-2"] = "Unread PMs";
        $show['showunread'] = iif($vbulletin->userinfo['pmunread'], true, false);

//################################################################################//

Find:

                    $pms = $db->query_read_slave("
                            SELECT pm.*, pmtext.*
                                    " . iif($vbulletin->options['privallowicons'], ", icon.title AS icontitle, icon.iconpath") . "
                            FROM " . TABLE_PREFIX . "pm AS pm
                            LEFT JOIN " . TABLE_PREFIX . "pmtext AS pmtext ON(pmtext.pmtextid = pm.pmtextid)
                            " . iif($vbulletin->options['privallowicons'], "LEFT JOIN " . TABLE_PREFIX . "icon AS icon ON(icon.iconid = pmtext.iconid)") . "
                            WHERE pm.userid=" . $vbulletin->userinfo['userid'] . " AND pm.folderid=" . $vbulletin->GPC['folderid'] . "
                            ORDER BY pmtext.dateline DESC
                            LIMIT $startat, " . $vbulletin->GPC['perpage'] . "
                    ");


Replace with:

                if ( $vbulletin->GPC['folderid'] == -2 )
                {
                    $pms = $db->query_read_slave("
                            SELECT pm.*, pmtext.*
                                    " . iif($vbulletin->options['privallowicons'], ", icon.title AS icontitle, icon.iconpath") . "
                            FROM " . TABLE_PREFIX . "pm AS pm
                            LEFT JOIN " . TABLE_PREFIX . "pmtext AS pmtext ON(pmtext.pmtextid = pm.pmtextid)
                            " . iif($vbulletin->options['privallowicons'], "LEFT JOIN " . TABLE_PREFIX . "icon AS icon ON(icon.iconid = pmtext.iconid)") . "
                            WHERE pm.userid=" . $vbulletin->userinfo['userid'] . " AND pm.folderid=0 AND pm.messageread=0
                            ORDER BY pmtext.dateline DESC
                            LIMIT $startat, " . $vbulletin->GPC['perpage'] . "
                    ");
                }
                else
                {
                    $pms = $db->query_read_slave("
                            SELECT pm.*, pmtext.*
                                    " . iif($vbulletin->options['privallowicons'], ", icon.title AS icontitle, icon.iconpath") . "
                            FROM " . TABLE_PREFIX . "pm AS pm
                            LEFT JOIN " . TABLE_PREFIX . "pmtext AS pmtext ON(pmtext.pmtextid = pm.pmtextid)
                            " . iif($vbulletin->options['privallowicons'], "LEFT JOIN " . TABLE_PREFIX . "icon AS icon ON(icon.iconid = pmtext.iconid)") . "
                            WHERE pm.userid=" . $vbulletin->userinfo['userid'] . " AND pm.folderid=" . $vbulletin->GPC['folderid'] . "
                            ORDER BY pmtext.dateline DESC
                            LIMIT $startat, " . $vbulletin->GPC['perpage'] . "
                    ");
                }

//################################################################################//
//                          includes/functions_misc.php                          #//
//################################################################################//

Find:

                        $folders = array('0' => $vbphrase['inbox'], '-1' => $vbphrase['sent_items']);

replace with:

            $messagecounters["-2"] = $vbulletin->userinfo['pmunread'];
                        $folders = array('0' => $vbphrase['inbox'], '-1' => $vbphrase['sent_items'], '-2' => 'Unread');


yoyoyoyo 09-11-2007 01:27 AM

Quote:

Originally Posted by Ian Montgomerie (Post 1256005)
I'm using a shorter, simpler mod file that looks like this. Working with 3.7 PL1.

Thanks much- working great in 3.8.6!

MPDev 09-11-2007 12:54 PM

Be sure to click install! :)


All times are GMT. The time now is 11:03 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.01075 seconds
  • Memory Usage 1,760KB
  • 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
  • (2)bbcode_code_printable
  • (1)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
  • (10)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