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


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

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



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>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.