So rendern Sie ein Bildfeld


7

Wie kann ein Drupal 7-Bildfeld korrekt gerendert und das Standardbild angezeigt werden, wenn das Feld leer ist?

Wenn ich es benutze field_get_items, wird es einfach zurückgegeben, FALSEwenn das Feld leer ist.

Antworten:


15

Ich denke, die beste Vorgehensweise wäre wahrscheinlich field_view_field():

$view = field_view_field('node', $node, 'field_image');
print render($view);

Dadurch wird das Feld so gerendert, als wäre es an eine Entitätsansicht angehängt, und als solches wird das Standardbild bereitgestellt, wenn keines verfügbar ist.


2
Wie dokumentiert, können Sie entweder die Anzeigeeinstellungen aus einem vorhandenen Ansichtsmodus verwenden oder Ihre eigenen als viertes Argument angeben. Wenn Sie nur den Feldwert mit seiner Bezeichnung und dem Wrapper-Markup möchten, verwenden Sie field_view_value ().
Pierre Buyle

10

Sie können den Bildstil (Bild-Cache-Voreinstellungen in D6) auch wie folgt festlegen:

render(field_view_field('user', $user, 'field_avatar', array('settings' => array('image_style' => 'avatar'))));

render()erfordert eine als Referenz übergebene Variable. Da field_view_field()keine Referenz zurückgegeben wird, löst dieser Code einen Fehler aus. Sehen Sie sich Clives Antwort an, um zu sehen, wie render()sie aufgerufen werden soll.
Kiamlaluno
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.