vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.5 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=113)
-   -   New PM Alert (Replacement For PM Popup) (https://vborg.vbsupport.ru/showthread.php?t=102164)

.Tim 12-03-2005 10:00 PM

New PM Alert (Replacement For PM Popup)
 
This is a port of this:

https://vborg.vbsupport.ru/showthread.php?t=59890

Not much was changed from the original, other than a few minor code changes. Don't know if it was done in the best way but it works. :D I don't know of a way this could be done without file edits. If anyone has any ideas, they're more than welcome. And I also plan on making this optional for users, so they can decide if they want this or the normal popup.

-------------------
Open root/global.php
-------------------
------------
Find:
------------

Code:

// new private message script
        'pm_popup_script',

-------------
Replace with:
-------------

Code:

// new private message script
        'pm_new_globals',

------------
Find:
------------

Code:

// #############################################################################
// get new private message popup
$shownewpm = false;
if ($vbulletin->userinfo['pmpopup'] == 2 AND $vbulletin->options['checknewpm'] AND $vbulletin->userinfo['userid'] AND !defined('NOPMPOPUP'))
{
        $userdm =& datamanager_init('User', $vbulletin, ERRTYPE_SILENT);
        $userdm->set_existing($vbulletin->userinfo);
        $userdm->set('pmpopup', 1);
        $userdm->save(true, 'pmpopup');        // 'pmpopup' tells db_update to issue a shutdownquery of the same name
        unset($userdm);

        if (THIS_SCRIPT != 'private' AND THIS_SCRIPT != 'login')
        {
                $newpm = $db->query_first("
                        SELECT pm.pmid, title, fromusername
                        FROM " . TABLE_PREFIX . "pmtext AS pmtext
                        LEFT JOIN " . TABLE_PREFIX . "pm AS pm USING(pmtextid)
                        WHERE pm.userid = " . $vbulletin->userinfo['userid'] . "
                        ORDER BY dateline DESC
                        LIMIT 1
                ");
                $newpm['username'] = addslashes_js(unhtmlspecialchars($newpm['fromusername'], true), '"');
                $newpm['title'] = addslashes_js(unhtmlspecialchars($newpm['title'], true), '"');
                $shownewpm = true;
        }
}

-------------
Replace with:
-------------

Code:

// get new private message alert - hack
$newpmmsg = 0;
$shownewpm = false;
if ($vbulletin->userinfo['pmpopup'] == 2 AND $vbulletin->options['checknewpm'] AND $vbulletin->userinfo['userid'] AND $vbulletin->userinfo['pmpopup'] == 2)
{

$userdm =& datamanager_init('User', $vbulletin, ERRTYPE_SILENT);
        $userdm->set_existing($vbulletin->userinfo);
        $userdm->set('pmpopup', 1);
        $userdm->save(true, 'pmpopup');        // 'pmpopup' tells db_update to issue a shutdownquery of the same name
        unset($userdm);       

        if (THIS_SCRIPT != 'private')
        {
                $newpmmsg = 1;
                $newpm = $db->query_first("
                        SELECT pm.pmid, title, fromusername, fromuserid
                        FROM " . TABLE_PREFIX . "pmtext AS pmtext
                        LEFT JOIN " . TABLE_PREFIX . "pm AS pm USING(pmtextid)
                        WHERE pm.userid = ". $vbulletin->userinfo['userid'] ."
                        ORDER BY 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['userid'] = unhtmlspecialchars($newpm['fromuserid'], true);
                $newpm['title'] = unhtmlspecialchars($newpm['title'], true);
                $shownewpm = true;
               
        }
}

-----------
Find:
-----------

Code:

if ($shownewpm)
{
        if ($vbulletin->userinfo['pmunread'] == 1)
        {
                $pmpopupurl = 'private.php?' . $vbulletin->session->vars['sessionurl_js'] . "do=showpm&pmid=$newpm[pmid]";
        }
        else
        {
                if (!empty($vbulletin->session->vars['sessionurl_js']))
                {
                        $pmpopupurl = 'private.php?' . $vbulletin->session->vars['sessionurl_js'];
                }
                else
                {
                        $pmpopupurl = 'private.php';
                }
        }
        eval('$footer .= "' . fetch_template('pm_popup_script') . '";');
}


-------------
Replace with:
-------------

Code:

if ($shownewpm)
{
        eval('$newpm = "' . fetch_template('pm_new_globals') . '";');
}
else
{
        $newpm = '';
}


/* - end file edits, now for the templates!:

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

At the very end of the template add:

Code:

<br />
$newpm

--------------------------------
Add new template: pm_new_globals
--------------------------------

Populate it with:

Code:

<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
<tr><if condition="$newpm">
        <td class="alt1" width="100%">
                        <div class="smallfont"><img src="./image.php?u=$newpm[userid]" alt="$newpm[username]'s avatar" border="0" /></div>
                </td>        </if>
                <td class="alt2" valign="top" nowrap="nowrap">
                <div class="smallfont">$bbuserinfo[username] you have a new private message from $newpm[username], subject: '$newpm[title]'<br /><a

href="private.php?$session[sessionurl]" TARGET="_blank">Click here to enter your private message area</a></div>
                </td>
                </tr>
</table>


.Tim 12-03-2005 10:09 PM

If you have vbadvanced installed, it still shows the normal popup on your homepage. But works correctly in the forum. Why it does this I don't know but I'm looking into it.

Daniel 12-03-2005 11:00 PM

Any screenshots of what it will look like?

.Tim 12-03-2005 11:02 PM

There's a screenshot in the original post I linked to:

https://vborg.vbsupport.ru/attachmen...chmentid=15599

Snake 12-04-2005 11:37 AM

Nice...

ged 12-05-2005 02:30 AM

Quote:

Originally Posted by .Tim
If you have vbadvanced installed, it still shows the normal popup on your homepage. But works correctly in the forum. Why it does this I don't know but I'm looking into it.

You probably need to edit vbadvanced's header templates of files, I'm not exactly sure which is correct.

.Tim 12-05-2005 02:37 AM

Quote:

Originally Posted by ged
You probably need to edit vbadvanced's header templates of files, I'm not exactly sure which is correct.

Yeah I asked at their board and will mess around with it later.

Chris-FH 02-04-2006 10:28 PM

THX for this modification...

Is there a chance to hold the pm alert on top until the pm is viewed? Like here:

https://vborg.vbsupport.ru/showpost....2&postcount=27

C.

.Tim 02-04-2006 11:53 PM

I'll look into it.

Smiry Kin's 02-05-2006 01:20 AM

/me saves for later


All times are GMT. The time now is 01:16 AM.

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.01137 seconds
  • Memory Usage 1,759KB
  • 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
  • (8)bbcode_code_printable
  • (2)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