[gelöst] Fieldset aus Registrierungsformular per Modul löschen
![](https://www.drupalcenter.de/files/imagecache/upic_mini/pictures/picture-10378.jpg)
am 14.02.2011 - 12:40 Uhr in
Hallo!
Das Notifications-Modul liefert mir im Registrierungsformular ein leeres Fieldset, das ich gerne loswerden möchte.
Wenn ich mir die Form-Variable ausgebe kommt das raus:
array(23) {
["user_registration_help"]=> array(2) {
["#value"]=> string(0) ""
["#weight"]=> int(-20) }
["account"]=> array(5) {
["#type"]=> string(8) "fieldset"
["#title"]=> string(18) "Kontoinformationen"
["#weight"]=> int(-10)
["name"]=> array(6) {
["#type"]=> string(9) "textfield"
["#title"]=> string(12) "Benutzername"
["#default_value"]=> NULL
["#maxlength"]=> int(60)
["#description"]=> string(120) "Leerzeichen sind erlaubt; Interpunktion ist mit der Ausnahme von Punkten, Bindestrichen und Unterstrichen nicht erlaubt."
["#required"]=> bool(true) }
["mail"]=> array(6) {
["#type"]=> string(9) "textfield"
["#title"]=> string(14) "E-Mail-Adresse"
["#default_value"]=> NULL
["#maxlength"]=> int(64)
["#description"]=> string(288) "Eine gültige E-Mail-Adresse. Alle E-Mails der Website werden an diese Adresse geschickt. Die Adresse wird nicht veröffentlicht und wird nur verwendet, wenn Sie ein neues Passwort anfordern oder wenn Sie einstellen, bestimmte Informationen oder Benachrichtigungen per E-Mail zu erhalten."
["#required"]=> bool(true) } }
["#uid"]=> NULL
.......
Dieser #uid-Schnipsel muß es sein. Jetzt hab ich ein Modul geschrieben, um das auszublenden und die Reihenfolge umzustellen:
function my_minimodule_form_alter(&$form, &$form_state, $form_id) {
if ($form_id === 'user_register') {
//var_dump($form);
$form['Name']['#weight']= -5;
$form['locations']['#weight']= -3;
unset($form['#uid']);
}
Das Verschieben geht, aber das leere Fieldset ist immer noch da. Wie krieg ich das weg? Hat noch nicht einmal eine individuelle CSS-Klasse mit der ich es ansprechen kann (wo Drupal doch sonstwo zig Klassen vergibt...).
Danke!
Katharina
- Anmelden oder Registrieren um Kommentare zu schreiben
fieldset
am 14.02.2011 - 13:43 Uhr
Hallo.
Dieser #uid-Schnipsel muß es sein.
Nein, das kommt nicht von [do:notifications Notifications], das wird von Drupal benötigt. Dementsprechend solltest Du das Element nicht entfernen.
Wie heisst denn Dein Modul? Ich vermute mal, dass es aufgerufen wird, bevor Notifications seine Änderungen am mFormular macht. Dementsprechend siehst Du das Element nicht in Deinem Modul und kannst es auch nicht entfernen.
Setze mal in der Tabelle "system" den Wert "weight" für Dein Modul auf 999. Dann nimm am Besten [do:devel Devel] und lass Dir das Formular nochmal damit ausgeben:
<?php
dsm($form);
?>
Stefan
Um mit dsm im
am 14.02.2011 - 13:58 Uhr
Um mit dsm im Registrierungsformular zu arbeiten muß ich aber wohl Gästen die Erlaubnis für Devel geben, oder? Dann muß ich aber fix arbeiten...
Also per dsm finde ich auch
am 14.02.2011 - 14:10 Uhr
Also per dsm finde ich auch keinen Bestandteil des Arrays, der dazu passen kann.
Debug
am 14.02.2011 - 14:50 Uhr
Hast Du den Wert "weight" Deines Moduls angepasst? Zeig doch mal einen Screenshot des Fieldsets und paste doch mal den HTML-Quelltext (eventuell bereinigt): http://drupalbin.com eignet sich dafür ganz gut.
btw.: Du schraubst direkt an der Live-Seite herum?
Ok, mit dem Weight kommt da
am 14.02.2011 - 15:18 Uhr
Ok, mit dem Weight kommt da mehr, aber auch da finde ich nichts.
Quelltext:
<!-- Region: content-->
<form action="/user/register" accept-charset="UTF-8" method="post" id="user-register" enctype="multipart/form-data">
<div><fieldset><legend>Kontoinformationen</legend><div class="form-item" id="edit-name-wrapper">
<label for="edit-name">Benutzername: <span class="form-required" title="Dieses Feld wird benötigt.">*</span></label>
<input type="text" maxlength="60" name="name" id="edit-name" size="60" value="" class="form-text required" />
<div class="description">Leerzeichen sind erlaubt; Interpunktion ist mit der Ausnahme von Punkten, Bindestrichen und Unterstrichen nicht erlaubt.</div>
</div>
<div class="form-item" id="edit-mail-wrapper">
<label for="edit-mail">E-Mail-Adresse: <span class="form-required" title="Dieses Feld wird benötigt.">*</span></label>
<input type="text" maxlength="64" name="mail" id="edit-mail" size="60" value="" class="form-text required" />
<div class="description">Eine gültige E-Mail-Adresse. Alle E-Mails der Website werden an diese Adresse geschickt. Die Adresse wird nicht veröffentlicht und wird nur verwendet, wenn Sie ein neues Passwort anfordern oder wenn Sie einstellen, bestimmte Informationen oder Benachrichtigungen per E-Mail zu erhalten.</div>
</div>
</fieldset>
<fieldset><legend>Name</legend><div class="form-item" id="edit-profile-vorname-wrapper">
<label for="edit-profile-vorname">Vorname: <span class="form-required" title="Dieses Feld wird benötigt.">*</span></label>
<input type="text" maxlength="255" name="profile_vorname" id="edit-profile-vorname" size="60" value="" class="form-text required" />
</div>
<div class="form-item" id="edit-profile-name-wrapper">
<label for="edit-profile-name">Nachname: <span class="form-required" title="Dieses Feld wird benötigt.">*</span></label>
<input type="text" maxlength="255" name="profile_name" id="edit-profile-name" size="60" value="" class="form-text required" />
</div>
</fieldset>
<fieldset class="location collapsible"><legend>Ort</legend><div class="form-item" id="edit-locations-0-street-wrapper">
<label for="edit-locations-0-street">Straße: <span class="form-required" title="Dieses Feld wird benötigt.">*</span></label>
<input type="text" maxlength="255" name="locations[0][street]" id="edit-locations-0-street" size="64" value="" class="form-text required" />
</div>
<div class="form-item" id="edit-locations-0-postal-code-wrapper">
<label for="edit-locations-0-postal-code">Postleitzahl: <span class="form-required" title="Dieses Feld wird benötigt.">*</span></label>
<input type="text" maxlength="16" name="locations[0][postal_code]" id="edit-locations-0-postal-code" size="16" value="" class="form-text required" />
</div>
<div class="form-item" id="edit-locations-0-city-wrapper">
<label for="edit-locations-0-city">Stadt: <span class="form-required" title="Dieses Feld wird benötigt.">*</span></label>
<input type="text" maxlength="255" name="locations[0][city]" id="edit-locations-0-city" size="64" value="" class="form-text required" />
</div>
<div class="form-item" id="edit-locations-0-country-wrapper">
<label for="edit-locations-0-country">Land: <span class="form-required" title="Dieses Feld wird benötigt.">*</span></label>
</div>
</fieldset>
<input type="hidden" name="form_id" id="edit-user-register" value="user_register" />
<input type="hidden" name="changed" id="edit-changed" value="" />
<fieldset class=" collapsible collapsed"><legend>Subscriptions (0)</legend><div class="form-checkboxes"></div></fieldset>
Mit hook_form_alter kommst Du
am 14.02.2011 - 15:36 Uhr
Mit hook_form_alter kommst Du nicht an CCK Widgets. Jedenfalls nicht zu diesem Zeitpunkt. Lies Dir mal diesen Thread auf Drupal.org durch, da steht beschrieben wie es geht. Man muß in der After_build Phase der Form eingreifen.
Beste Grüße
Werner
Fieldset
am 14.02.2011 - 15:53 Uhr
Schau Dir mal den drittletzten Eintrag in der Liste von Devel an ("0").
Falls es der Eintrag nicht ist, musst Du mal alle Elemente durchschauen und den nehmen, bei dem "Subscriptions (0)" steht.
Stefan
Vielen, vielen Dank!!! Hat
am 14.02.2011 - 16:42 Uhr
Vielen, vielen Dank!!! Hat endlich geklappt!