Extended profile - make birthday save

This commit is contained in:
Zach Copley 2011-03-15 15:35:00 -07:00
parent 1ff1af0fc8
commit e4eb6719a5
2 changed files with 45 additions and 39 deletions

View File

@ -399,7 +399,7 @@ class ExtendedProfileWidget extends Form
$this->out->element('div', 'label', _m('Description'));
$this->out->element('div', 'field', $field['description']);
$this->out->input(
$this->out->textarea(
$id . '-description',
null,
isset($field['description']) ? $field['description'] : null
@ -463,6 +463,9 @@ class ExtendedProfileWidget extends Form
case 'textarea':
$this->out->text($this->ext->getTextValue($name));
break;
case 'date':
$this->out->text($this->ext->getTextValue($name));
break;
case 'tags':
$this->out->text($this->ext->getTags());
break;
@ -506,6 +509,9 @@ class ExtendedProfileWidget extends Form
case 'text':
$out->input($id, null, $this->ext->getTextValue($name));
break;
case 'date':
$out->input($id, null, $this->ext->getTextValue($name));
break;
case 'textarea':
$out->textarea($id, null, $this->ext->getTextValue($name));
break;

View File

@ -100,6 +100,7 @@ class ProfileDetailSettingsAction extends ProfileSettingsAction
$profile = $user->getProfile();
$simpleFieldNames = array('title', 'spouse', 'kids');
$dateFieldNames = array('birthday');
foreach ($simpleFieldNames as $name) {
$value = $this->trimmed('extprofile-' . $name);
@ -108,6 +109,15 @@ class ProfileDetailSettingsAction extends ProfileSettingsAction
}
}
foreach ($dateFieldNames as $name) {
$value = $this->trimmed('extprofile-' . $name);
$this->saveField(
$user,
$name,
$this->parseDate($name, $value)
);
}
$this->savePhoneNumbers($user);
$this->saveIms($user);
$this->saveWebsites($user);
@ -123,6 +133,30 @@ class ProfileDetailSettingsAction extends ProfileSettingsAction
}
function parseDate($fieldname, $datestr, $required = false)
{
if (empty($datestr) && $required) {
$msg = sprintf(
_m('You must supply a date for "%s".'),
$fieldname
);
throw new Exception($msg);
} else {
$ts = strtotime($datestr);
if ($ts === false) {
throw new Exception(
sprintf(
_m('Invalid date entered for "%s": %s'),
$fieldname,
$ts
)
);
}
return common_sql_date($ts);
}
return null;
}
function savePhoneNumbers($user) {
$phones = $this->findPhoneNumbers();
$this->removeAll($user, 'phone');
@ -249,26 +283,10 @@ class ProfileDetailSettingsAction extends ProfileSettingsAction
foreach ($experiences as $exp) {
list($company, $current, $end, $start) = array_values($exp);
if (!empty($company)) {
$startTs = strtotime($start);
if ($startTs === false) {
$msg = empty($start) ? _m('You must supply a start date.')
: sprintf(_m("Invalid start date: %s"), $start);
throw new Exception($msg);
}
$endTs = strtotime($end);
if ($current === 'false' && $endTs === false) {
$msg = empty($end) ? _m('You must supply an end date.')
: sprintf(_m("Invalid end date: %s"), $end);
throw new Exception($msg);
}
$expArray[] = array(
'company' => $company,
'start' => common_sql_date($startTs),
'end' => common_sql_date($endTs),
'start' => $this->parseDate('Start', $start, true),
'end' => $this->parseDate('End', $end, true),
'current' => ($current == 'false') ? false : true
);
}
@ -344,31 +362,13 @@ class ProfileDetailSettingsAction extends ProfileSettingsAction
foreach ($edus as $edu) {
list($school, $degree, $description, $end, $start) = array_values($edu);
if (!empty($school)) {
$startTs = strtotime($start);
if ($startTs === false) {
$msg = empty($start) ? _m('You must supply a start date.')
: sprintf(_m("Invalid start date: %s"), $start);
throw new Exception($msg);
}
$endTs = strtotime($end);
if ($endTs === false) {
$msg = empty($end) ? _m('You must supply an end date.')
: sprintf(_m("Invalid end date: %s"), $end);
throw new Exception($msg);
}
$eduArray[] = array(
'school' => $school,
'degree' => $degree,
'description' => $description,
'start' => common_sql_date($startTs),
'end' => common_sql_date($endTs)
'start' => $this->parseDate('Start', $start, true),
'end' => $this->parseDate('End', $end, true)
);
}
}