getRequest()->getSite(); $this->addSupportedFormLocale($site->getPrimaryLocale()); // Validation checks for this form $form = $this; $this->addCheck(new \PKP\form\validation\FormValidatorLocale($this, 'givenName', 'required', 'user.profile.form.givenNameRequired', $site->getPrimaryLocale())); $this->addCheck(new \PKP\form\validation\FormValidatorCustom($this, 'familyName', 'optional', 'user.profile.form.givenNameRequired.locale', function ($familyName) use ($form) { $givenNames = $form->getData('givenName'); foreach ($familyName as $locale => $value) { if (!empty($value) && empty($givenNames[$locale])) { return false; } } return true; })); } /** * @copydoc BaseProfileForm::fetch * * @param null|mixed $template */ public function fetch($request, $template = null, $display = false) { $templateMgr = TemplateManager::getManager($request); $user = $this->getUser(); $templateMgr->assign([ 'username' => $user->getUsername(), ]); return parent::fetch($request, $template, $display); } /** * @copydoc BaseProfileForm::initData() */ public function initData() { $user = $this->getUser(); $this->_data = [ 'givenName' => $user->getGivenName(null), 'familyName' => $user->getFamilyName(null), 'preferredPublicName' => $user->getPreferredPublicName(null), ]; } /** * Assign form data to user-submitted data. */ public function readInputData() { parent::readInputData(); $this->readUserVars([ 'givenName', 'familyName', 'preferredPublicName', ]); } /** * @copydoc Form::execute() */ public function execute(...$functionArgs) { $request = Application::get()->getRequest(); $user = $request->getUser(); $user->setGivenName($this->getData('givenName'), null); $user->setFamilyName($this->getData('familyName'), null); $user->setPreferredPublicName($this->getData('preferredPublicName'), null); parent::execute(...$functionArgs); } } if (!PKP_STRICT_MODE) { class_alias('\PKP\user\form\IdentityForm', '\IdentityForm'); }