- if (!$profile) {
- common_log_db_error($user, 'SELECT', __FILE__);
- $this->server_error(_('User without matching profile'));
- return;
- }
-
- $original = $profile->getOriginalAvatar();
-
-
- common_element_start('form', array('enctype' => 'multipart/form-data',
- 'method' => 'POST',
- 'id' => 'avatar',
- 'action' =>
- common_local_url('profilesettings')));
- common_hidden('token', common_session_token());
-
- if ($original) {
- common_element('img', array('src' => $original->url,
- 'class' => 'avatar original',
- 'width' => $original->width,
- 'height' => $original->height,
- 'alt' => $user->nickname));
- }
-
- $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
-
- if ($avatar) {
- common_element('img', array('src' => $avatar->url,
- 'class' => 'avatar profile',
- 'width' => AVATAR_PROFILE_SIZE,
- 'height' => AVATAR_PROFILE_SIZE,
- 'alt' => $user->nickname));
+ $this->elementStart('form', array('method' => 'post',
+ 'id' => 'form_settings_profile',
+ 'class' => 'form_settings',
+ 'action' => common_local_url('profilesettings')));
+ $this->elementStart('fieldset');
+ $this->element('legend', null, _('Profile information'));
+ $this->hidden('token', common_session_token());
+
+ // too much common patterns here... abstractable?
+ $this->elementStart('ul', 'form_data');
+ if (Event::handle('StartProfileFormData', array($this))) {
+ $this->elementStart('li');
+ $this->input('nickname', _('Nickname'),
+ ($this->arg('nickname')) ? $this->arg('nickname') : $profile->nickname,
+ _('1-64 lowercase letters or numbers, no punctuation or spaces'));
+ $this->elementEnd('li');
+ $this->elementStart('li');
+ $this->input('fullname', _('Full name'),
+ ($this->arg('fullname')) ? $this->arg('fullname') : $profile->fullname);
+ $this->elementEnd('li');
+ $this->elementStart('li');
+ $this->input('homepage', _('Homepage'),
+ ($this->arg('homepage')) ? $this->arg('homepage') : $profile->homepage,
+ _('URL of your homepage, blog, or profile on another site'));
+ $this->elementEnd('li');
+ $this->elementStart('li');
+ $maxBio = Profile::maxBio();
+ if ($maxBio > 0) {
+ $bioInstr = sprintf(_('Describe yourself and your interests in %d chars'),
+ $maxBio);
+ } else {
+ $bioInstr = _('Describe yourself and your interests');
+ }
+ $this->textarea('bio', _('Bio'),
+ ($this->arg('bio')) ? $this->arg('bio') : $profile->bio,
+ $bioInstr);
+ $this->elementEnd('li');
+ $this->elementStart('li');
+ $this->input('location', _('Location'),
+ ($this->arg('location')) ? $this->arg('location') : $profile->location,
+ _('Where you are, like "City, State (or Region), Country"'));
+ $this->elementEnd('li');
+ if (common_config('location', 'share') == 'user') {
+ $this->elementStart('li');
+ $this->checkbox('sharelocation', _('Share my current location when posting notices'),
+ ($this->arg('sharelocation')) ?
+ $this->arg('sharelocation') : $user->shareLocation());
+ $this->elementEnd('li');
+ }
+ Event::handle('EndProfileFormData', array($this));
+ $this->elementStart('li');
+ $this->input('tags', _('Tags'),
+ ($this->arg('tags')) ? $this->arg('tags') : implode(' ', $user->getSelfTags()),
+ _('Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated'));
+ $this->elementEnd('li');
+ $this->elementStart('li');
+ $language = common_language();
+ $this->dropdown('language', _('Language'),
+ get_nice_language_list(), _('Preferred language'),
+ false, $language);
+ $this->elementEnd('li');
+ $timezone = common_timezone();
+ $timezones = array();
+ foreach(DateTimeZone::listIdentifiers() as $k => $v) {
+ $timezones[$v] = $v;
+ }
+ $this->elementStart('li');
+ $this->dropdown('timezone', _('Timezone'),
+ $timezones, _('What timezone are you normally in?'),
+ true, $timezone);
+ $this->elementEnd('li');
+ $this->elementStart('li');
+ $this->checkbox('autosubscribe',
+ _('Automatically subscribe to whoever '.
+ 'subscribes to me (best for non-humans)'),
+ ($this->arg('autosubscribe')) ?
+ $this->boolean('autosubscribe') : $user->autosubscribe);
+ $this->elementEnd('li');