Dissecting Drupal Pages - Continued
Sitewide Page Variables
The variables available in the template file page.tpl.php are
classified into several categories:
- General utility variables are used to build context-sensitive templates with directory names relevant to the path of the theme’s location on the server.
- Page metadata includes page language, style and script tags relevant to the page, and body classes.
- Site identity takes the form of the site name, site slogan, site mission, and logo.
- Navigation includes items related to primary and secondary navigation, as well as search boxes.
- Page content includes the page title, dynamic help text and Drupal system messages, and tabs.
- Footer and closing data includes RSS feed icons, footer messages, and final markup from any modules (“closure”).
Commonly used variables are identified in Figure 4.2, which
depicts a fresh installation of Drupal, using the theme
Garland.
Click here for larger image
Figure 4.2- Common variables displayed in the Garland theme.
A complete list of page template variables is available from
the Drupal directory -modules/system, in the file page.tpl.php,
which is also available online at http://api.drupal.org/api/file/modules/system/page.tpl
.php.
General Utility Variables
The general utility variables represent a very basic toolkit
with which you can customize your site’s template based on the
characteristics of the visitor. They include the following
variables:
- Variables useful in linking to images and files within your
site, such as $base_path (the base URL for the Drupal
installation) and $directory (the base directory for this
theme)
- $is_front, which reports if the current page is the front
page of the site
- User status checks, including the test of whether the
visitor is logged into the site ($logged_in) and whether the
user has access to administration pages ($is_admin)
Page Metadata
The page metadata variables are used in the <HEAD> tag of the
page template. This set includes the following variables:
- An object containing the language the site is being
displayed in. To print the text representation of the language
to your template, use the following variable: $language-
>language.
- $head_title: A modified version of the page title containing
the site name, for use in the <TITLE> tag.
- $head: Metadata for metatags, keyword tags to be inserted
into the <HEAD> section.
- $styles: Style tags used to link all CSS files for the
page.
- $scripts: Script tags used to load the JavaScript files and
settings for the page.
In addition to this metadata, there is a wonderful variable
that contains a set of conditions to help you style each page:
$body_classes. The $body_classes variable includes the following
information: the current layout (multiple columns, single
column); whether the current visitor is an authenticated user;
and the type of the node being displayed (for example, node-
type-book). This variable includes only the names of the classes
to be used by your style sheets. To use it in your theme, you
must include the following PHP snippet:
<body class="<?php print $body_classes ?>">
Site Identity
The site identity information comprises a set of variables that
outputs information about your site. You can alter the contents
of and/or disable each of these variables in Drupal’s
administration area by navigating to Administer, Site
configuration, Site information.
- $front_page: The URL of the front page. Use this variable
instead of $base_path when linking to the front page. It
includes the language domain or prefix.
- $logo: The path to the logo image, as defined in the
theme.
- $site_name: The name of your Web site.
Two other variables can be set within the site identity section of the Drupal administration area:
- $site_slogan: The slogan of the site.
- $mission: The text of the site mission.
There is no rule that says you must use these last two
variables for their intended purpose; in fact, you can use them
to store any information you would like to display within your
page template.
Drupal Front End
Drupal Front End
Page Content, Drupal Messages, and Help Text
|