Ukryj etykietę pola

22

Czy istnieje sposób, aby ukryć etykietę pola podczas renderowania niestandardowego pola w Drupal 7?

W moim szablonie węzła mam:

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

Co daje mi:

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

Chciałbym nie mieć <div class="field-label">Image:&nbsp;</div>.

Czy istnieje sposób, aby się tego pozbyć inaczej niż w CSS lub ręcznie tworząc znaczniki?

Próbowałem unset($content['field_image']['#title']), ale to mi daje <div class="field-label">:&nbsp;</div>.

Ben
źródło
7
Nieważne, doszedłem do tego, ustawiłeś #label_display na ukryty: <?php $content['field_image']['#label_display'] = 'hidden'; ?>
Ben
1
Możesz dodać to jako odpowiedź i zaakceptować, aby było jasne, że odpowiedź została rozwiązana.
Berdir
miałem ten sam problem, ale chcę zrobić szablon pola dla mojego węzła. jak mogę ? zamiast usuwać etykietę
+1 od twojego pytania, Ben, ale twoją zaakceptowaną odpowiedzią powinna być odpowiedź Marty poniżej. Nie trzeba pisać ŻADNEGO KODU dla tego problemu! Przejdź do: admin / structure / types / manage / YOUR CONTENT TYPE / display, aby wyświetlić listę pól, a pod etykietą wybierz <Ukryty> z rozwijanego menu. Kliknij przycisk Zapisz. Ta odpowiedź powinna dotyczyć typów pól, być może wszystkich, a nie tylko plików.
therobyouknow

Odpowiedzi:

24

Zamiast zakodować na stałe ustawienie etykiet pól w szablonie, należy zamiast tego użyć ustawienia pod Manage displayzakładką, w którym dodajesz i usuwasz pola dla swojej encji.

googletorp
źródło
Googletorp, jak w takim razie ukrywasz etykietę tytułu?
1
Jeśli edytujesz typ zawartości, możesz zmienić wartość w Title field label. To trochę denerwujące, że tytuł jest nadal obowiązkowy, ale myślę, że takie jest życie.
Malks
1
Czy możliwe jest inne wyświetlanie etykiet pól podczas tworzenia treści i wyświetlania jej publicznie?
Jay
@Jay byłoby to możliwe, ale wymagałoby kodu, niestandardowego lub poprzez moduł. Jednak nie znam żadnego modułu, który robi to teraz za Ciebie.
googletorp
1
Ben, twoją zaakceptowaną odpowiedzią powinna być odpowiedź @ Marty poniżej. Nie musisz pisać żadnego kodu! Przejdź do: admin / structure / types / manage / YOUR CONTENT TYPE / display, aby wyświetlić listę pól, a pod etykietą wybierz <Ukryty> z rozwijanego menu. Kliknij przycisk Zapisz. Ta odpowiedź powinna dotyczyć typów pól, być może wszystkich, a nie tylko plików.
therobyouknow
11

Aby ukryć nazwę niestandardowego pola (w tym przypadku pola pliku o nazwie „plik”), aby wyświetlić tylko listę plików do pobrania, a nie nazwę pola, wykonaj następujące czynności:

  • Wybierz typ zawartości zawierający pole pliku (utworzyłem nowy typ o nazwie „Lista plików”)
  • Przejdź do karty „Zarządzaj polami”
  • W obszarze Etykieta wybierz „Ukryty”, a dla Format - „Plik ogólny”
  • Zapisz i utwórz nowy węzeł tego typu treści, a nazwa „plik” nie powinna być już wyświetlana
Marta
źródło
2
Powyższa odpowiedź +1 @ Marta powinna być zaakceptowaną odpowiedzią - administrator / struktura / typy / zarządzanie / TYP TREŚCI / wyświetlacz, aby wyświetlić listę pól, a pod Etykietą wybierz z menu rozwijanego opcję <Ukryty>. Kliknij przycisk Zapisz. Ta odpowiedź powinna dotyczyć typów pól, być może wszystkich, a nie tylko plików.
therobyouknow
Zgadzam się! Im mniej robisz z kodowaniem lub css w drupalu, tym lepiej :)
jasonflaherty
7

Tak, używając właściwości #title_display interfejsu API formularza.

drupaljoe
źródło
Czy to nie jest „#label_display”?
Shoaib Nawaz
7
$content['field_image']['#label_display']='hidden';
Mikrofon
źródło
Najlepsza odpowiedź na mój przypadek użycia.
Kiee 27.04.17
4

za pomocą szablonu field.tpl.phpmożesz usunąć lub dostosować etykietę ( $labelw szablonie) swojego pola. aby go użyć, musisz dodać pole szablonu field.tpl.phpdo swojego motywu:

<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
źródło