Скрыть метку поля


22

Есть ли способ скрыть метку поля при рендеринге настраиваемого поля в Drupal 7?

В моем шаблоне узла у меня есть:

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

Что дает мне:

<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>

Я хотел бы не иметь <div class="field-label">Image:&nbsp;</div>.

Есть ли способ избавиться от этого, кроме CSS или создания разметки вручную?

Я пытался unset($content['field_image']['#title']), но это дает мне <div class="field-label">:&nbsp;</div>.


7
Неважно, я понял, вы устанавливаете #label_display скрытым: <?php $content['field_image']['#label_display'] = 'hidden'; ?>
Бен

1
Вы можете добавить это в качестве ответа и принять его, чтобы было ясно, что ответ разрешен.
Бердир

У меня была та же проблема, но я хочу сделать шаблон поля для моего узла. как я могу ? вместо удаления метки

+1 на твой вопрос, Бен, но твой принятый ответ должен быть @ Марта ответ ниже. НЕ нужно писать ЛЮБОЙ КОД для этой проблемы! Перейдите по адресу: admin / структура / типы / управление / ТИП ВАШЕГО КОНТЕНТА / дисплей, чтобы отобразить список полей, и в разделе «Метка» выберите «Hidden» в раскрывающемся меню. Нажмите кнопку Сохранить. Этот ответ должен применяться к типам полей, возможно, ко всем, а не только к файлам.
therobyouknow

Ответы:


24

Вместо того, чтобы жестко задавать настройку для меток полей в шаблоне, вы должны вместо этого использовать настройку на Manage displayвкладке, где вы добавляете и удаляете поля для вашей сущности.


Googletorp, как ты тогда скрываешь ярлык заголовка?

1
Если вы редактируете тип контента, вы можете изменить значение в Title field label. Это немного раздражает, что название все еще является обязательным, но это жизнь, я думаю.
Малкс

1
Можно ли по-разному отображать метки полей при создании контента и при публичном его отображении?
Джей

@ Джей, это было бы возможно, но потребовал бы код, либо пользовательский, либо через модуль. Я не знаю ни одного модуля, который делает это для вас прямо сейчас.
googletorp

1
Бен, твой принятый ответ должен быть @ Марта ответ ниже. Не нужно писать код! Перейдите по адресу: admin / структура / типы / управление / ТИП ВАШЕГО КОНТЕНТА / дисплей, чтобы отобразить список полей, и в разделе «Метка» выберите «Hidden» в раскрывающемся меню. Нажмите кнопку Сохранить. Этот ответ должен применяться к типам полей, возможно, ко всем, а не только к файлам.
therobyouknow

11

Чтобы скрыть имя настраиваемого поля (в данном случае поле файла с именем «файл»), чтобы отображать только список загружаемых файлов, а не имя поля, выполните следующие действия:

  • Выберите тип контента, который содержит поле файла (я создал новый тип под названием «Список файлов»)
  • Перейдите на вкладку «Управление полями»
  • Под меткой выберите «Скрытый», а для формата «Общий файл».
  • Сохраните и создайте новый узел этого типа контента, и имя «файл» больше не должно отображаться.

2
+1 @ Ответ Марты, приведенный выше, должен быть принятым - admin / структура / типы / управление / ТИП ВАШЕГО КОНТЕНТА / дисплей, чтобы отобразить список полей, и в разделе «Метка» выберите «Hidden» в раскрывающемся меню. Нажмите кнопку Сохранить. Этот ответ должен применяться к типам полей, возможно, ко всем, а не только к файлам.
therobyouknow

Я согласен! Чем меньше вы делаете с кодированием или css в друпале, тем лучше :)
jasonflaherty


7
$content['field_image']['#label_display']='hidden';

Лучший ответ для моего варианта использования.
Ки

4

С помощью шаблона field.tpl.phpвы можете удалить или настроить метку ( $labelв шаблоне) вашего поля. чтобы использовать его, вы должны добавить поле шаблона field.tpl.phpв вашу тему:

<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>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.