/**
* Load the form.
*/
private function loadForm()
{
// gender dropdown values
$genderValues = array('male' => \SpoonFilter::ucfirst(FL::getLabel('Male')), 'female' => \SpoonFilter::ucfirst(FL::getLabel('Female')));
// birthdate dropdown values
$days = range(1, 31);
$months = \SpoonLocale::getMonths(LANGUAGE);
$years = range(date('Y'), 1900);
// get settings
$birthDate = $this->profile->getSetting('birth_date');
$nameChanges = (int) $this->profile->getSetting('display_name_changes');
// get day, month and year
if ($birthDate) {
list($birthYear, $birthMonth, $birthDay) = explode('-', $birthDate);
} else {
// no birth date setting
$birthDay = '';
$birthMonth = '';
$birthYear = '';
}
// create the form
$this->frm = new FrontendForm('updateSettings', null, null, 'updateSettingsForm');
// create & add elements
$this->frm->addText('display_name', $this->profile->getDisplayName());
$this->frm->addText('first_name', $this->profile->getSetting('first_name'));
$this->frm->addText('last_name', $this->profile->getSetting('last_name'));
$this->frm->addText('email', $this->profile->getEmail());
$this->frm->addText('city', $this->profile->getSetting('city'));
$this->frm->addDropdown('country', Intl::getRegionBundle()->getCountryNames(LANGUAGE), $this->profile->getSetting('country'));
$this->frm->addDropdown('gender', $genderValues, $this->profile->getSetting('gender'));
$this->frm->addDropdown('day', array_combine($days, $days), $birthDay);
$this->frm->addDropdown('month', $months, $birthMonth);
$this->frm->addDropdown('year', array_combine($years, $years), (int) $birthYear);
// set default elements drop-downs
$this->frm->getField('gender')->setDefaultElement('');
$this->frm->getField('day')->setDefaultElement('');
$this->frm->getField('month')->setDefaultElement('');
$this->frm->getField('year')->setDefaultElement('');
$this->frm->getField('country')->setDefaultElement('');
// set email disabled
$this->frm->getField('email')->setAttribute('disabled', 'disabled');
// set avatar
$this->frm->addImage('avatar');
// when user exceeded the number of name changes set field disabled
if ($nameChanges >= FrontendProfilesModel::MAX_DISPLAY_NAME_CHANGES) {
$this->frm->getField('display_name')->setAttribute('disabled', 'disabled');
}
}