Override the body field with another field in hook_node_view I have a node type that can be scheduled. Before the start time the page will redirect to another. This is all custom functionality and is currently working.

Now I need to create a coming soon page to allow the page to be active before the start time but not show any of the details.

I've created a coming soon field in the node and I have the logic set up correctly but I am struggling with the render array.

function MODULE_node_view($node, $view_mode, $langcode) {
  if ($node-&gt;type == 'TYPE') {

    // admins see the page no matter what
    if (!user_access('administer site configuration')) {

      // if not started, show coming soon page
      $coming_soon = FALSE;
      if (!STARTED) {
        $coming_soon = field_get_items('node', $node, 'field_coming_soon_body');
        if ($coming_soon) {
          $node-&gt;content['body']['#object']-&gt;body[$node-&gt;language][0]['value'] = $coming_soon[0]['value'];
        }
      }
    }
  }
}


This however still shows the actual body of the page and not the coming soon page. I really want to do this in hook_node_view as well.

How can I go about replacing the content of the page with this single field?
Just hide your body field, if there's a value in your field_coming_soon_body:

    if ($coming_soon) {
      $node-&gt;content['body']['#access'] = 0;
    }