function hook_page_build

Add elements to a page before it is rendered.

Use this hook when you want to add elements at the page level. For your additions to be printed, they have to be placed below a top level array key of the $page array that has the name of a region of the active theme.

By default, valid region keys are 'page_top', 'header', 'sidebar_first', 'content', 'sidebar_second' and 'page_bottom'. To get a list of all regions of the active theme, use system_region_list($theme). Note that $theme is a global variable.

If you want to alter the elements added by other modules or if your module depends on the elements of other modules, use hook_page_alter() instead which runs after this hook.

Parameters

$page: Nested array of renderable elements that make up the page.

See also

hook_page_alter()

drupal_render_page()

Related topics

11 functions implement hook_page_build()

Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.

block_page_build in drupal/core/modules/block/block.module
Implements hook_page_build().
contextual_page_build in drupal/core/modules/contextual/contextual.module
Implements hook_page_build().
dblog_page_build in drupal/core/modules/dblog/dblog.module
Implements hook_page_build().
edit_page_build in drupal/core/modules/edit/edit.module
Implements hook_page_build().
field_page_build in drupal/core/modules/field/field.module
Implements hook_page_build().

... See full list

1 invocation of hook_page_build()
drupal_render_page in drupal/core/includes/common.inc
Renders the page, including all theming.

File

drupal/core/modules/system/system.api.php, line 489
Hooks provided by Drupal core and the System module.

Code

function hook_page_build(&$page) {
  $path = drupal_get_path('module', 'foo');

  // Add JavaScript/CSS assets to all pages.
  // @see drupal_process_attached()
  $page['#attached']['js'][$path . '/foo.css'] = array(
    'every_page' => TRUE,
  );
  $page['#attached']['css'][$path . '/foo.base.css'] = array(
    'every_page' => TRUE,
  );
  $page['#attached']['css'][$path . '/foo.theme.css'] = array(
    'every_page' => TRUE,
  );

  // Add a special CSS file to a certain page only.
  if (drupal_is_front_page()) {
    $page['#attached']['css'][] = $path . '/foo.front.css';
  }

  // Append a standard disclaimer to the content region on a node detail page.
  if (menu_get_object('node', 1)) {
    $page['content']['disclaimer'] = array(
      '#markup' => t('Acme, Inc. is not responsible for the contents of this sample code.'),
      '#weight' => 25,
    );
  }
}