Isso me incomoda há um tempo. Quando tento ocultar campos como o campo de público do grupo ou a configuração de publicação de um formulário, na validação, o formulário define esses dois campos para um valor nulo, mesmo que o valor padrão seja foi declarado corretamente.
Tentei usar Invisible, #access, unset escondido nada funciona funciona! Isso é muito preocupante porque, no meu projeto atual, os usuários podem editar apenas pequenos pedaços de seu perfil no momento, por exemplo, apenas o endereço ou a imagem; portanto, se eu ocultar o público do grupo, o usuário acaba sendo expulso dos grupos aos quais pertence. editar.
Acabei usando o código abaixo para ocultar esses campos enquanto ainda mantinha o usuário em seu grupo.
$variables['user_edit_about']['group_audience']= $temp['group_audience'];
$variables['user_edit_about']['group_audience']['#prefix'] = '<div style="display:none;">';
$variables['user_edit_about']['group_audience']['#suffix'] = '</div>';
Alguém pensaria em uma maneira melhor de conseguir isso?
obrigado
fonte
Respostas:
Editar:
Ok, eu descobri. Coloque isso no seu módulo personalizado:
Isso definirá o título do nó da história como 'itens quentes' e NÃO será renderizado na página porque #access = FALSE;
Você pode adicionar mais controle de granularidade dentro de hook_form_alter () como
Isso funciona para o Drupal 6 e 7.
Resposta antiga (ignorar):
Já faz um tempo desde que eu fiz algo assim, então eu posso estar errado. Se você definir o
[#value]
item de um formulário, ele não ficará visível no formulário.Eu fiz isso no Drupal 6,
hook_form_alter()
em um módulo personalizado. Não sei se funcionará no Drupal 7 e não sei se você pode fazê-lo em uma função de pré-processofonte
Você também pode adicionar a classe CSS 'elemento oculto' ao elemento de formulário
Como o iStryker mencionou anteriormente, ainda seria possível alterar o valor através da manipulação do DOM. No entanto, essa é uma maneira fácil e agradável de ocultar um campo de formulário (ou qualquer outro elemento de renderização). A
element-hidden
classe é definida emsystem.base.css
.fonte