theme_update_page

Versions
mediamosa-21
theme_update_page($variables)

Generate a themed update page.

Note: this function is not themeable.

Parameters

$variables An associative array containing:

  • content: The page content to show.
  • show_messages: Whether to output status and error messages. FALSE can be useful to postpone the messages to a subsequent page.

Code

includes/theme.maintenance.inc, line 191

<?php
function theme_update_page($variables) {
  // Set required headers.
  drupal_add_http_header('Content-Type', 'text/html; charset=utf-8');

  // Variable processors invoked manually since this function and theme_install_page()
  // are exceptions in how it works within the theme system.
  template_preprocess($variables, 'update_page');
  template_preprocess_maintenance_page($variables);
  template_process($variables, 'update_page');
  template_process_maintenance_page($variables);

  // Special handling of warning messages.
  $messages = drupal_set_message();
  if (isset($messages['warning'])) {
    $title = count($messages['warning']) > 1 ? 'The following update warnings should be carefully reviewed before continuing' : 'The following update warning should be carefully reviewed before continuing';
    $variables['messages'] .= '<h4>' . $title . ':</h4>';
    $variables['messages'] .= theme('status_messages', array('display' => 'warning'));
  }

  // This was called as a theme hook (not template), so we need to fix
  // path_to_theme() for the template, to point at the actual theme rather than
  // system module as owner of the hook. Additionally, figure out the
  // maintenance page template to use.
  global $theme_path, $theme_info, $base_theme_info;
  $theme_path = dirname($theme_info->uri);
  $base_themes = $base_theme_info;
  // Make sure a maintenance-page.tpl.php is always found.
  $base_themes[] = 'modules/system';
  while (!file_exists($theme_path . '/maintenance-page.tpl.php') && $base_theme = array_shift($base_themes)) {
    $theme_path = dirname($base_theme->uri);
  }

  return theme_render_template($theme_path . '/maintenance-page.tpl.php', $variables);
}
?>