public function signupForm($errors = array()) { $fields = $this->signupFields($errors); $html = '<div class="wa-form"><form action="' . $this->signupUrl() . '" method="post">'; foreach ($fields as $field_id => $field) { if ($field) { $f = $field[0]; /** * @var waContactField $f */ if (isset($errors[$field_id])) { $field_error = is_array($errors[$field_id]) ? implode(', ', $errors[$field_id]) : $errors[$field_id]; } else { $field_error = false; } $field[1]['id'] = $field_id; if ($f instanceof waContactCompositeField) { foreach ($f->getFields() as $sf) { /** * @var waContactField $sf */ $html .= $this->signupFieldHTML($sf, array('parent' => $field_id, 'id' => $sf->getId()), $field_error); } } else { $html .= $this->signupFieldHTML($f, $field[1], $field_error); } } else { $html .= '<div class="wa-field wa-separator"></div>'; } } $config = $this->wa->getAuthConfig(); if (isset($config['signup_captcha']) && $config['signup_captcha']) { $html .= '<div class="wa-field"><div class="wa-value">'; $html .= $this->wa->getCaptcha()->getHtml(isset($errors['captcha']) ? $errors['captcha'] : ''); if (isset($errors['captcha'])) { $html .= '<em class="wa-error-msg">' . $errors['captcha'] . '</em>'; } $html .= '</div></div>'; } $html .= '<div class="wa-field"><div class="wa-value wa-submit"> <input type="submit" value="' . _ws('Sign up') . '"> ' . sprintf(_ws('or <a href="%s">login</a> if you already have an account'), $this->getUrl('/login')) . ' </div></div>'; $html .= '</form></div>'; return $html; }