[REQ] If Someone know this mod

A small mod that puts a flashing envelope in the top right corner of your screen when you get a new personal message, even if youre sitting idle. You dont have to open / reload any pages to see the notification

My default, it checks once per minute but its configurable in the javascript

PLEASE - Read the instructions, anything in there that is asked here will be ignored or simply a RTFM reply.

Ive tried it with FF2 / IE6 and Opera 9.21. Ive tried it on two forums running 3.6.5 but it should work on 3.6.0-3.6.7

Edit footer template, add this to the very bottom
HTML:
<if condition="$bbuserinfo[userid] > 0">
<if condition="$vboptions['ajaxchecknewpmactive']">
<script>
	sessionurl = '$session[sessionurl]';
	checkNewPM()
</script>

<if condition="$vboptions[ajaxchecknewpm_position]=='F'">
<div id="ajaxnewpmdiv" style="
    position:absolute;
    display:none;
    width:32px;height:32px;left:0px;top:0px;
    padding:0px;background:transparent;
    border:0px solid #ffffff"><a href="private.php?$session[sessionurl_q]"><img src="images/newpm.gif" alt="You have a new PM" border="0"></a></div>

<script type="text/javascript"><!--
/* Script by: www.jtricks.com
 * Version: 20060303
 * Latest version:
 * www.jtricks.com/javascript/navigation/floating.html
 */
var target_x = -60;
var target_y = 12;

var has_inner = typeof(window.innerWidth) == 'number';
var has_element = document.documentElement && document.documentElement.clientWidth;

var fm_id='ajaxnewpmdiv';
var floating_menu =
    document.getElementById
    ? document.getElementById(fm_id)
    : document.all
      ? document.all[fm_id]
      : document.layers[fm_id];

var fm_shift_x, fm_shift_y, fm_next_x, fm_next_y;

function move_menu()
{
    if (document.layers)
    {
        floating_menu.left = fm_next_x;
        floating_menu.top = fm_next_y;
    }
    else
    {
        floating_menu.style.left = fm_next_x + 'px';
        floating_menu.style.top = fm_next_y + 'px';
    }
}

function compute_shifts()
{
    fm_shift_x = has_inner
        ? pageXOffset
        : has_element
          ? document.documentElement.scrollLeft
          : document.body.scrollLeft;
    if (target_x < 0)
        fm_shift_x += has_inner
            ? window.innerWidth
            : has_element
              ? document.documentElement.clientWidth
              : document.body.clientWidth;

    fm_shift_y = has_inner
        ? pageYOffset
        : has_element
          ? document.documentElement.scrollTop
          : document.body.scrollTop;
    if (target_y < 0)
        fm_shift_y += has_inner
            ? window.innerHeight
            : has_element
              ? document.documentElement.clientHeight
              : document.body.clientHeight;
}

function float_menu()
{
    var step_x, step_y;

    compute_shifts();

    step_x = (fm_shift_x + target_x - fm_next_x) ;
    if (Math.abs(step_x) < .5)
        step_x = fm_shift_x + target_x - fm_next_x;

    step_y = (fm_shift_y + target_y - fm_next_y) ;
    if (Math.abs(step_y) < .5)
        step_y = fm_shift_y + target_y - fm_next_y;

    if (Math.abs(step_x) > 0 ||
        Math.abs(step_y) > 0)
    {
        fm_next_x += step_x;
        fm_next_y += step_y;
        move_menu();
    }

    setTimeout('float_menu()', 20);
};

compute_shifts();
if (document.layers)
{
    // Netscape 4 cannot perform init move
    // when the page loads.
    fm_next_x = 0;
    fm_next_y = 0;
}
else
{
    fm_next_x = fm_shift_x + target_x;
    fm_next_y = fm_shift_y + target_y;
    move_menu();
}
float_menu();
//--></script>
</if>
</if>
</if>

Edit headerinclude and add this to the bottom
HTML:
<script type="text/javascript" src="clientscript/vbulletin_ajax_checknewpm.js"></script>

Edit template navbar

Find this
HTML:
<strong><phrase 1="$vbphrase[pmpercent_nav_compiled]">$vbphrase[your_pm_box_is_x_full]</phrase></strong></if>
		</div>
		</td>
And below that, add this
HTML:
<if condition="$vboptions[ajaxchecknewpm_position]=='N'">
<td class="alt2" valign="top" nowrap="nowrap"><div id="ajaxnewpmdiv" style="
    display:none;
    width:32px;height:32px;left:0px;top:0px;
    padding:0px;background:transparent;
    border:0px solid #ffffff"><a href="private.php?$session[sessionurl_q]"><img src="images/newpm.gif" alt="You have a new PM" border="0"></a></div></td>
</if>

