Answers:
有两种选择。
要获取配置文件字段,最常见的解决方案是Drupal核心中包含的配置文件模块。Administer > Site building > Modules
在core-optional下转到并启用它。然后,您可以在Administer > User settings > Profile
和的配置中配置配置文件模块,然后说出这些字段是否会在注册期间显示。
要在注册期间获取验证码,您将需要以下模块之一:
我更喜欢Mollom,因为它可以很好地工作而不会令人烦恼,但是它会将您的内容发送到外部站点进行一些验证。
还有Captcha,它不如Mollom可靠,但可以将内容保留在您的网站内。
通常的选择是使用content_profile组合来创建用户配置文件作为节点,content_profile_registration,作为content_profile的组成部分,使用完整的节点编辑表单在注册时创建这样的配置文件,如果可能,则使用auto_assign_role具有具有不同个人资料类型的多种类型的用户。
对于验证码部分,正如Greggles所建议的那样,Mollom是一项有趣的服务,但是您可能还需要考虑reCaptcha,它也可以作为公共服务的两倍。
肯定是ReCaptcha。
如果您想保持身材苗条,还可以在注册中显示简单的核心资料字段。尽管这通常需要您将主题user_profile.tpl.php设置为公开。
PS:电子邮件注册模块可以是用户,也可以是LoginToboggan。
关于“完整的用户注册表单”,您可以转到管理>>使用管理>>配置文件,然后创建/自定义字段,并确保选中“在用户注册表单中可见”选项。
如果我进行编辑,user_profile.tpl.php
则可以根据需要轻松维护注册部分。
<?php
// Validate the username:
if (user_access('change own username') || user_access('administer users') || arg(1) == 'register') {
if ($error = user_validate_name($edit['name'])) {
form_set_error('name', $error);
}
else if (db_num_rows(db_query("SELECT uid FROM {users} WHERE uid != %d AND LOWER(name) = LOWER('%s')", $uid, $edit['name'])) > 0) {
form_set_error('name', t('The name %name is already taken.', array('%name' => $edit['name'])));
}
else if (drupal_is_denied('user', $edit['name'])) {
form_set_error('name', t('The name %name has been denied access.', array('%name' => $edit['name'])));
}
}
?>