$userpic->set_existing($image); $userpic->setr('filedata', $image['afiledata']); if (!$userpic->save()) { print_stop_message2(array('error_writing_x', $image['afilename'])); } } if (!empty($image['pfiledata'])) { $userpic = vB_DataManager_Userpic::fetch_library($vbulletin, vB_DataManager_Constants::ERRTYPE_CP, 'userpic_profilepic', true); $userpic->set_existing($image); $userpic->setr('filedata', $image['pfiledata']); if (!$userpic->save()) { print_stop_message2(array('error_writing_x', $image['pfilename'])); } } if (!empty($image['sfiledata'])) { $userpic = vB_DataManager_Userpic::fetch_library($vbulletin, vB_DataManager_Constants::ERRTYPE_CP, 'userpic_sigpic', true); $userpic->set_existing($image); $userpic->setr('filedata', $image['sfiledata']); if (!$userpic->save()) { print_stop_message2(array('error_writing_x', $image['sfilename'])); } } unset($userpic); $vbulletin->options['usefileavatar'] = false; } else { $vbulletin->options['usefileavatar'] = false; // Converting FROM fs TO mysql if (!empty($image['afilename'])) { $path = $vbulletin->options['avatarpath'] . "/{$image['afilename']}"; $thumbpath = $vbulletin->options['avatarpath'] . "/thumbs/{$image['afilename']}"; chdir(DIR);
/** * Class factory. This is used for instantiating the extended classes. * * @param string The type of the class to be called (user, forum etc.) * @param vB_Registry An instance of the vB_Registry object. * @param integer One of the ERRTYPE_x constants * @param string Option to force loading a class from a specific file; no extension * * @return vB_DataManager An instance of the desired class */ function &datamanager_init($classtype, &$registry, $errtype = ERRTYPE_STANDARD, $forcefile = '') { static $called; if (empty($called)) { // include the abstract base class require_once(DIR . '/includes/class_dm.php'); $called = true; } if (preg_match('#^\w+$#', $classtype)) { $classtype = strtolower($classtype); if ($forcefile) { $classfile = preg_replace('#[^a-z0-9_]#i', '', $forcefile); } else { $classfile = str_replace('_multiple', '', $classtype); } require_once(DIR . '/includes/class_dm_' . $classfile . '.php'); switch($classtype) { case 'userpic_avatar': case 'userpic_profilepic': case 'userpic_sigpic': $object = vB_DataManager_Userpic::fetch_library($registry, $errtype, $classtype); break; case('socialgroupicon'): $object = vB_DataManager_SocialGroupIcon::fetch_library($registry, $errtype, $classtype); break; default: $classname = 'vB_DataManager_' . $classtype; $object = new $classname($registry, $errtype); } return $object; } }
$useavatar = iif($vbulletin->GPC['avatarid'] == -1, 0, 1); $userinfo = fetch_userinfo($vbulletin->GPC['userid']); if (!$userinfo) { print_modcp_stop_message2('invalid_user_specified'); } // init user datamanager $userdata = new vB_Datamanager_User($vbulletin, vB_DataManager_Constants::ERRTYPE_CP); $userdata->set_existing($userinfo); if ($useavatar) { if (!$vbulletin->GPC['avatarid']) { // custom avatar $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_Avatar($vbulletin, vB_DataManager_Constants::ERRTYPE_CP); $object =& vB_DataManager_Userpic::fetch_library($vbulletin, vB_DataManager_Constants::ERRTYPE_CP); $upload->data->validfields = array_merge($object->validfields, $upload->data->validfields); $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['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_modcp_stop_message2(array('there_were_errors_encountered_with_your_upload_x', $upload->fetch_error())); }