NOTICE : If you have the New PM Notification mod installed (http://www.vbulletin.org/forum/showthread.php?t=124056) you will need to remove it by searching for and deleting this text in the navbar template
HTML:
<if condition="$bbuserinfo['pmunread']">
		<td class="alt2" valign="top" nowrap="nowrap">
	<a href="/forum/private.php?$session[sessionurl]"><img src="$stylevar[imgdir_misc]/newpm.gif" alt="You have a new PM" border="0"></a>
		</td>
	</if>

If you want the floating notifier on a new page load and not the ajax checking, edit the JS file and delete

HTML:
setTimeout("checkNewPM()", checkdelay);

Youll need to:
Upload 1 GIF file
Upload 1 Javascript file
Import 1 XML product

Makes 1 plugin hook into misc.php (adds ajaxchecknewpm function)

History 19 July 2007
Version 1.1
  • Bug fix, IE complains when a guest gets a permission denied response when it expects XML. Removed Guests from checking for PMs via Ajax
  • Added options to have the Notification in the navbar as well as floating.

if you have 1.0 installed, youll need to upload the Jaavscript file again, uninstall / reinstall the XML product and make the template changes to footer (not headerinc) and add 1 to navbar
 
you don't get my idea :s
the mod i'm tolking about show a popup Message like errors and in that popup their is a message who tell you that you have a PM !
 
next time search vbulletin.org for this ;) or do it with google

Hope this is the good one :S

Installation

First go to your pm_popup_script template and replace it with this code:

HTML Code:
Code:
<script type="text/javascript" src="clientscript/fixed_position_ie.js"></script>
<script type='text/javascript'>
    var agtbrw=navigator.userAgent.toLowerCase();
    var operaaa=(agtbrw.indexOf('opera')!=-1);
    var head="display:''";
    var folder='';
    function expandit(curobj)
    {
        if(document.getElementById(curobj))
        {
            folder=document.getElementById(curobj).style;
        }
        else
        {
            if(ns6==1||operaaa==true)
            {
                folder=curobj.nextSibling.nextSibling.style;
            }
            else
            {
                folder=document.all[curobj.sourceIndex+1].style;
            }
        }
        if (folder.display=="none")
        {
            folder.display="";
        }
        else
        {
            folder.display="none";
        }
    }
</script>
<style type="text/css">
#pm_popup {
    position:fixed;
    top:250px;
    border:1px solid;
    width:64%;
    margin-right:18%;
    margin-left:18%;
}

</style>
<div id="pm_popup">
    <table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%">
        <tr>
            <td class="tcat">
                <span class="smallfont" style="float:$stylevar[align=right]">
                    <a href="#" onclick="expandit('pm_popup');">Close</a>
                </span>
                $vbphrase[new_private_msg]
            </td>
        </tr>
        <tr>
            <td class="panelsurround" align="center">
                <div class="panel">
                    <div align="center">
                        <table cellpadding="0" cellspacing="$stylevar[formspacer]" border="0">
                            <tr>
                                <td>
                                    $vbphrase[newest_pm_from] <b>$newpm[fromusername]</b>, $vbphrase[titled]<b>'$newpm[title]'</b>
                                    <br />
                                </td>
                            </tr>
                            <if condition="$shownewpmpreview">
                            <tr>
                                <td class="smallfont" style="padding-top:20px;">
                                    $newpm[message]
                                </td>
                            </tr>
                            </if>
                            <tr>
                                <td align="center" style="padding-top:20px;">
                                    <a href="$vboptions[bburl]/private.php?do=showpm&pmid=$newpm[pmid]">$vbphrase[read_message]</a>
                                    (<a href="$vboptions[bburl]/private.php?do=showpm&pmid=$newpm[pmid]" target="_blank">
                                        <span class="smallfont">$vbphrase[open_new_window]</span>
                                    </a>)
                                    <br /><br />
                                    <a href="$vboptions[bburl]/private.php">$vbphrase[go_to_inbox]</a>
                                </td>
                            </tr>
                        </table>
                    </div>
                </div>
                <div style="margin-top:$stylevar[cellpadding]px">
                    <form>
                        <input type="button" class="button" value="$vbphrase[close_popup]" onclick="expandit('pm_popup');" />
                    </form>
                </div>
            </td>
        </tr>
    </table>
</div>
The above step will need to be done for each of your skins.

Next, go to the plugin manager:
Go to your admincp -> Expand Plugin System in the nav -> Click Manage Products -> Scroll to the bottom of the page and click Add/Import -> Browse to the xml file included in the zip -> upload

Now access your FTP and upload the attached 'fixed_position_ie.js' file to your clientscript/ folder. This js allows Internet Explorer to do fixed positioning meaning that the popup stays in place as you scroll the screen.

That's it, enjoy.

How To Enable Preview
To enable the preview in the popup (view the screenshot to see what it looks like), just edit the plugin called "New PM Popup Window Preview" with the following instructions:
Go to your admincp -> Expand Plugin System in the nav -> Click Plugin Manager -> Click edit next to the "New PM Popup Window Preview" plugin

Now find, right at the top, this line:
$newpmoption['showpreview'] = false;

Change to:
$newpmoption['showpreview'] = true;


The preview is now enabled. To change how many characters are shown in the preview, go back to editing the plugin and change this line (near the top):
$newpmoption['maxcharacters'] = 100;


To uninstall this hack just revert the pm_popup_script template then delete the uploaded file (/clientscript/fixed_position_ie.js) and the plugin.
 
In vb 3.6.7 i tried the above steps, but no luck i am afraid :(
Also, I can't find quick links (from the above post)...maybe those infos reffering to older versions huh? (as i saw that it was written for 3.5.x)
 
quicklinks is in navbar

try this...

in your admincp
vBulletin Options
vBulletin Options
User Registration Options
Default Registration Options
Pop up a Notification Box When a Private Message is Received
 
Back
Top