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.
$page: Nested array of renderable elements that make up the page.
Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.
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,
);
}
}