Registrationsseite erweitern
am 16.05.2008 - 09:29 Uhr in
Hallo zusammen,
ich habe das Problem, dass ich gerne die Registrationsseite erweitern würde aber nicht weiß wie ich da vorgehen muss.
Ich würde gerne eine einfache Checkbox einbauen, die man anhaken muss, um zu bestätigen, dass man mit den Nutzungsbedingungen einverstanden ist. Nur wenn dieser Haken gesetzt ist, darf der User sich registrieren.
Ich habe schon die Suche betätigt und bin auch über ein angeblisches "Registration Modifier"-Modul gestolpert, allerdings finde ich es unter Download / Module nicht!
Gibt es vielleicht noch eine andere, relativ einfache Möglichkeit dies einzurichten?
Habe mir auch schon die user.module Datei angesehen, allerdings weiß ich nicht wo ich da was abändern könnte ... ein HTML Form zu erstellen ist für mich kein Problem, nur weiß ich wie gesagt leider nicht, wo ich diese Änderung vornehmen kann ...
Desweiteren würde ich gerne wissen, ob es möglich ist, dem User bei der Registration die Möglichkeit zu bieten, anonym zu bleiben, sprich keine Email-Adresse angeben zu müssen. Die Verifikation der Email-Adresse lässt sich ja in den Einstellungen bereits ausschalten, allerdings ist es bei der Registration noch immer ein Pflichtfeld!
Alternative wäre, eine "Default"-Email-Adresse anzugeben, allerdings erinnert sich Drupal ja an bereits registrierte Email-Adressen.
Ich hoffe ihr könnt mir helfen!
LG Anna
- Anmelden oder Registrieren um Kommentare zu schreiben
Kannst du mit diesem Modul
am 16.05.2008 - 09:39 Uhr
Kannst du mit diesem Modul umsetzen:
http://drupal.org/project/legal
-----------
Luca Curella
Kooperative Netze - Berlin
Super, genau das hab ich
am 16.05.2008 - 10:03 Uhr
Super, genau das hab ich gesucht, vielen Dank!
Hat vielleicht noch jemand eine Antwort auf die Frage mit der Email?
LG Anna
Das user.module zu verändern ..
am 16.05.2008 - 10:38 Uhr
.. ist grundsätzlich eine schlechte Idee. Du kannst statt dessen das Formular abfangen (Funktion _form_alter()) und den Wert aus der Funktion user_edit_form() überschreiben.
// Orginal Drupal 5.7 Zeile 1323
$form['account']['mail'] = array('#type' => 'textfield',
'#title' => t('E-mail address'),
'#default_value' => $edit['mail'],
'#maxlength' => EMAIL_MAX_LENGTH,
'#description' => t('A valid e-mail address. All e-mails from the system will be sent to this address. The e-mail address is not made public and will only be used if you wish to receive a new password or wish to receive certain news or notifications by e-mail.'),
'#required' => TRUE,
);
// Replace mit
$form['account']['mail'] = array('#type' => 'textfield',
'#title' => t('E-mail address'),
'#default_value' => $edit['mail'],
'#maxlength' => EMAIL_MAX_LENGTH,
'#description' => t('A valid e-mail address. All e-mails from the system will be sent to this address. The e-mail address is not made public and will only be used if you wish to receive a new password or wish to receive certain news or notifications by e-mail.'),
'#required' => false,
);
Auf die gleiche Weise musst du dann bei der Validierung verfahren. Hier wären folgende Änderungen zu machen:
// Orginal ab Zeile 1387
// Validate the e-mail address:
if ($edit['mail'] != ''and $error = user_validate_mail($edit['mail'])) {
form_set_error('mail', $error);
}
else if (db_num_rows(db_query("SELECT uid FROM {users} WHERE uid != %d AND LOWER(mail) = LOWER('%s')", $uid, $edit['mail'])) < 0) {
form_set_error('mail', t('The e-mail address %email is already registered. <a href="@password">Have you forgotten your password?</a>', array('%email' => $edit['mail'], '@password' => url('user/password'))));
Einmal ist "$edit['mail'] != ''and " eingefügt und einmal aus " $edit['mail'])) > 0) {" -> " $edit['mail'])) < 0) {" gemacht worden.
Das sollte aber alles in einem eigenem Modul stattfinden und es sollten die Auswirkungen genau abgecheckt werden. So würde ein Bot sich ungehindert zig-mal registrieren können, usw..
Gruß
UwBach
Eigenes Modul mit folgendem
am 16.05.2008 - 10:46 Uhr
Eigenes Modul mit folgendem Code:
Module Entwickeln: http://drupal.org/node/508
<?php
function mymodule_form_alter($form_id, $form) {
if ($form_id == 'user_register') {
$form['mail']['#required'] = false;
}
}
?>
Für Drupal6:
<?php
function mymodule_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'user_register') {
$form['mail']['#required'] = false;
}
}
?>
Validation ist leider noch im Weg -> man muss die Validate Funktion überschreiben + eine Eigene ohne den mail code benutzen
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
Vielen Dank für eure
am 16.05.2008 - 12:39 Uhr
Vielen Dank für eure Antworten, ich werde mir beide Verfahren mal genauer ansehen! :-)
-Edit-
Ich habe jetzt das 1. Verfahren ausprobiert und es funktioniert wie erhofft! Nochmal ein ganz großes Dankeschön an alle die mir geantwortet haben! :-)
Falls ich nachträglich unerwünschte Folgen durch die Änderungen bemerke, werde ich sie euch auch mitteilen.
Dass das Ausschalten zur Folge hat, dass User sich mehrfach registrieren können ist mir bewusst und ich habe auch bereits versucht diejenigen davon zu überzeugen, für die ich diese "Plattform" aufsetze. Ist allerdings nichts zu machen, die wollen das unbedingt so, damit der User anonym bleiben kann wenn er das möchte und er sich auch anonym fühlt (ist eine Meinungsplattform).
Ich werde allerdings zusätzlich einen Hinweis in die Registration schreiben, welche Nachteile es mit sich bringt, wenn man keine Email-Adresse angibt (z.B. bei Passwortverlust).
Nochmals danke!!
LG Anna
Mehrfachregistrierung eindämmen ..
am 16.05.2008 - 16:15 Uhr
.. kannst du wenn du einfach die IP in $user->data speicherst und dann abgleichst wie oft die vorhanden ist. Damit kannst du zumindest die Bot's ausschalten.
Gruß
UwBach