function build_userlist($userid, $lists = array()) { global $vbulletin; $userid = intval($userid); if ($userid == 0) { return false; } if (empty($lists)) { $userlists = vB::getDbAssertor()->assertQuery('vBForum:fetchuserlists', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_STORED, 'userid' => $userid)); foreach ($userlists as $userlist) { $lists["{$userlist['type']}"][] = $userlist['userid']; } } $userdata = new vB_Datamanager_User($vbulletin, vB_DataManager_Constants::ERRTYPE_STANDARD); $existing = array('userid' => $userid); $userdata->set_existing($existing); foreach ($lists as $listtype => $values) { $key = $listtype . 'list'; if (isset($userdata->validfields["{$key}"])) { $userdata->set($key, implode(',', $values)); } } /* Now to set the ones that weren't set. */ foreach ($userdata->list_types as $listtype) { $key = $listtype . 'list'; if ($userdata->is_field_set($key)) { $userdata->set($key, ''); } } $userdata->save(); return true; }