Alguns usuários podem apenas editar um dos conjuntos de campos que aparecem nas guias verticais no formulário de edição do nó. Nesse caso, parece um pouco tolo usar guias verticais, pois existe apenas uma guia vertical para você escolher. Veja a captura de tela:
Portanto, é possível desativar as guias verticais por função de usuário? Ou, exceto, desabilite-os completamente para determinados tipos de conteúdo? Para o meu caso de uso, só quero que o Location não seja exibido nas guias verticais.
Tentei os campos renderizáveis e o grupo de campos juntos, mas eles gerenciaram o formulário incorretamente (buggy, acho). Organizar Os campos não podem separar as guias verticais.
Respostas:
Existem algumas maneiras de fazer isso:
Você pode usar o módulo Renderable Elements (como você mencionou acima). Ele permite que você registre qualquer parte da construção em sua instalação e gerencie a exibição através da interface do usuário do campo. Ele disponibilizará elementos (adicionais) de entidades existentes nas telas de gerenciamento de formulários / exibição ou você pode, por exemplo, registrar o formulário de contato e reorganizar os campos através da interface do usuário do campo. Atualmente funciona bem em formulários, o suporte para outros está chegando em uma segunda iteração.
Ou adicione o seguinte ao seu módulo personalizado:
Um módulo sandbox que desativa guias verticais
Aqui está este problema central que se refere a isso.
fonte
Você também pode usar a verificação #access para impedir que as pessoas vejam as guias verticais.
Simplesmente adicione isso a um formulário de gancho, altere ou entre o carregamento e a renderização de um formulário. Depois disso, você pode chamar render ($ form) para obter a marcação.
fonte
Eu escrevi uma solução simples e possível no segmento já mencionado: https://drupal.org/node/1048644#comment-7822687 . Por conveniência, colarei aqui.
Existe uma maneira simples de desativar as guias verticais em um formulário, simplesmente alterando o
$form['additional_settings']['#type']
valor da variável para'fieldset'
uma implementação de hook_form_alter () ou hook_form_FORM_ID_alter () , se for igual a'vertical_tabs'
.Você não precisa alterar as configurações de acesso ou percorrer toda a
$form
matriz recursivamente, a última consome recursos demais desnecessariamente.(Testado no Drupal 7.23 .)
Isso é tudo, é claro, substitui
MYMODULEORTHEMENAME
o nome do seu módulo ou tema (o último em umtemplate.php
arquivo) emy_form_id
a identificação do seu formulário.Você também pode desativar os campos verticais apenas para usuários que NÃO possuem a função de administrador :
No caso de alguém está interessado, I anexa um remendo (que faz o mesmo que acima) para Dripman módulo de caixa de areia 's: # 2080739: simplificar o método de desativação guias verticais com apenas mudando a
$form['additional_settings']['#type']
a'fieldset'
.fonte
No momento, os elementos com capacidade de renderização não são suportados e reconhecem na página do projeto que estão em conflito com alguns outros módulos contribuídos, para que eu não confie nele nos sites de produção.
A questão de como desativar completamente as guias verticais é abordada neste tópico .
O Dripman criou um módulo sandbox simples para desativar completamente as guias verticais.
Dependendo do nível de envolvimento desejado com a codificação, o módulo Dripman deve ser facilmente personalizável para ser seletivo com base em campos / funções.
Desculpas por sobreposição com resposta sucinta por @nicoz
fonte
Você pode usar o módulo Vertical Tabs Visibility .
Atualmente, o módulo está na sandbox
fonte
Para o meu caso de uso, eu estava tentando desativar as guias verticais aplicadas na seção Opções de publicação em um formulário de edição de nó (já que esse era o único conjunto de campos ao qual um conjunto específico de usuários tem acesso):
Para esclarecimento, você não apenas precisa definir
additional_settings
#collapsible
como FALSE, mas também todos os elementos devem ter o elemento #collapsibleset to
FALSE, in my case that was the
options`.fonte