Open Journal Systems  3.3.0
ContactForm.inc.php
1 <?php
2 
16 import('lib.pkp.classes.user.form.BaseProfileForm');
17 
19 
24  function __construct($user) {
25  parent::__construct('user/contactForm.tpl', $user);
26 
27  // Validation checks for this form
28  $this->addCheck(new FormValidatorEmail($this, 'email', 'required', 'user.profile.form.emailRequired'));
29  $this->addCheck(new FormValidator($this, 'country', 'required', 'user.profile.form.countryRequired'));
30  $this->addCheck(new FormValidatorCustom($this, 'email', 'required', 'user.register.form.emailExists', array(DAORegistry::getDAO('UserDAO'), 'userExistsByEmail'), array($user->getId(), true), true));
31  }
32 
36  function fetch($request, $template = null, $display = false) {
37  $site = $request->getSite();
38  $isoCodes = new \Sokil\IsoCodes\IsoCodesFactory();
39  $countries = array();
40  foreach ($isoCodes->getCountries() as $country) {
41  $countries[$country->getAlpha2()] = $country->getLocalName();
42  }
43  asort($countries);
44  $templateMgr = TemplateManager::getManager($request);
45  $templateMgr->assign(array(
46  'countries' => $countries,
47  'availableLocales' => $site->getSupportedLocaleNames(),
48  ));
49 
50  return parent::fetch($request, $template, $display);
51  }
52 
56  function initData() {
57  $user = $this->getUser();
58 
59  $this->_data = array(
60  'country' => $user->getCountry(),
61  'email' => $user->getEmail(),
62  'phone' => $user->getPhone(),
63  'signature' => $user->getSignature(null), // Localized
64  'mailingAddress' => $user->getMailingAddress(),
65  'affiliation' => $user->getAffiliation(null), // Localized
66  'userLocales' => $user->getLocales(),
67  );
68  }
69 
73  function readInputData() {
74  parent::readInputData();
75 
76  $this->readUserVars(array(
77  'country', 'email', 'signature', 'phone', 'mailingAddress', 'affiliation', 'userLocales',
78  ));
79 
80  if ($this->getData('userLocales') == null || !is_array($this->getData('userLocales'))) {
81  $this->setData('userLocales', array());
82  }
83 
84  }
85 
89  function execute(...$functionArgs) {
90  $user = $this->getUser();
91 
92  $user->setCountry($this->getData('country'));
93  $user->setEmail($this->getData('email'));
94  $user->setSignature($this->getData('signature'), null); // Localized
95  $user->setPhone($this->getData('phone'));
96  $user->setMailingAddress($this->getData('mailingAddress'));
97  $user->setAffiliation($this->getData('affiliation'), null); // Localized
98 
99  $request = Application::get()->getRequest();
100  $site = $request->getSite();
101  $availableLocales = $site->getSupportedLocales();
102  $locales = array();
103  foreach ($this->getData('userLocales') as $locale) {
104  if (AppLocale::isLocaleValid($locale) && in_array($locale, $availableLocales)) {
105  array_push($locales, $locale);
106  }
107  }
108  $user->setLocales($locales);
109 
110  parent::execute(...$functionArgs);
111  }
112 }
113 
114 
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
Form\setData
setData($key, $value=null)
Definition: Form.inc.php:229
Form\readUserVars
readUserVars($vars)
Definition: Form.inc.php:378
FormValidatorEmail
Form validation check for email addresses.
Definition: FormValidatorEmail.inc.php:20
Form\getData
getData($key)
Definition: Form.inc.php:220
ContactForm\fetch
fetch($request, $template=null, $display=false)
Definition: ContactForm.inc.php:36
ContactForm\readInputData
readInputData()
Definition: ContactForm.inc.php:73
ContactForm\execute
execute(... $functionArgs)
Definition: ContactForm.inc.php:89
ContactForm\initData
initData()
Definition: ContactForm.inc.php:56
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
FormValidator
Class to represent a form validation check.
Definition: FormValidator.inc.php:23
BaseProfileForm
Base form to edit an aspect of user profile.
Definition: BaseProfileForm.inc.php:18
Form\addCheck
addCheck($formValidator)
Definition: Form.inc.php:395
ContactForm
Form to edit user's contact information.
Definition: ContactForm.inc.php:18
BaseProfileForm\getUser
getUser()
Definition: BaseProfileForm.inc.php:44
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
FormValidatorCustom
Form validation check with a custom user function performing the validation check.
Definition: FormValidatorCustom.inc.php:18
PKPLocale\isLocaleValid
static isLocaleValid($locale)
Definition: PKPLocale.inc.php:505
ContactForm\__construct
__construct($user)
Definition: ContactForm.inc.php:24