Example #1
0
 public function getForm($action)
 {
     $form = new form_renderer($action);
     $form->append($tabs = new widget_tabs());
     foreach ($this->info as $cat => $category) {
         $inputs = array();
         foreach ($category['items'] as $id => $field) {
             $name = "options[{$cat}][{$id}]";
             $value = $this->{$cat}->{$id};
             $class = 'data_option_' . $field['type'];
             if (class_exists($class)) {
                 $provider = new $class($field);
                 $inputs[] = $provider->getField($name, $value);
             } elseif ($field['type'] == 'text') {
                 $inputs[] = new form_field_text($name, $field['caption'], $value);
             } elseif ($field['type'] == 'textarea') {
                 $inputs[] = new form_field_textarea($name, $field['caption'], $value);
             } elseif ($field['type'] == 'checkbox') {
                 $inputs[] = new form_field_checkbox($name, $field['caption'], $value);
             }
         }
         $tabs->add(literal($category['caption']), implode('', $inputs));
     }
     return $form;
 }
        printf($error, 'Passwort und Wiederholung stimmen nicht überein');
    } elseif ($usecap && !recaptcha_check_answer($recaptcha_privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"])->is_valid) {
        printf($error, 'Captcha ist inkorrekt');
    } elseif ($db->query("SELECT 1 FROM `user_blocked`\n\t\t\tWHERE '%s' LIKE CONCAT('%%', `pattern`,'%%')\n\t\t\tAND `type` = 'name'", $_POST['register_name'])->num_rows()) {
        printf($error, 'Der Username ist unzulässig');
    } elseif ($db->query("SELECT 1 FROM `user_blocked`\n\t\t\tWHERE '%s' LIKE CONCAT('%%', `pattern`,'%%')\n\t\t\tAND `type` = 'email'", $_POST['register_mail'])->num_rows()) {
        printf($error, 'Die E-Mail ist unzulässig');
    } elseif ($db->id_get('user_data', $_POST['register_mail'], 'email')) {
        printf($error, 'Die angegebene E-Mail ist bereits vergeben');
    } elseif ($db->id_get('user_data', $_POST['register_name'], 'name')) {
        printf($error, 'Der angegebene Name ist bereits vergeben');
    } else {
        $db->insert('user_data', array('name' => $_POST['register_name'], 'email' => $_POST['register_mail'], 'pass_salt' => $salt = uniqid(), 'pass_hash' => session_iv::crypt($_POST['register_pass'], $salt), 'type' => 1));
        // @TODO: Registration Mail
        throw new redirect(PAGE_SELF . 'completed');
    }
}
if (isset($_GET['completed'])) {
    echo '<p>Registration erfolgreich und so...</p>';
} else {
    $captcha = '<div class="control-group"><label class="control-label" for="form_field_3">Captcha</label>' . '<div class="controls">' . recaptcha_get_html($recaptcha_publickey) . '</div></div>';
    $form = new form_renderer(PAGE_SELF);
    $form->text('register_name', 'Username', $_POST['register_name']);
    $form->password('register_pass', 'Passwort');
    $form->password('register_repetition', 'Wiederholung');
    $form->text('register_mail', 'E-Mail', $_POST['register_mail']);
    if ($usecap) {
        $form->append($captcha);
    }
    echo $form;
}