Helpful Information
 
 
Category: vBulletin 3.0 Beta Releases
New pm alert (a replacement for pm popup)

This hack will change the way pm pop works on your forums. Frist of all it will no longer be a pop up, instead the info is placed in a new table under the navbar. Also the avatar of the member that sent you the pm is displayed.

This is dirty but it works, if everything checks out in this beta release I will update the template to use phrases and post a new thread in the full release forum

Great idea you have there, but it may cause a few probs for folk with things like vbindex etc installed :p

Nice, installed ;)

Nicely implemented :)

Nice, but I have a probleme.
When the subject has a ' exemple : I'm here

The result is : I\'m here

Have you got any answers ?

An other problem.
The avatar don't work if it's a link, exemple if my avatar is : www.test.com/avatar.jpg

I must upload my avatar. It must be on the database ;)

An other problem.
The avatar don't work if it's a link, exemple if my avatar is : www.test.com/avatar.jpg

I must upload my avatar. It must be on the database ;)
Thats why this is a beta hack, what url dose the image give when it dosent work (file customs and board avatars) thanks.

I know it's a beta hack, it's just for that I write my remarks ;)

what url dose the image give when it dosent work (file customs and board avatars) thanks. => I don't understand, sorry

Change:

$newpm['username'] = addslashes(unhtmlspecialchars($newpm['fromusername'], true));
$newpm['title'] = addslashes(unhtmlspecialchars($newpm['title'], true));

To:

$newpm['username'] = unhtmlspecialchars($newpm['fromusername'], true);
$newpm['title'] = unhtmlspecialchars($newpm['title'], true);

That will fix the \' problems, looking at the avatars now :)

Little remark :

If you have the welcome panel installed, a modification will be do :

Find in the .txt installation file


---------------------
Open template: navbar
---------------------

At the very end of the template add:

<br />
$newpm


and replace by :


---------------------
Open template: forumhome
---------------------

add below [$welcome_panel], :

<br />
$newpm

I have fixed the problems with avatars, if you have already installed this hack replace the block in global.php with this:

// #############################################################################
// get new private message alert - hack
$newpmmsg = 0;
$shownewpm = false;
if ($vboptions['checknewpm'] AND $bbuserinfo['userid'] AND $bbuserinfo['pmpopup'] == 2)
{
$DB_site->shutdown_query("UPDATE " . TABLE_PREFIX . "user SET pmpopup = 1 WHERE userid = $bbuserinfo[userid]", 'pmpopup');
if (THIS_SCRIPT != 'private')
{
$newpmmsg = 1;
$newpm = $DB_site->query_first("
SELECT pmtext.title, fromusername, fromuserid
FROM " . TABLE_PREFIX . "pmtext AS pmtext
LEFT JOIN " . TABLE_PREFIX . "pm AS pm USING(pmtextid)
WHERE pm.userid = $bbuserinfo[userid]
ORDER BY pmtext.dateline DESC
LIMIT 1
");

require_once('./includes/functions_user.php');
$pm_avaurl = fetch_avatar_url($newpm['fromuserid']);

if (empty($pm_avaurl))
{
$showpm_ava = false;
}
else
{
$showpm_ava = true;
}
// end hack - new pm notifacation
$newpm['username'] = unhtmlspecialchars($newpm['fromusername'], true);
$newpm['title'] = unhtmlspecialchars($newpm['title'], true);
$shownewpm = true;

}
}

Little remark :

If you have the welcome panel installed, a modification will be do :

Find in the .txt installation file


---------------------
Open template: navbar
---------------------

At the very end of the template add:

<br />
$newpm


and replace by :


---------------------
Open template: forumhome
---------------------

add below [$welcome_panel], :

<br />
$newpm

That template modification can cause some un-desired effects because this is ment to function on the global scale, to make it only show on index.php replace:

if (THIS_SCRIPT != 'private')

With:

if (THIS_SCRIPT != 'private' AND THIS_SCRIPT == 'index')

Only for people who has the welcome panel allright ?

Problems with ' and avatars are solved.
Thx

Only for people who has the welcome panel allright ?
Yes. Or any other modification to this hack that removes it from a global template.

I'm glad to contribute to improve this hack, because I think it's a good hack :)

A little suggestion :

I think it's a good idea to let the alert for a new mp if a member don't read his mp directly, now ?

A little suggestion :

