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.

Mimrock
quelle

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.

Clive
quelle
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'))));
Paul Hudson
quelle
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