} print_input_row($vbphrase['enter_image_url_gcpuser'], 'profilepicurl', 'http://www.'); print_upload_row($vbphrase['upload_image_from_computer'], 'upload'); print_submit_row($vbphrase['save']); } // ###################### Start Update Profile Pic ################ if ($_POST['do'] == 'updateprofilepic') { $vbulletin->input->clean_array_gpc('p', array('userid' => vB_Cleaner::TYPE_UINT, 'useprofilepic' => vB_Cleaner::TYPE_BOOL, 'profilepicurl' => vB_Cleaner::TYPE_STR, 'resize' => vB_Cleaner::TYPE_BOOL)); $userinfo = fetch_userinfo($vbulletin->GPC['userid']); if (!$userinfo) { print_stop_message2('invalid_user_specified'); } if ($vbulletin->GPC['useprofilepic']) { $vbulletin->input->clean_gpc('f', 'upload', vB_Cleaner::TYPE_FILE); require_once DIR . '/includes/class_upload.php'; $upload = new vB_Upload_Userpic($vbulletin); $upload->data = new vB_Datamanager_Userpic_Profilepic($vbulletin, vB_DataManager_Constants::ERRTYPE_CP, 'userpic'); $upload->image =& vB_Image::instance(); $upload->userinfo =& $userinfo; cache_permissions($userinfo, false); // user's group doesn't have permission to use custom avatars so set override if (!($userinfo['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canprofilepic'])) { // init user datamanager $userdata = new vB_Datamanager_User($vbulletin, vB_DataManager_Constants::ERRTYPE_CP); $userdata->set_existing($userinfo); $userdata->set_bitfield('adminoptions', 'adminprofilepic', 1); $userdata->save(); unset($userdata); } if ($vbulletin->GPC['resize']) { if ($userinfo['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canprofilepic']) {
print_no_permission(); } if (!$vbulletin->options['profilepicenabled']) { print_no_permission(); } $vbulletin->input->clean_array_gpc('p', array('deleteprofilepic' => TYPE_BOOL, 'avatarurl' => TYPE_STR)); ($hook = vBulletinHook::fetch_hook('profile_updateprofilepic_start')) ? eval($hook) : false; if ($vbulletin->GPC['deleteprofilepic']) { $userpic =& datamanager_init('Userpic_Profilepic', $vbulletin, ERRTYPE_STANDARD, 'userpic'); $userpic->condition = "userid = " . $vbulletin->userinfo['userid']; $userpic->delete(); } else { $vbulletin->input->clean_gpc('f', 'upload', TYPE_FILE); require_once DIR . '/includes/class_upload.php'; require_once DIR . '/includes/class_image.php'; $upload = new vB_Upload_Userpic($vbulletin); $upload->data =& datamanager_init('Userpic_Profilepic', $vbulletin, ERRTYPE_STANDARD, 'userpic'); $upload->image =& vB_Image::fetch_library($vbulletin); $upload->maxwidth = $vbulletin->userinfo['permissions']['profilepicmaxwidth']; $upload->maxheight = $vbulletin->userinfo['permissions']['profilepicmaxheight']; $upload->maxuploadsize = $vbulletin->userinfo['permissions']['profilepicmaxsize']; $upload->allowanimation = $vbulletin->userinfo['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['cananimateprofilepic'] ? true : false; if (!$upload->process_upload($vbulletin->GPC['avatarurl'])) { eval(standard_error($upload->fetch_error())); } } ($hook = vBulletinHook::fetch_hook('profile_updateprofilepic_complete')) ? eval($hook) : false; $vbulletin->url = 'profile.php?' . $vbulletin->session->vars['sessionurl'] . 'do=editprofilepic'; eval(print_standard_redirect('redirect_updatethanks')); } // ############################### start choose displayed usergroup ###############################
} $useavatar = iif($vbulletin->GPC['avatarid'] == -1, 0, 1); $userinfo = fetch_userinfo($vbulletin->GPC['userid']); if (!$userinfo) { print_stop_message('invalid_user_specified'); } // init user datamanager $userdata =& datamanager_init('User', $vbulletin, ERRTYPE_CP); $userdata->set_existing($userinfo); if ($useavatar) { if (!$vbulletin->GPC['avatarid']) { // custom avatar $vbulletin->input->clean_gpc('f', 'upload', TYPE_FILE); require_once DIR . '/includes/class_upload.php'; require_once DIR . '/includes/class_image.php'; $upload = new vB_Upload_Userpic($vbulletin); $upload->data =& datamanager_init('Userpic_Avatar', $vbulletin, ERRTYPE_CP, 'userpic'); $upload->image =& vB_Image::fetch_library($vbulletin); $upload->userinfo =& $userinfo; cache_permissions($userinfo, false); // user's group doesn't have permission to use custom avatars so set override if (!($userinfo['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canuseavatar'])) { $userdata->set_bitfield('adminoptions', 'adminavatar', 1); } if (($userinfo['permissions']['avatarmaxwidth'] > 0 or $userinfo['permissions']['avatarmaxheight'] > 0) and ($vbulletin->GPC['resize'] or !($vbulletin->userinfo['permissions']['adminpermissions'] & $vbulletin->bf_ugp_adminpermissions['cancontrolpanel']))) { $upload->maxwidth = $userinfo['permissions']['avatarmaxwidth']; $upload->maxheight = $userinfo['permissions']['avatarmaxheight']; } if (!$upload->process_upload($vbulletin->GPC['avatarurl'])) { print_stop_message('there_were_errors_encountered_with_your_upload_x', $upload->fetch_error()); }
public function UpdatevBAvatar(array $info) { if (empty($info['username'])) { return false; } $username = $info['username']; if (DLE_CHARSET && DLE_CHARSET != $this->vbulletin->userinfo['lang_charset']) { $username = iconv($this->vbulletin->userinfo['lang_charset'], DLE_CHARSET, $username); } if ($this->vbulletin->userinfo['username'] != $username) { $this->vbulletin->userinfo = $this->vbulletin->db->query_first("SELECT * FROM " . TABLE_PREFIX . "user WHERE username='******'"); } if ($this->vbulletin->userinfo['userid']) { $this->vbulletin->userinfo = fetch_userinfo($this->vbulletin->userinfo['userid'], (defined('IN_CONTROL_PANEL') ? 16 : 0) + (defined('AVATAR_ON_NAVBAR') ? 2 : 0)); cache_permissions($this->vbulletin->userinfo); if (!empty($info['delete'])) { if ($this->vbulletin->userinfo['avatarid']) { $userdata =& datamanager_init('User', $this->vbulletin, ERRTYPE_STANDARD); $userdata->set_existing($this->vbulletin->userinfo); $userdata->set('avatarid', 0); $userdata->save(); } else { $userpic =& datamanager_init('Userpic_Avatar', $this->vbulletin, ERRTYPE_STANDARD, 'userpic'); $userpic->condition = 'userid = ' . $this->vbulletin->userinfo['userid']; $userpic->delete(); } } elseif (!empty($info['avatarurl'])) { require_once DIR . '/includes/class_upload.php'; require_once DIR . '/includes/class_image.php'; $upload = new vB_Upload_Userpic($this->vbulletin); $upload->data =& datamanager_init('Userpic_Avatar', $this->vbulletin, ERRTYPE_STANDARD, 'userpic'); $upload->image =& vB_Image::fetch_library($this->vbulletin); $upload->maxwidth = $this->vbulletin->userinfo['permissions']['avatarmaxwidth']; $upload->maxheight = $this->vbulletin->userinfo['permissions']['avatarmaxheight']; $upload->maxuploadsize = $this->vbulletin->userinfo['permissions']['avatarmaxsize']; $upload->allowanimation = $this->vbulletin->userinfo['permissions']['genericpermissions'] & $this->vbulletin->bf_ugp_genericpermissions['cananimateavatar'] ? true : false; $upload->process_upload($info['avatarurl']); $userdata =& datamanager_init('User', $this->vbulletin, ERRTYPE_STANDARD); $userdata->set_existing($this->vbulletin->userinfo); $userdata->set('avatarid', 0); $userdata->save(); } } }
/** * Saves the facebook avatar specified from facebook url * * @param vB_DataManager_User, the datamanager to put any upload errors into * @param string, the url to retrieve the avatar from * @param bool, flag denoting if we want to try a different URL if this one fails * @param string, the url to retrieve the avatar from if the first one fails * * @return bool true if saved worked, false otherwise */ function save_fbavatar($userdata, $avatarurl = '', $do_fallback = true, $fallback_avatarurl = '') { global $vbulletin; // if we are not passed an avatar url, grab it from fb api if (empty($avatarurl)) { $pf = get_vbprofileinfo(); $avatarurl = $pf['avatarurl']; } // begin custom avatar code require_once DIR . '/includes/class_upload.php'; require_once DIR . '/includes/class_image.php'; // grab permissions info from logged in user, if user not logged in, use permissions from registered usergroup $usergroup_info = !empty($vbulletin->userinfo['userid']) ? $vbulletin->userinfo['permissions'] : $vbulletin->usergroupcache[2]; // if user does not have permission to user custom avatar, skip this step if (!($usergroup_info['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canuseavatar'])) { return; } // initialize the uploader and populate with the avatar permissions $upload = new vB_Upload_Userpic($vbulletin); $upload->data =& datamanager_init('Userpic_Avatar', $vbulletin, ERRTYPE_STANDARD, 'userpic'); $upload->image =& vB_Image::fetch_library($vbulletin); $upload->maxwidth = $usergroup_info['avatarmaxwidth']; $upload->maxheight = $usergroup_info['avatarmaxheight']; $upload->maxuploadsize = $usergroup_info['avatarmaxsize']; $upload->allowanimation = $usergroup_info['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['cananimateavatar'] ? true : false; // upload and validate if (!$upload->process_upload($avatarurl)) { // check if we want to try a fallback url if ($do_fallback) { // if we are not passed a fallback url, grab smaller pic from FB api if (empty($fallback_avatarurl)) { $pf = get_vbprofileinfo(); $fallback_avatarurl = $pf['fallback_avatarurl']; } // do this again, but don't use a fallback if that one fails return save_fbavatar($userdata, $fallback_avatarurl, false); } else { $userdata->error($upload->fetch_error()); return false; } } // if we get here, there were no errors, so return true return true; }
function do_upload_avatar() { global $vbulletin, $db, $show, $vbphrase, $permissions; if (!($permissions['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canmodifyprofile'])) { print_no_permission(); } if (!$vbulletin->options['avatarenabled']) { standard_error(fetch_error('avatardisabled')); } if ($vbulletin->userinfo['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canuseavatar']) { $vbulletin->input->clean_gpc('f', 'upload', TYPE_FILE); // begin custom avatar code require_once DIR . '/includes/class_upload.php'; require_once DIR . '/includes/class_image.php'; $upload = new vB_Upload_Userpic($vbulletin); $upload->data =& datamanager_init('Userpic_Avatar', $vbulletin, ERRTYPE_STANDARD, 'userpic'); $upload->image =& vB_Image::fetch_library($vbulletin); $upload->maxwidth = $vbulletin->userinfo['permissions']['avatarmaxwidth']; $upload->maxheight = $vbulletin->userinfo['permissions']['avatarmaxheight']; $upload->maxuploadsize = $vbulletin->userinfo['permissions']['avatarmaxsize']; $upload->allowanimation = $vbulletin->userinfo['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['cananimateavatar'] ? true : false; if (!$upload->process_upload($vbulletin->GPC['avatarurl'])) { standard_error($upload->fetch_error()); } } // init user data manager $userdata =& datamanager_init('User', $vbulletin, ERRTYPE_STANDARD); $userdata->set_existing($vbulletin->userinfo); $userdata->set('avatarid', 0); ($hook = vBulletinHook::fetch_hook('profile_updateavatar_complete')) ? eval($hook) : false; $userdata->save(); return array('success' => true); }
$vbulletin->db->query_write("INSERT IGNORE INTO " . TABLE_PREFIX . "vbnexus_user (service, nonvbid, userid, associated) VALUES ('fb', '" . $fbID . "', '" . $userid . "', '1')"); $userinfo = fetch_userinfo($userid, FETCH_USERINFO_PROFILEPIC); cache_permissions($userinfo, false); $userinfo_permissions = $userinfo['permissions']['genericpermissions']; $generic_canuseavatar = $vbulletin->bf_ugp_genericpermissions['canuseavatar']; $avatar_usergroup_enabled = $userinfo_permissions & $generic_canuseavatar; // update avatar if option enabled if ($avatar_usergroup_enabled) { $userinfo = fetch_userinfo($userid); $userdata =& datamanager_init('User', $vbulletin, ERRTYPE_CP); $userdata->set_existing($userinfo); $vbulletin->input->clean_gpc('f', 'upload', TYPE_FILE); $vbulletin->GPC['avatarurl'] = $avatar; require_once DIR . '/includes/class_upload.php'; require_once DIR . '/includes/class_image.php'; $upload = new vB_Upload_Userpic($vbulletin); $upload->data =& datamanager_init('Userpic_Avatar', $vbulletin, ERRTYPE_STANDARD, 'userpic'); $upload->data->condition = "userid = " . $userid; $upload->image =& vB_Image::fetch_library($vbulletin); $upload->maxwidth = $userinfo['permissions']['avatarmaxwidth']; $upload->maxheight = $userinfo['permissions']['avatarmaxheight']; $upload->maxuploadsize = $userinfo['permissions']['avatarmaxsize']; $upload->allowanimation = $userinfo['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['cananimateavatar'] ? true : false; if (!$upload->process_upload($vbulletin->GPC['avatarurl'])) { $valid_entries = FALSE; $error_type = "upload"; $messages['fields'][] = $error_type; $messages['errors'][] = fetch_error('there_were_errors_encountered_with_your_upload_x', $upload->fetch_error()); } } else { // predefined avatar