11

I added a new field "mood" (image) to the page content type. Is there any way to access the image stored in this field in the page.tpl.php?

dantz
  • 1,842
  • 4
  • 21
  • 25

2 Answers2

10

Should be

$node = node_load($nid);
$node->field_mood[$node->language][0]['value'];
JochenJung
  • 7,183
  • 12
  • 64
  • 113
  • Thanks. The $node->language was the missing piece in my puzzle. – dantz Jan 13 '11 at 15:55
  • 1
    Remember that CCK has been moved into the core. It's no longer $node->field_language[0]['value']. The field_ prefix is no longer necessary. – Andrew Sledge Jan 13 '11 at 17:15
  • How would I go about to render a field, just as it is possible in node.tpl.php? `render($content['FIELD'])` but instead somthing along the ways of `render($node->FIELD)`? – joar May 15 '11 at 15:20
  • I found the solution to my comment, I had to use `$view = node_view($node); render($view)`. This was a while ago, more information about `node_view` is out there. – joar May 23 '11 at 11:43
  • if you're in the node page, please use $node = menu_get_object(); since it gets the node from the page cache. – Capi Etheriel Jan 18 '12 at 15:41
8

There is a new "field_get_items()" function in drupal 7. The $node variable should already be defined in page.tpl so the first line may not be required.

This will get the field in the appropriate language. There is also an optional parameter to specify the desired language if needed.

$node = node_load($nid);
$values = field_get_items('node', $node, 'mood');
if ($values != FALSE) {
  $val = $values[0]['value'];
}
else {
  // no result
}

reference: http://api.drupal.org/api/drupal/modules--field--field.module/function/field_get_items/7

idFlood
  • 1,016
  • 10
  • 20