[gelöst] Bilder aus Image Nodes in Template ausgeben
Eingetragen von hermx (256)
am 28.05.2010 - 01:27 Uhr in
am 28.05.2010 - 01:27 Uhr in
Hi,
Ich habe eine Inhaltstyp mit einem Nodereferenz-Feld (Feldname: field_noderefbild), das auf einen Image Node verweist.
In einer Node-Template möchte ich dieses Bild ausgeben.
Ich habe
<?php print $node->field_noderefbild[0]['view'] ; ?>
probiert. Dies zeigt allerdings den ganzen Image Node an, d.h. mit Titel, Links etc.
Welchen Code brauche ich, um NUR das tatsächliche Bild (=Content des Image nodes?) anzuzeigen?
Danke für Tipps, hermx
- Anmelden oder Registrieren um Kommentare zu schreiben
Inzwischen habe ich folgende
am 29.05.2010 - 12:26 Uhr
Inzwischen habe ich folgende Möglichkeit gefunden:
Man muss erst den Image Node mit node_load laden und kann dann mit display_image bestimmte Presets ausgeben:
<?php
$inid = $node->field_noderefbild[0]['nid']; // NodeId des Imagenodes, auf den das Nodereferenzfeld field_image verweist
// $inode = node_load(array('type' => 'image', 'nid' => $inid)); // Image node laden; führt immer DB-call aus (performance overhead)
$inode = node_load($inid,NULL,NULL); // Image node laden; verwendet cache, Syntay siehe api.drupal.org
print image_display($inode, 'preset'); // definierte Grösse ausgeben; 'preset' aus Image Einstellungen, z.B. 'thumbnail', 'preview', etc.
?>
Die genaue Bedeutung der Syntax von node_load findet sich unter http://api.drupal.org/api/function/node_load/6
Bei mit Image attach angehängten Bildern geht das ähnlich, man bekommt die nid der Bilder aus dem array iids des Nodes:
<?php
// gibt einzelne Bilder aus
$inid = $node->iids[0]; //das array iids enthält die nid's der einzelnen Bildnodes, die ahgehängt wurden; iids[0]=nid des 1. Bild-Nodes, etc.
$inode = node_load($inid,NULL,NULL);
print image_display($inode, 'preset');
?>