Estou usando um elemento de caixas de seleção em um formulário no módulo que comecei a desenvolver para o Drupal 7. Esta é minha primeira tentativa de desenvolvimento de módulos e uso da API de formulários. Estou criando uma lista de caixas de seleção que listam todos os tipos de conteúdo de um site específico. Uma matriz de todos os tipos de conteúdo pode ser obtido usando o seguinte: $nodeTypesRaw=node_type_get_names();
. Uma matriz com os nomes de máquinas dos tipos de conteúdo como as chaves e os nomes legíveis por humanos como os valores são obtidos.
Por padrão, gostaria que todas as caixas de seleção fossem selecionadas e quando o formulário for enviado. Como faço para conseguir isso? As páginas da API do formulário no site drupal não são muito úteis no que diz respeito à definição dos valores padrão para caixas de seleção.
$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',
);
Inicialmente, comecei com o código acima, mas ele não funcionará. Ele exibe a lista de caixas de seleção, mas elas não são marcadas por padrão. A variável ainda recebe o envio do formulário (marcada via drush e var_dump).
#default_value
, não#deafult_value
. FA não AF.Respostas:
Do Drupal.org :
O valor padrão é definido como uma matriz que representa as chaves das opções selecionadas.
Observando o código da sua pergunta, o problema está na ortografia. você está definindo
'#deafult_value'
quando deseja definir'#default_value'
.fonte
$nodeTypesRaw=node_type_get_names();
. Uma matriz com os nomes de máquinas dos tipos de conteúdo como as chaves e os nomes legíveis por humanos como os valores são obtidos. Quando defino o '# default_value` usando a variável$nodeMachineNames=array_keys($nodeTypesRaw);
, as caixas de seleção permanecem desmarcadas.Você precisa fornecer uma matriz de chaves de opção (não valores) como o valor padrão, por exemplo,
fonte
#default_value
como @ MOLOT sugereform_process_checkbox
eform_process_checkboxes
de Drupal 7 e não há nenhum mecanismo que permitiria para este ao trabalho, e, claro, ele não funciona para mim. github.com/drupal/drupal/blob/7.x/includes/form.inc#L3270-L3351user_account_form
por exemplo, o mesmo método é usado lá para os papéis