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?
2 Answers
Should be
$node = node_load($nid);
$node->field_mood[$node->language][0]['value'];
5 Comments
dantz
Thanks. The $node->language was the missing piece in my puzzle.
Andrew Sledge
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.
joar
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
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.Capi Etheriel
if you're in the node page, please use <code>$node = menu_get_object();</code> since it gets the node from the page cache.
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