The purpose of $page in node.tpl.php and when does it become FALSE? I noticed that there is a variable $page in node.tpl.php and it is usually TRUE.
The node title is not displayed while it is TRUE, but in page.tpl.php, the node title has been displayed as a page title. The below is the code snippet from node.tpl.php of Bartik theme.

  &lt;?php if (!$page): ?&gt;
    &lt;h2&lt;?php print $title_attributes; ?&gt;&gt;
      &lt;a href="&lt;?php print $node_url; ?&gt;"&gt;&lt;?php print $title; ?&gt;&lt;/a&gt;
    &lt;/h2&gt;
  &lt;?php endif; ?&gt;


When the variable is FALSE, the node title in node.tpl.php will be displayed and it seems like duplicate title being displayed. I tried this:

function bartik_preprocess_node(&amp;$variables) {
  if ($variables['view_mode'] == 'full' &amp;&amp; node_is_page($variables['node'])) {
    $variables['classes_array'][] = 'node-full';
  }
  dpm($variables);
  $variables['page'] = FALSE;
}


What is the purpose of this variable and when does it become FALSE?.
That variable becomes false in:

template_preprocess_node

with

$variables['page'] = $variables['view_mode'] == 'full' &amp;&amp; node_is_page($node);


See also:

node_view

For the view_mode parameter used there.

The output of the node $title is controlled by page.tpl.php for the full page node view.