- drupal
Default theme implementation to display a single Drupal page.
Available variables:
General utility variables:
- $base_path: The base URL path of the Drupal installation. At the very least, this will always default to /.
- $directory: The directory the template is located in, e.g. modules/system or themes/bartik.
- $is_front: TRUE if the current page is the front page.
- $logged_in: TRUE if the user is registered and signed in.
- $is_admin: TRUE if the user has permission to access administration pages.
Site identity:
- $front_page: The URL of the front page. Use this instead of $base_path, when linking to the front page. This includes the language domain or prefix.
- $logo: The path to the logo image, as defined in theme configuration.
- $site_name: The name of the site, empty when display has been disabled in theme settings.
- $site_slogan: The slogan of the site, empty when display has been disabled in theme settings.
Navigation:
- $main_menu (array): An array containing the Main menu links for the site, if they have been configured.
- $secondary_menu (array): An array containing the Secondary menu links for the site, if they have been configured.
- $breadcrumb: The breadcrumb trail for the current page.
Page content (in order of occurrence in the default page.tpl.php):
- $title_prefix (array): An array containing additional output populated by modules, intended to be displayed in front of the main title tag that appears in the template.
- $title: The page title, for use in the actual HTML content.
- $title_suffix (array): An array containing additional output populated by modules, intended to be displayed after the main title tag that appears in the template.
- $messages: HTML for status and error messages. Should be displayed prominently.
- $tabs (array): Tabs linking to any sub-pages beneath the current page (e.g., the view and edit tabs when displaying a node).
- $action_links (array): Actions local to the page, such as 'Add menu' on the menu administration interface.
- $feed_icons: A string of all feed icons for the current page.
- $node: The node object, if there is an automatically-loaded node associated with the page, and the node ID is the second argument in the page's path (e.g. node/12345 and node/12345/revisions, but not comment/reply/12345).
Regions:
- $page['help']: Dynamic help text, mostly for admin pages.
- $page['highlighted']: Items for the highlighted content region.
- $page['content']: The main content of the current page.
- $page['sidebar_first']: Items for the first sidebar.
- $page['sidebar_second']: Items for the second sidebar.
- $page['header']: Items for the header region.
- $page['footer']: Items for the footer region.
See also
View source
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | |
Comments
How to tell if rendering page in overlay
This is not in the default implementation, but I find it helpful on my page template files. Here's a simple snippet for your template.php _preprocess_page() function:
<?phpfunction themename_preprocess_page(&$variables) {
if (overlay_get_mode() == 'child') {
$variables['renderingOverlay'] = TRUE;
} else {
$variables['renderingOverlay'] = FALSE;
}
}
?>
That makes available a $renderingOverlay variable for your page template files so you could omit certain regions. I am using as follows to not render my 'right_column' region:
<?php if (! $renderingOverlay): ?><div class="right-column-region">
<?php print render($page['right_column']); ?>
</div>
<?php endif;?>
Tutorial Drupal 7 Theming
Checkout this for other drupal 7 theming tutorial
http://drupal.org/node/1089656
---
Website Development Services
Theming Tip
If you are having trouble getting a region to appear there's a slight (but important) difference between D6 and D7.
D6:
<?phpprint $content;
?>
D7:
<?phpprint render($page['content']);
?>
All regions need to be placed into render() before it can be printed. I looked forever before I happened upon this tidbit and thought it might be useful to mention for other themers.
The tabs div is always printed in Drupal 7
The tabs div is being always output in Drupal 7 (even when there are no tabs for the user) and can cause styling issues. To only print the div when necessary you could use the following code:
<?php if ($tabs = render($tabs)): ?><div class="tabs"><?php print $tabs; ?></div><?php endif; ?>