Ich verwende ein Kontrollkästchen-Element in einem Formular im Modul, das ich für Drupal 7 entwickelt habe. Dies ist mein erster Versuch, ein Modul zu entwickeln und die Formular-API zu verwenden. Ich erstelle eine Liste von Kontrollkästchen, in denen alle Inhaltstypen einer bestimmten Site aufgelistet sind. Ein Array aller Inhaltstypen kann wie folgt abgerufen werden : $nodeTypesRaw=node_type_get_names();
. Ein Array mit den Computernamen der Inhaltstypen als Schlüssel und den vom Menschen lesbaren Namen als Werten wird erhalten.
Standardmäßig möchte ich, dass alle Kontrollkästchen aktiviert sind und wann das Formular gesendet wird. Wie erreiche ich das? Die Formular-API-Seiten auf der Drupal-Site sind nicht sehr hilfreich, um die Standardwerte für Kontrollkästchen festzulegen.
$nodeTypesRaw=node_type_get_names();
$nodeMachineNames=array_keys($nodeTypesRaw);
$form['process_comments']['custommod_published_comments_select_node_types']['custommod_published_comments_node_types_checkboxes']=array(
'#deafult_value'=>$nodeMachineNames,
'#options'=>$nodeTypesRaw,
'#type'=>'checkboxes',
);
Ich habe anfangs mit dem obigen Code angefangen, aber es wird nicht funktionieren. Die Liste der Kontrollkästchen wird angezeigt, diese sind jedoch nicht standardmäßig aktiviert. Die Variable wird jedoch beim Senden des Formulars abgerufen (überprüft über drush und var_dump).
#default_value
nicht#deafult_value
. FA nicht AF.Antworten:
Von Drupal.org :
Der Standardwert wird als Array festgelegt, das die Schlüssel ausgewählter Optionen darstellt.
Wenn Sie sich den Code in Ihrer Frage ansehen, liegt das Problem in der Rechtschreibung. Sie stellen ein,
'#deafult_value'
wann Sie einstellen möchten'#default_value'
.quelle
$nodeTypesRaw=node_type_get_names();
. Ein Array mit den Computernamen der Inhaltstypen als Schlüssel und den vom Menschen lesbaren Namen als Werten wird erhalten. Wenn ich den '# default_value` mit der Variablen setze$nodeMachineNames=array_keys($nodeTypesRaw);
, bleiben die Kontrollkästchen deaktiviert .Sie müssen eine Reihe von Option geben Tasten (nicht - Wert) als Standardwert, zB
quelle
#default_value
Sind Sie sicher, dass Sie keinen Tippfehler haben, wie @ Mołot vorschlägtform_process_checkbox
undform_process_checkboxes
von Drupal 7 schaue und es keinen Mechanismus gibt, der dies zulässt, und natürlich funktioniert es bei mir nicht. github.com/drupal/drupal/blob/7.x/includes/form.inc#L3270-L3351user_account_form
zum Beispiel ansehen , wird dort dieselbe Methode für die Rollen verwendet