I think it's a good idea to let the alert for a new mp if a member don't read his mp directly, now ?
Im sorry but I cant understand your english :(

Sorry, for my bad english.

example (you had installed this hack here):

Imagine you go to vbulletin.org and you have a new mp. The box appear, but you don't read your pm now.
1 hours after you go to vbulletin.org, and now, the box don't appear.

I think it's more cool to let the box if you have don't read your pm, no ?

Not bad. Can you add any dynamic element to it (gif or mid) so I really get noticed about the new msg?

Does this work for rc2? Doesn't seem to for some reason.

Yes, this was made for and works with RC 2

I'm only testing it by sending pm's to myself. Does it read self-sent pm's?

I'm only testing it by sending pm's to myself. Does it read self-sent pm's?
Log into a test acount or have someone send you a pm, I had to get someone to send me about 20 test pm's to get this working :)

It worked. 3 requests/ideas though.

1) If someone hasn't selected an avatar, no graphic displays, perhaps there is a way to use a default graphic instead of nothing? This way brings attention to the pm.

2) Anyway to keep the notice there until the pm is read? If you leave the forum and come back, or if you refresh, or if you move around in the forum, the notice disappears, and you missed the pm notice.

3) What about adding a blinker to it? Or a blinking or highlighted text to alert the member a pm is waiting?

It worked. 3 requests/ideas though.

1) If someone hasn't selected an avatar, no graphic displays, perhaps there is a way to use a default graphic instead of nothing? This way brings attention to the pm.

2) Anyway to keep the notice there until the pm is read? If you leave the forum and come back, or if you refresh, or if you move around in the forum, the notice disappears, and you missed the pm notice.

3) What about adding a blinker to it? Or a blinking or highlighted text to alert the member a pm is waiting?
1: Change:

if (empty($pm_avaurl))
{
$showpm_ava = false;
}
else
{
$showpm_ava = true;
}

To:

if (empty($pm_avaurl))
{
$pm_avaurl = 'path/to/default/avatar.gif';
$showpm_ava = true;
}
else
{
$showpm_ava = true;
}

2: *code removed* will cause un-disired results, I will update the hack with a better version of this soon :)

3: you can do so by editing to pm_new_globals to your liking, I made this because I dis-liked the blink, but there is no reason why you can-not add it :)

Ok, if you want the pm alert to stay on top until the pm is viewed do this.

In global.php find:

$DB_site->shutdown_query("UPDATE " . TABLE_PREFIX . "user SET pmpopup = 1 WHERE userid = $bbuserinfo[userid]", 'pmpopup');

Remove it.

In the pm_new_globals template replace:

<a href="private.php?$session[sessionurl]">Click here to enter your private message area</a>

Replace with:

<a href="pmgateway.php?$session[sessionurl]">Click here to enter your private message area</a>

And upload the attached php file to your /forum directory :)

Yes, that worked great! Thanks. :)

And if you don't mind (hehe), if I wanted to, what about just having a default image for ALL notices of a pm? Instead of having it be the sender's avatar...what would it be if I wanted a graphic to display in its place, for all members who get a pm. Not sure if I would do this, but it seems like it may come in handy.

Remove:

require_once('./includes/functions_user.php');
$pm_avaurl = fetch_avatar_url($newpm['fromuserid']);

if (empty($pm_avaurl))
{
$showpm_ava = false;
}
else
{
$showpm_ava = true;
}

Then in the template find:

$pm_avaurl

And replace it with the image you want to show, also find:

<if condition="$showpm_ava">
<td class="alt1" width="100%">
<div class="smallfont"><img src="$pm_avaurl" alt="$newpm[username]'s avatar" border="0" /></div>
</td> </if>

Replace with:

<td class="alt1" width="100%">
<div class="smallfont"><img src="$pm_avaurl" alt="$newpm[username]'s avatar" border="0" /></div>
</td>

very nice, thanks. As I expected, it was a little more than I had thought. :) I needed the help.

Thx brad for all answers you give to me ;)

nice hack, but i'll wait for the final :)

The hack is great and after I have installed it, it works very fine. THX

Hmmm

I'm having problems.

It doesn't work at all for me.

It shut down my pm popup of course (because i replaced the code) but now nothing shows up.

It added a break after the navbar (as directed).

but now I get no notice of any kind. So i'm much worse off now. yuck.

Correction.

User error. It's working great now.

easily one of my favorite hacks. Kudos

mmmm.. i feel like giving it a try :)










privacy (GDPR)