($this->username) ? $this->username : '',
_m('1-64 lowercase letters or numbers, no punctuation or spaces'));
$this->elementEnd('li');
+ $this->elementStart('li');
+ $this->input('email', _('Email'), $this->getEmail(),
+ _('Used only for updates, announcements, '.
+ 'and password recovery'));
+ $this->elementEnd('li');
// Hook point for captcha etc
Event::handle('EndRegistrationFormData', array($this));
$this->elementEnd('form');
}
+ /**
+ * Get specified e-mail from the form, or the OpenID sreg info, or the
+ * invite code.
+ *
+ * @return string
+ */
+ function getEmail()
+ {
+ $email = $this->trimmed('email');
+ if (!empty($email)) {
+ return $email;
+ }
+
+ // Pull from openid thingy
+ list($display, $canonical, $sreg) = $this->getSavedValues();
+ if (!empty($sreg['email'])) {
+ return $sreg['email'];
+ }
+
+ // Terrible hack for invites...
+ if (common_config('site', 'inviteonly')) {
+ $code = $_SESSION['invitecode'];
+ if ($code) {
+ $invite = Invitation::staticGet($code);
+
+ if ($invite && $invite->address_type == 'email') {
+ return $invite->address;
+ }
+ }
+ }
+ return '';
+ }
+
function tryLogin()
{
$consumer = oid_consumer();
$fullname = '';
}
- if (!empty($sreg['email']) && Validate::email($sreg['email'], common_config('email', 'check_domain'))) {
- $email = $sreg['email'];
- } else {
- $email = '';
- }
+ $email = $this->getEmail();
# XXX: add language
# XXX: add timezone