Shane Smith
Shane Smith

Reputation: 117

Displaying a Drupal content type field outside of a node

I have created a custom field on a content type in Drupal 7 which I need to display outside of the node, in a separate area on the page.

Similar to how the $title variable works (in which you can place this where you like in the page.tpl.php file) I would like to be able to create another variable called $subtitle which would call the data from the current node and allow me to print out the variable in an area on the page.tpl.php file.

I've seen a view examples seeming to use views and blocks to accomplish this task, but that seems a bit excessive and wondered if there was an easier way.

Upvotes: 1

Views: 1565

Answers (1)

Clive
Clive

Reputation: 36957

There is an easier way, you do need to bear in mind though that not every page is a node page, and not every node page will be of the right content type so you should be selective. Just add this to your theme's template.php file:

function mytheme_preprocess_node(&$vars) {
  $node = $vars['node'];
  if ($node->type == 'my_type') {
   $vars['subtitle'] = $node->field_my_field[LANGUAGE_NONE][0]['value'];
  }
}

Then in page.tpl.php you should do something like this:

if (isset($subtitle)) :
  echo $subtitle;
endif;

Make sure you clear your caches (at admin/config/development/performance) once you've implemented the hook in template.php or Drupal won't pick it up.

Upvotes: 2

Related Questions