Quote:
Originally Posted by Adib
Yes, I'd like to know this as well. Doesn't vb have a built in function to do this? I'm very hesitant of making a database call to vb's database if I don't have to.
|
In private.php:
Code:
// ###################### Start pm update counters #######################
// update the pm counters for $vbulletin->userinfo
function build_pm_counters()
{
global $vbulletin;
$pmcount = $vbulletin->db->query_first("
SELECT
COUNT(pmid) AS pmtotal,
SUM(IF(messageread = 0 AND folderid >= 0, 1, 0)) AS pmunread
FROM " . TABLE_PREFIX . "pm AS pm
WHERE pm.userid = " . $vbulletin->userinfo['userid'] . "
");
$pmcount['pmtotal'] = intval($pmcount['pmtotal']);
$pmcount['pmunread'] = intval($pmcount['pmunread']);
if ($vbulletin->userinfo['pmtotal'] != $pmcount['pmtotal'] OR $vbulletin->userinfo['pmunread'] != $pmcount['pmunread'])
{
// init user data manager
$userdata =& datamanager_init('User', $vbulletin, ERRTYPE_STANDARD);
$userdata->set_existing($vbulletin->userinfo);
$userdata->set('pmtotal', $pmcount['pmtotal']);
$userdata->set('pmunread', $pmcount['pmunread']);
$userdata->save();
}
}
Give that a whirl.