Ocultar um rótulo de campo

22

Existe uma maneira de ocultar o rótulo do campo ao renderizar um campo personalizado no Drupal 7?

No meu modelo de nó, tenho:

<?php print render($content['field_image']); ?>

O que me dá:

<div class="field field-name-field-image field-type-image field-label-above">
  <div class="field-label">Image:&nbsp;</div>
  <div class="field-items">
    <div class="field-item even">
      <img typeof="foaf:Image" src="http://site.com/sites/default/files/image.jpg" alt="">
    </div>
  </div>
</div>

Eu gostaria de não ter o <div class="field-label">Image:&nbsp;</div>.

Existe uma maneira de se livrar disso, exceto no CSS ou criando manualmente a marcação?

Eu tentei unset($content['field_image']['#title']), mas isso me dá <div class="field-label">:&nbsp;</div>.

Ben
fonte
7
Nevermind eu descobri-lo, você define #label_display para oculto: <?php $content['field_image']['#label_display'] = 'hidden'; ?>
Ben
1
Você pode adicionar isso como resposta e aceitá-lo, para que fique claro que a resposta está resolvida.
Berdir
Eu tive o mesmo problema, mas eu quero fazer um modelo de campo para o meu nó. Como posso ? em vez de remover o rótulo #
+1 na sua pergunta, Ben, mas sua resposta aceita deve ser a resposta de @ Marta abaixo. Não há necessidade de escrever qualquer código para este problema! Vá para: admin / estrutura / tipos / gerenciar / SEU TIPO DE CONTEÚDO / exibir para mostrar sua lista de campos e, sob o Rótulo, selecione <Hidden> no menu suspenso. Clique no botão Salvar. Esta resposta deve se aplicar aos tipos de campo, talvez todos, não apenas aos arquivos.
Therobyouknow 28/06

Respostas:

24

Em vez de codificar a configuração para rótulos de campo no modelo, você deve usar a configuração na Manage displayguia onde você adiciona e remove campos para sua entidade.

googletorp
fonte
Googletorp, como você esconde o rótulo do título?
1
Se você editar o tipo de conteúdo, poderá alterar o valor Title field label. É um pouco chato que o título ainda seja obrigatório, mas acho que é a vida.
MALKS
1
É possível exibir os rótulos dos campos de maneira diferente ao criar conteúdo e ao exibi-lo publicamente?
Jay
@ Jay seria possível, mas exigiria código, personalizado ou através de um módulo. Eu não conheço nenhum módulo que faça isso por você agora.
googletorp
1
Ben, sua resposta aceita deve ser a resposta de @ Marta abaixo. Não há necessidade de escrever nenhum código! Vá para: admin / estrutura / tipos / gerenciar / SEU TIPO DE CONTEÚDO / exibir para mostrar sua lista de campos e, sob o Rótulo, selecione <Hidden> no menu suspenso. Clique no botão Salvar. Esta resposta deve se aplicar aos tipos de campo, talvez todos, não apenas aos arquivos.
Therobyouknow 28/06
11

Para ocultar o nome de um campo personalizado (neste caso, campo de arquivo com o nome "arquivo") para mostrar apenas uma lista de arquivos para download e não o nome do campo, faça o seguinte:

  • Escolha o tipo de conteúdo que contém o campo de arquivo (criei um novo tipo chamado "Lista de arquivos")
  • Navegue até a guia "Gerenciar campos"
  • Em Rótulo, escolha "Oculto" e, em Formato, "Arquivo genérico"
  • Salve e crie um novo nó desse tipo de conteúdo e o nome "arquivo" não deverá mais ser exibido
Marta
fonte
2
+1 @ A resposta de Marta acima deve ser a resposta aceita - admin / estrutura / tipos / gerenciar / SEU TIPO DE CONTEÚDO / exibir para mostrar sua lista de campos e, sob o rótulo, selecione <Oculto> no menu suspenso. Clique no botão Salvar. Esta resposta deve se aplicar aos tipos de campo, talvez todos, não apenas aos arquivos.
Therobyouknow 28/06
Concordo! A menos que você faz com a codificação ou css em Drupal o melhor :)
jasonflaherty
7

Sim, usando a propriedade #title_display da API do formulário.

drupaljoe
fonte
Não é '#label_display'?
Shoaib Nawaz
7
$content['field_image']['#label_display']='hidden';
Mike
fonte
Melhor resposta para o meu caso de uso.
Kiee
4

usando o modelo, field.tpl.phpvocê pode remover ou personalizar o rótulo ( $labelno modelo) do seu campo. Para usá-lo, você deve adicionar o campo de modelo field.tpl.phpao seu tema:

<div class="<?php print $classes; ?>"<?php print $attributes; ?>>
  <?php if (!$label_hidden): ?>
    <div class="field-label"<?php print $title_attributes; ?>><?php print $label ?>:&nbsp;</div>
  <?php endif; ?>
  <div class="field-items"<?php print $content_attributes; ?>>
    <?php foreach ($items as $delta => $item): ?>
      <div class="field-item <?php print $delta % 2 ? 'odd' : 'even'; ?>"<?php print $item_attributes[$delta]; ?>><?php print render($item); ?></div>
    <?php endforeach; ?>
  </div>
</div>
cigotete
fonte