สิ่งที่เทียบเท่ากับhook_footer ()ที่ใช้ใน Drupal 6 คือการติดตั้งhook_page_build ()และเปลี่ยนแปลงเนื้อหาของ$page['page_bottom']โดยใช้รหัสที่คล้ายกับโค้ดต่อไปนี้:
function mymodule_page_build(&$page) {
  $page['page_bottom']['devel'] = array(
    '#weight' => 25, 
    '#markup' => '<div style="clear:both;">' . devel_query_table() . '</div>',
  );
}
เนื้อหาของ$page['page_bottom']คือผลลัพธ์จากhtml.tpl.phpโดยใช้รหัสต่อไปนี้:
  <?php print $page_top; ?>
  <?php print $page; ?>
  <?php print $page_bottom; ?>
</body>
</html>
ค่าของ$page_bottomถูกเตรียมใช้งานจากtemplate_process_html ()โดยใช้รหัสต่อไปนี้:
  // Render page_top and page_bottom into top level variables.
  $variables['page_top'] = drupal_render($variables['page']['page_top']);
  $variables['page_bottom'] = drupal_render($variables['page']['page_bottom']);
  // Place the rendered HTML for the page body into a top level variable.
  $variables['page'] = $variables['page']['#children'];
  $variables['page_bottom'] .= drupal_get_js('footer');
ความแตกต่างระหว่างhook_page_alter ()และhook_page_build()เป็นที่hook_page_alter()ดำเนินการหลังจากhook_page_build()และควรใช้ในการเปลี่ยนแปลงหรือลบเนื้อหาที่เพิ่มโดยโมดูลอื่นในขณะที่hook_page_build()ควรใช้เพื่อเพิ่มเนื้อหาใหม่ไปยังหน้า