16 import(
'lib.pkp.classes.user.form.BaseProfileForm');
25 parent::__construct(
'user/contactForm.tpl', $user);
29 $this->
addCheck(
new FormValidator($this,
'country',
'required',
'user.profile.form.countryRequired'));
36 function fetch($request, $template =
null, $display =
false) {
37 $site = $request->getSite();
38 $isoCodes = new \Sokil\IsoCodes\IsoCodesFactory();
40 foreach ($isoCodes->getCountries() as $country) {
41 $countries[$country->getAlpha2()] = $country->getLocalName();
45 $templateMgr->assign(array(
46 'countries' => $countries,
47 'availableLocales' => $site->getSupportedLocaleNames(),
50 return parent::fetch($request, $template, $display);
60 'country' => $user->getCountry(),
61 'email' => $user->getEmail(),
62 'phone' => $user->getPhone(),
63 'signature' => $user->getSignature(
null),
64 'mailingAddress' => $user->getMailingAddress(),
65 'affiliation' => $user->getAffiliation(
null),
66 'userLocales' => $user->getLocales(),
74 parent::readInputData();
77 'country',
'email',
'signature',
'phone',
'mailingAddress',
'affiliation',
'userLocales',
80 if ($this->
getData(
'userLocales') ==
null || !is_array($this->
getData(
'userLocales'))) {
81 $this->
setData(
'userLocales', array());
92 $user->setCountry($this->
getData(
'country'));
93 $user->setEmail($this->
getData(
'email'));
94 $user->setSignature($this->
getData(
'signature'),
null);
95 $user->setPhone($this->
getData(
'phone'));
96 $user->setMailingAddress($this->
getData(
'mailingAddress'));
97 $user->setAffiliation($this->
getData(
'affiliation'),
null);
100 $site = $request->getSite();
101 $availableLocales = $site->getSupportedLocales();
103 foreach ($this->
getData(
'userLocales') as $locale) {
105 array_push($locales, $locale);
108 $user->setLocales($locales);
110 parent::execute(...$functionArgs);