Feld nach der Registrierung ausblenden oder deaktivieren
8
Ich habe 1 Feld auf der Benutzerregistrierungsseite, das nach der Kontoregistrierung nicht geändert werden sollte. Es muss ausgeblendet oder deaktiviert sein. Welches Modul kann das?
Aktivieren Sie Feldberechtigungen für jede Entität, nicht nur für Knoten.
Rollenbasierte Feldberechtigungen, die je nach Zugriff des Benutzers unterschiedliche Anzeigemuster ermöglichen.
Berechtigungen auf Autorenebene ermöglichen das Anzeigen und Bearbeiten von Feldern basierend darauf, wer der Entitätseigentümer ist.
Berechtigungen für jedes Feld sind standardmäßig nicht aktiviert. Stattdessen können Administratoren diese Berechtigungen explizit für die Felder aktivieren, in denen diese Funktion benötigt wird.
Wie kann zwischen Benutzererstellung und -bearbeitung unterschieden werden, wenn es sich um dasselbe Feld handelt? Ich sage nicht, dass es nicht geht, ich würde wirklich gerne wissen wie. Und ich denke, OP würde auch.
Mołot
Es handelt sich um eine rollenbasierte Feldberechtigung, die nur für anonyme Berechtigungen erteilt werden muss (nicht sicher, ob diese Bedingung für den Fall funktioniert).
Bipin K
8
Wenn Sie dies in einem benutzerdefinierten Modul tun möchten
my_module_form_user_profile_form_alter(&$form,&$form_state){// Since it is on registration form, field might be reqruied.
$form['your_field']['#required']= FALSE;
$form['your_field']['#access']= FALSE;}
Wie kann zwischen Benutzererstellung und -bearbeitung unterschieden werden?
DRUPWAY
2
@Smalution Sie müssen nicht - für das Anmeldeformular wäre es my_module_form_user_register_form_alternicht my_module_form_user_profile_form_alter.
Mołot
1
hook is hook_form_FORM_ID_alter FORM_ID für die Registrierung und Bearbeitung ist diefferent
arpitr
OK habe es. Ich habe überprüft, wann der Benutzer seine Formular-ID "Benutzerregister-Formular" registriert und wann der Benutzer seine Formular-ID "Benutzer-Profil-Formular" normal bearbeitet.
DRUPWAY
Ja, wie erwartet :)
Arpitr
1
Versuchen Sie es mit diesem Code:
function MODULENAME_form_alter(&$form_state, $form_id){
$form[$field]['#access']= FALSE;
$form[$field]['#disabled']= TRUE;}
Bitte fügen Sie einige beschreibende Wörter hinzu.
Mołot
$ form ['field_name'] ['# disabled'] = TRUE; funktioniert auch.
Pinueve
1
Legen Sie die Eigenschaft für die Sichtbarkeit von Feldern nur für anonyme Benutzer fest. Der Wert wird also zum Zeitpunkt der Registrierung gespeichert. Dann kann niemand auf dieses Feld zugreifen. Sobald Sie das Feldberechtigungsmodul installiert haben, wird diese Option nur für anonyme Benutzer angewendet.
Versuchen Sie es mit hook_form_alter, siehe folgendes Beispiel:
function MODULENAME_form_alter(&$form_state, $form_id){global $user;//$form_id :: user detail edit form idif($user->uid !=0&& $form_id =="required_form_id"){//$field :: requied field name
$form[$field]['#access']= FALSE;}}
Platzieren Sie diesen Code in einem benutzerdefinierten Modul. Das Feld kann neue Inhalte enthalten, ist jedoch deaktiviert, um sie zu bearbeiten.
if($form_id =='YOUR_FORM_ID'){//dsm($form);// for user form use '#user' instead of '#node' and uid instead of nidif(isset($form['#node'])&& isset($form['#node']->nid)){// Prevent editing a field once the node has been created// hiding the field entirely on the edit form.
$form['field_name']['#access']= FALSE;// disable update field on the edit form (gray color).
$form['field_name']['#disabled']= TRUE;}
Antworten:
Sie können versuchen , Feld Berechtigungen Modul
quelle
Wenn Sie dies in einem benutzerdefinierten Modul tun möchten
quelle
my_module_form_user_register_form_alter
nichtmy_module_form_user_profile_form_alter
.Versuchen Sie es mit diesem Code:
quelle
Legen Sie die Eigenschaft für die Sichtbarkeit von Feldern nur für anonyme Benutzer fest. Der Wert wird also zum Zeitpunkt der Registrierung gespeichert. Dann kann niemand auf dieses Feld zugreifen. Sobald Sie das Feldberechtigungsmodul installiert haben, wird diese Option nur für anonyme Benutzer angewendet.
quelle
quelle
Versuchen Sie es mit
hook_form_alter
, siehe folgendes Beispiel:quelle
Platzieren Sie diesen Code in einem benutzerdefinierten Modul. Das Feld kann neue Inhalte enthalten, ist jedoch deaktiviert, um sie zu bearbeiten.
}}
quelle