vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 2.x Full Releases (https://vborg.vbsupport.ru/forumdisplay.php?f=4)
-   -   Improved PM Popup JavaScript (https://vborg.vbsupport.ru/showthread.php?t=34356)

TWTCommish 01-21-2002 10:00 PM

What's it do?
Simple: it checks to see how many new PMs a user has. If they've only got one (which is usually the case...I don't think many people get tons of new PMs), the popup JavaScript alert displayed to them will let them know who sent them the message, what it's title is, and, rather than take them to the Inbox, it'll take them directly to the message.

If there's more than one, it'll display a more vague message, letting them know just how many new messages they have, and redirecting them to their Inbox (which is where the current popup directs you). Anyway, here's the hack:


Open global.php. Around line 266 you should see the following:

Code:

$newpmmsg=1;
RIGHT below it, place this (REPLACE your current code for this hack with the code below, if you happen to be one of the few people who actually intalled this originally from the Beta Hacks forum. :))

Code:

  $latest_pm = $DB_site->query("SELECT p.privatemessageid AS pm_popup_id, p.title AS pm_popup_title, u.username AS pm_popup_username FROM privatemessage p, user u WHERE messageread = 0 AND p.userid = $bbuserinfo[userid] AND p.fromuserid = u.userid ORDER BY dateline DESC");
  $hack_pm_total  = $DB_site->num_rows($latest_pm);
 
    if ($hack_pm_total > 1) {
      eval("\$pm_popup_text = \"".gettemplate('pm_popup_multiple')."\";");
      eval("\$pm_popup_url  = \"".gettemplate('pm_popup_url_multiple')."\";");
    } else {
      extract($DB_site->fetch_array($latest_pm));
      eval("\$pm_popup_text = \"".gettemplate('pm_popup')."\";");
      eval("\$pm_popup_url  = \"".gettemplate('pm_popup_url')."\";");
    }

Now, create the four new templates. I've attached a file to this post containing the names of the four templates, and the text I've used to populate them -- which will probably be the same text and such you'll want to use. Don't be intimidated...they're all very small. :)

After that, edit your head_newpm template to make use of the new variables. Here's my use of it (highly suggested):

Code:

<script language="JavaScript">
<!--
function confirm_newpm() {
        input_box = confirm("$pm_popup_text");
        if (input_box == true) { // Output when OK is clicked
                second_box = confirm("Open in new window?\n\n(Press cancel to open your $inboxname in the current window.)");
                if (second_box == true) {
                        window.open('$pm_popup_url','pmnew','width=600,height=500,menubar=yes,scrollbars=yes,toolbar=yes,location=yes,directories=yes,resizable=yes,top=50,left=50');
                } else {
                        window.location = "$pm_popup_url";
                }
        } else {
        // Output when Cancel is clicked
        }
}
-->
</script>

Enjoy.

TWTCommish 01-22-2002 12:52 PM

Here's an image of what the single-PM popup looks like:
https://vborg.vbsupport.ru/attachmen...414&fullpage=1

Scott MacVicar 01-22-2002 02:11 PM

you could have moved the thread from the beta forum to the full releases forum you know :P cause you have permission to do that.

anyway i've installed something like this, but it shows you how many unread messages you have and the last time and username

TWTCommish 01-22-2002 02:16 PM

Actually, I contacted FireFly via PM and asked him how I should go about this, and he advised me to create a new thread and close the old one; so I did. :) I also sent an update to the old users informing them of the new thread.

Quote:

anyway i've installed something like this, but it shows you how many unread messages you have and the last time and username
I'm afraid I don't understand. :confused: My hack does the same thing, doesn't it? If you have more than one, it tells you how many you have waiting and takes you to the Inbox. If you have only one, it gives you the title, the sender's username, and takes you right to the message itself. Perhaps you're thinking of the functionality of this hack when I released it in the Beta forum, rather than it's functionality now.

Ninth Dimension 01-22-2002 06:57 PM

This is a cool hack, i've just installed it, thank you.

One question, and as always, I could be wrong, but should this line not be removed from the file?
PHP Code:

  eval("\$headnewpm = \"".gettemplate('head_newpm')."\";"); 

Thanx

TWTCommish 01-22-2002 07:22 PM

From what file -- global.php? No! That's the part that processes the finished template and makes it available globally. :) Absolutely essential.

Ninth Dimension 01-22-2002 07:28 PM

ah ok, my bad :)

TWTCommish 01-22-2002 07:29 PM

No problem: thanks for installing it. I'm glad you like it. :) I get a real kick out of anyone who finds this stuff useful.

squawell 01-23-2002 10:13 AM

a good hack!!but it seems can't work for me!!i think maybe i do something wrong??see the below code what i change to
PHP Code:

 $newpmmsg=1
    
$latest_pm $DB_site->query("SELECT p.privatemessageid AS pm_popup_id, p.title AS pm_popup_title, u.username AS pm_popup_username FROM privatemessage p, user u WHERE messageread = 0 AND touserid = $bbuserinfo[userid] AND p.fromuserid = u.userid ORDER BY dateline DESC");
    
$hack_pm_total  $DB_site->num_rows($latest_pm);
  
    if (
$hack_pm_total 1) {
      eval(
"\$pm_popup_text = \"".gettemplate('pm_popup_multiple')."\";");
      eval(
"\$pm_popup_url  = \"".gettemplate('pm_popup_url_multiple')."\";");
    } else {
      
extract($DB_site->fetch_array($latest_pm));
      eval(
"\$pm_popup_text = \"".gettemplate('pm_popup')."\";");
      eval(
"\$pm_popup_url  = \"".gettemplate('pm_popup_url')."\";");
    }

    eval(
"\$headnewpm = \"".gettemplate('head_newpm')."\";");
  } 

am i do something wrong??

TWTCommish 01-23-2002 12:09 PM

Hmmm -- did you install the templates, too?


All times are GMT. The time now is 01:46 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.02163 seconds
  • Memory Usage 1,754KB
  • 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_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)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