Default theme implementation to display the basic html structure of a single Drupal page.

Variables:

  • $css: An array of CSS files for the current page.
  • $language: (object) The language the site is being displayed in. $language->language contains its textual representation. $language->dir contains the language direction. It will either be 'ltr' or 'rtl'.
  • $rdf_namespaces: All the RDF namespace prefixes used in the HTML document.
  • $grddl_profile: A GRDDL profile allowing agents to extract the RDF data.
  • $head_title: A modified version of the page title, for use in the TITLE tag.
  • $head_title_array: (array) An associative array containing the string parts that were used to generate the $head_title variable, already prepared to be output as TITLE tag. The key/value pairs may contain one or more of the following, depending on conditions:

    • title: The title of the current page, if any.
    • name: The name of the site.
    • slogan: The slogan of the site, if any, and if there is no title.
  • $head: Markup for the HEAD section (including meta tags, keyword tags, and so on).
  • $styles: Style tags necessary to import all CSS files for the page.
  • $scripts: Script tags necessary to load the JavaScript files and settings for the page.
  • $page_top: Initial markup from any modules that have altered the page. This variable should always be output first, before all other dynamic content.
  • $page: The rendered page content.
  • $page_bottom: Final closing markup from any modules that have altered the page. This variable should always be output last, after all other dynamic content.
  • $classes String of classes that can be used to style contextually through CSS.

See also

template_preprocess()

template_preprocess_html()

template_process()

33 string references to the theme hook from html.tpl.php

Note: this list is generated by looking for the string for this theme hook, so it may include some references that are not actually using this theme hook.

AJAXCommandsTestCase::testAJAXCommands in modules/simpletest/tests/ajax.test
Test the various Ajax Commands.
ajax_command_html in includes/ajax.inc
Creates a Drupal Ajax 'insert/html' command.
BootstrapMiscTestCase::testMisc in modules/simpletest/tests/bootstrap.test
Test miscellaneous functions in bootstrap.inc.
comment_links in modules/comment/comment.module
Helper function, build links for an individual comment.
comment_node_view in modules/comment/comment.module
Implements hook_node_view().

... See full list

File

modules/system/html.tpl.php
View source
  1. <?php
  2. /**
  3. * @file
  4. * Default theme implementation to display the basic html structure of a single
  5. * Drupal page.
  6. *
  7. * Variables:
  8. * - $css: An array of CSS files for the current page.
  9. * - $language: (object) The language the site is being displayed in.
  10. * $language->language contains its textual representation.
  11. * $language->dir contains the language direction. It will either be 'ltr' or 'rtl'.
  12. * - $rdf_namespaces: All the RDF namespace prefixes used in the HTML document.
  13. * - $grddl_profile: A GRDDL profile allowing agents to extract the RDF data.
  14. * - $head_title: A modified version of the page title, for use in the TITLE
  15. * tag.
  16. * - $head_title_array: (array) An associative array containing the string parts
  17. * that were used to generate the $head_title variable, already prepared to be
  18. * output as TITLE tag. The key/value pairs may contain one or more of the
  19. * following, depending on conditions:
  20. * - title: The title of the current page, if any.
  21. * - name: The name of the site.
  22. * - slogan: The slogan of the site, if any, and if there is no title.
  23. * - $head: Markup for the HEAD section (including meta tags, keyword tags, and
  24. * so on).
  25. * - $styles: Style tags necessary to import all CSS files for the page.
  26. * - $scripts: Script tags necessary to load the JavaScript files and settings
  27. * for the page.
  28. * - $page_top: Initial markup from any modules that have altered the
  29. * page. This variable should always be output first, before all other dynamic
  30. * content.
  31. * - $page: The rendered page content.
  32. * - $page_bottom: Final closing markup from any modules that have altered the
  33. * page. This variable should always be output last, after all other dynamic
  34. * content.
  35. * - $classes String of classes that can be used to style contextually through
  36. * CSS.
  37. *
  38. * @see template_preprocess()
  39. * @see template_preprocess_html()
  40. * @see template_process()
  41. *
  42. * @ingroup themeable
  43. */
  44. ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
  45. "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
  46. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language; ?>" version="XHTML+RDFa 1.0" dir="<?php print $language->dir; ?>"<?php print $rdf_namespaces; ?>>
  47. <head profile="<?php print $grddl_profile; ?>">
  48. <?php print $head; ?>
  49. <title><?php print $head_title; ?></title>
  50. <?php print $styles; ?>
  51. <?php print $scripts; ?>
  52. </head>
  53. <body class="<?php print $classes; ?>" <?php print $attributes;?>>
  54. <div id="skip-link">
  55. <a href="#main-content" class="element-invisible element-focusable"><?php print t('Skip to main content'); ?></a>
  56. </div>
  57. <?php print $page_top; ?>
  58. <?php print $page; ?>
  59. <?php print $page_bottom; ?>
  60. </body>
  61. </html>

Related topics

Comments

Equivalent in drupal 6 API is page.tpl.php
http://api.drupal.org/api/drupal/modules--system--page.tpl.php/6

There is not equivalent of html.tpl.php, in Drupal 6. The page.tpl.php file is still used in Drupal 7, but html.tpl.php has been introduced with Drupal 7.

If you're trying to change the values of some of the variables in this template file, like $page_bottom, in a hook_preprocess_html() implementation, you might find yourself frustrated like I did that your variables seem to be disappearing by the time the page is rendered. Check out what template_process_html() is doing; it's clobbering those variables before html.tpl.php is included. So the short answer is, that instead of doing something like…

<?php
function hook_preprocess_html(&$vars) {
 
$vars['page_bottom'] .= 'foo';
}
?>

You must do…

<?php
function hook_preprocess_html(&$vars) {
 
$vars['page']['page_bottom'][] = array('foo' => array('#markup' => 'foo'));
 
// Or other render array stuff
}
?>

I don't know about a module, but you can manually change the title and add in tags here .../modules/system/html.tpl.php No need to worry, it is just like any HTML based index page I do it on all my sites and it is awesome. This gives you way more control over what the search engines see.

I don't see why we need an separate file for the html, head and body tags. This just makes themeing more complicated. Just frustrated about having to relearn my favorite apps. Everybody does this now.

The idea is that, while you might have multiple page templates, they probably all have the same html header, etc. The html template allows them to be in one place.

See template_process_html for what will actually happen to your variables before they get to the template. You can't just prepare them as specified above. For example, you have to send a $variables['page']['#children'] if you want to send a $variables['page'].

I have created a custom page(page--news.tpl.php) for specific content type called "News". I want to display all news items in this pag.

But my problem is when i open this page http://localhost/drupal/news, page title tag showing "Page not found", but i can able to see my custom code which i have written in page--news.tpl.php.

Please let me know how can i set title tag for this page.

Thanks inadvance...