/** * Takes valid data and sets it as part of the data to be saved * * @param array List of infraction groups * @param integer Userid of user * @param integer Infraction Points * @param interger Usergroupid * * @return array User's final infraction groups */ function fetch_infraction_groups(&$infractiongroups, $userid, $ipoints, $usergroupid) { static $cache; if (!is_array($data)) { $data = array(); } $infractiongroupids = array(); if (!empty($infractiongroups["{$usergroupid}"])) { foreach ($infractiongroups["{$usergroupid}"] as $pointlevel => $orusergroupids) { if ($pointlevel <= $ipoints) { foreach ($orusergroupids as $infinfo) { $data['infractiongroupids']["{$infinfo['orusergroupid']}"] = $infinfo['orusergroupid']; if ($infinfo['override'] and $cache["{$userid}"]['pointlevel'] <= $pointlevel) { $cache["{$userid}"]['pointlevel'] = $pointlevel; $cache["{$userid}"]['infractiongroupid'] = $infinfo['orusergroupid']; } } } else { break; } } } if (!is_array($data['infractiongroupids'])) { $data['infractiongroupids'] = array(); } if ($usergroupid != -1) { $temp = fetch_infraction_groups($infractiongroups, $userid, $ipoints, -1); $data['infractiongroupids'] = array_merge($data['infractiongroupids'], $temp['infractiongroupids']); } if (!is_array($data['infractiongroupids'])) { $data['infractiongroupids'] = array(); } $data['infractiongroupid'] = intval($cache["{$userid}"]['infractiongroupid']); return $data; }
false, $vbulletin->usergroupcache["$user[displaygroupid]"], ($user['customtitle'] == 1 OR $user['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canusecustomtitle']) ? true : false, ($user['customtitle'] == 1) ? true : false ); if ($lastpost = $db->query_first("SELECT MAX(dateline) AS dateline FROM " . TABLE_PREFIX . "post WHERE userid = $user[userid]")) { $lastpost['dateline'] = intval($lastpost['dateline']); } else { $lastpost['dateline'] = 0; } $infractioninfo = fetch_infraction_groups($infractiongroups, $user['userid'], $user['ipoints'], $user['usergroupid']); $userdm->set('infractiongroupids', $infractioninfo['infractiongroupids']); $userdm->set('infractiongroupid', $infractioninfo['infractiongroupid']); $userdm->set('posts', $user['posts']); // This will activate the rank update $userdm->set('lastpost', $lastpost['dateline']); $userdm->save(); unset($userdm); echo construct_phrase($vbphrase['processing_x'], $user['userid']) . "<br />\n"; vbflush(); $finishat = ($user['userid'] > $finishat ? $user['userid'] : $finishat); } $finishat++;