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

Ben
quelle
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
quelle
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
Marta
quelle
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

Ja, mithilfe der Eigenschaft #title_display der Formular-API.

Drupaljoe
quelle
Ist das nicht '#label_display'?
Shoaib Nawaz
7
$content['field_image']['#label_display']='hidden';
Mike
quelle
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>
Zigotete
quelle