Feldbezeichnung ausblenden


22

Gibt es eine Möglichkeit, die Feldbezeichnung beim Rendern eines benutzerdefinierten Felds in Drupal 7 auszublenden?

In meiner Knotenvorlage habe ich:

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

Welches gibt mir:

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

Ich möchte das nicht haben <div class="field-label">Image:&nbsp;</div>.

Gibt es eine Möglichkeit, dieses Problem anders als im CSS oder durch manuelles Erstellen des Markups zu beheben?

Ich habe es versucht unset($content['field_image']['#title']), aber das gibt mir <div class="field-label">:&nbsp;</div>.


7
Egal, ich habe es herausgefunden, du hast #label_display auf hidden gesetzt: <?php $content['field_image']['#label_display'] = 'hidden'; ?>
Ben

1
Sie können dies als Antwort hinzufügen und akzeptieren, damit klar ist, dass die Antwort gelöst ist.
Berdir

Ich hatte das gleiche Problem, aber ich möchte eine Feldvorlage für meinen Knoten tun. wie kann ich ? anstatt das Etikett zu entfernen

+1 auf deine Frage, Ben, aber deine akzeptierte Antwort sollte @ Martas Antwort sein. Für dieses Problem muss KEIN CODE geschrieben werden! Gehen Sie zu: admin / structure / types / manage / YOUR CONTENT TYPE / display, um die Liste Ihrer Felder anzuzeigen, und wählen Sie im Dropdown-Menü unter Label die Option <Versteckt>. Klicken Sie auf die Schaltfläche Speichern. Diese Antwort sollte für Feldtypen gelten, möglicherweise für alle, nicht nur für Dateien.
Therobyouknow

Antworten:


24

Anstatt die Einstellung für Feldbeschriftungen in der Vorlage fest zu codieren, sollten Sie stattdessen die Einstellung auf der Manage displayRegisterkarte verwenden, auf der Sie Felder für Ihre Entität hinzufügen und entfernen.


Googletorp, wie versteckst du dann die Bezeichnung des Titels?

1
Wenn Sie den Inhaltstyp bearbeiten, können Sie den Wert in ändern Title field label. Es ist ein bisschen ärgerlich, dass der Titel immer noch obligatorisch ist, aber das ist das Leben, denke ich.
Malks

1
Ist es möglich, die Feldbeschriftungen beim Erstellen von Inhalten und beim öffentlichen Anzeigen unterschiedlich anzuzeigen?
Jay

@Jay es wäre möglich, würde aber Code erfordern, entweder benutzerdefiniert oder über ein Modul. Ich kenne jedoch noch kein Modul, das dies für Sie erledigt.
googletorp

1
Ben, deine akzeptierte Antwort sollte @ Martas Antwort sein. Sie müssen keinen Code schreiben! Gehen Sie zu: admin / structure / types / manage / YOUR CONTENT TYPE / display, um die Liste Ihrer Felder anzuzeigen, und wählen Sie im Dropdown-Menü unter Label die Option <Versteckt>. Klicken Sie auf die Schaltfläche Speichern. Diese Antwort sollte für Feldtypen gelten, möglicherweise für alle, nicht nur für Dateien.
Therobyouknow

11

Um den Namen eines benutzerdefinierten Feldes (in diesem Fall ein Dateifeld mit dem Namen "file") auszublenden, um nur eine Liste der herunterladbaren Dateien und nicht den Namen des Feldes anzuzeigen, gehen Sie wie folgt vor:

  • Wählen Sie den Inhaltstyp aus, der das Dateifeld enthält (ich habe einen neuen Typ mit dem Namen "Dateiliste" erstellt).
  • Navigieren Sie zur Registerkarte "Felder verwalten"
  • Wählen Sie unter Label "Hidden" und unter Format "Generic File"
  • Speichern und erstellen Sie einen neuen Knoten dieses Inhaltstyps, und der Name "Datei" sollte nicht mehr angezeigt werden

2
+1 @ Martas Antwort oben sollte die akzeptierte Antwort sein - admin / structure / types / manage / YOUR CONTENT TYPE / display, um die Liste der Felder anzuzeigen, und wählen Sie unter dem Label im Dropdown-Menü <Hidden> aus. Klicken Sie auf die Schaltfläche Speichern. Diese Antwort sollte für Feldtypen gelten, möglicherweise für alle, nicht nur für Dateien.
Therobyouknow

Genau! Je weniger Sie mit Codierung oder CSS in Drupal tun, desto besser :)
JasonFlaherty


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

Beste Antwort für meinen Anwendungsfall.
Kiee

4

Mit der Vorlage können field.tpl.phpSie die Beschriftung ( $labelin der Vorlage) Ihres Feldes entfernen oder anpassen . Um es zu verwenden, müssen Sie das Vorlagenfeld field.tpl.phpzu Ihrem Thema hinzufügen :

<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>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.