16 import(
'lib.pkp.classes.user.form.BaseProfileForm');
17 import(
'classes.file.PublicFileManager');
19 define(
'PROFILE_IMAGE_MAX_WIDTH', 150);
20 define(
'PROFILE_IMAGE_MAX_HEIGHT', 150);
30 parent::__construct(
'user/publicProfileForm.tpl', $user);
44 'orcid' => $user->getOrcid(),
45 'userUrl' => $user->getUrl(),
46 'biography' => $user->getBiography(
null),
56 parent::readInputData();
59 'orcid',
'userUrl',
'biography',
68 import(
'classes.file.PublicFileManager');
72 $type = $publicFileManager->getUploadedFileType(
'uploadedFile');
73 $extension = $publicFileManager->getImageExtension($type);
74 if (!$extension)
return false;
76 $uploadName =
'profileImage-' . (int) $user->getId() . $extension;
77 if (!$publicFileManager->uploadSiteFile(
'uploadedFile', $uploadName))
return false;
78 $filePath = $publicFileManager->getSiteFilesPath();
79 list($width, $height) = getimagesize($filePath .
'/' . $uploadName);
81 if ($width > PROFILE_IMAGE_MAX_WIDTH || $height > PROFILE_IMAGE_MAX_HEIGHT || $width <= 0 || $height <= 0) {
83 $user->updateSetting(
'profileImage', $userSetting);
84 $publicFileManager->removeSiteFile($filePath);
88 $user->updateSetting(
'profileImage', array(
89 'name' => $publicFileManager->getUploadedFileName(
'uploadedFile'),
90 'uploadName' => $uploadName,
104 $profileImage = $user->getSetting(
'profileImage');
105 if (!$profileImage)
return false;
108 if ($publicFileManager->removeSiteFile($profileImage[
'uploadName'])) {
109 return $user->updateSetting(
'profileImage',
null);
118 function fetch($request, $template =
null, $display =
false) {
122 $templateMgr->assign(array(
123 'profileImage' => $request->getUser()->getSetting(
'profileImage'),
124 'profileImageMaxWidth' => PROFILE_IMAGE_MAX_WIDTH,
125 'profileImageMaxHeight' => PROFILE_IMAGE_MAX_HEIGHT,
126 'publicSiteFilesPath' => $publicFileManager->getSiteFilesPath(),
129 return parent::fetch($request, $template, $display);
137 $user = $request->getUser();
139 $user->setOrcid($this->
getData(
'orcid'));
140 $user->setUrl($this->
getData(
'userUrl'));
141 $user->setBiography($this->
getData(
'biography'),
null);
143 parent::execute(...$functionArgs);