| 7 theme.inc | template_preprocess_page(&$variables) |
| 6 theme.inc | template_preprocess_page(&$variables) |
| 8 theme.inc | template_preprocess_page(&$variables) |
Preprocess variables for page.tpl.php
Most themes utilize their own copy of page.tpl.php. The default is located inside "modules/system/page.tpl.php". Look in there for the full list of variables.
Uses the arg() function to generate a series of page template suggestions based on the current path.
Any changes to variables in this preprocessor should also be changed inside template_preprocess_maintenance_page() to keep all of them consistent.
See also
File
- includes/
theme.inc, line 2532 - The theme system, which controls the output of Drupal.
Code
function template_preprocess_page(&$variables) {
// Move some variables to the top level for themer convenience and template cleanliness.
$variables['show_messages'] = $variables['page']['#show_messages'];
foreach (system_region_list($GLOBALS['theme']) as $region_key => $region_name) {
if (!isset($variables['page'][$region_key])) {
$variables['page'][$region_key] = array();
}
}
// Set up layout variable.
$variables['layout'] = 'none';
if (!empty($variables['page']['sidebar_first'])) {
$variables['layout'] = 'first';
}
if (!empty($variables['page']['sidebar_second'])) {
$variables['layout'] = ($variables['layout'] == 'first') ? 'both' : 'second';
}
$variables['base_path'] = base_path();
$variables['front_page'] = url();
$variables['feed_icons'] = drupal_get_feeds();
$variables['language'] = $GLOBALS['language'];
$variables['language']->dir = $GLOBALS['language']->direction ? 'rtl' : 'ltr';
$variables['logo'] = theme_get_setting('logo');
$variables['main_menu'] = theme_get_setting('toggle_main_menu') ? menu_main_menu() : array();
$variables['secondary_menu'] = theme_get_setting('toggle_secondary_menu') ? menu_secondary_menu() : array();
$variables['action_links'] = menu_local_actions();
$variables['site_name'] = (theme_get_setting('toggle_name') ? filter_xss_admin(variable_get('site_name', 'Drupal')) : '');
$variables['site_slogan'] = (theme_get_setting('toggle_slogan') ? filter_xss_admin(variable_get('site_slogan', '')) : '');
$variables['tabs'] = menu_local_tabs();
if ($node = menu_get_object()) {
$variables['node'] = $node;
}
// Populate the page template suggestions.
if ($suggestions = theme_get_suggestions(arg(), 'page')) {
$variables['theme_hook_suggestions'] = $suggestions;
}
}
Comments
Yes, this function can be added to a module
PermalinkYou can implement this hook in a module with MODULENAME_preprocess_page.
drupal_not_found inside this function?
PermalinkWhen I try to call drupal_not_found(); drupal_exit(); inside this function the page seem to be taking forever to load and when it does it only show white page
You can add this to the very
PermalinkYou can add this to the very top (after opening php tag) of index.php to get errors for white screens (wsod). Make sure you remove it after troubleshooting the error.
error_reporting(E_ALL);ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);