chupzzz
12/1/2011 - 4:47 PM

Drupal 7 — Move $scripts at page bottom

Drupal 7 — Move $scripts at page bottom

<?php

// Used in conjunction with https://gist.github.com/1417914

/**
 * Implements hook_preprocess_html().
 */
function THEMENAME_preprocess_html(&$vars) {
  // Move JS files "$scripts" to page bottom for perfs/logic.
  // Add JS files that *needs* to be loaded in the head in a new "$head_scripts" scope.
  // For instance the Modernizr lib.
  $path = drupal_get_path('theme', 'THEMENAME');
  drupal_add_js($path . '/js/modernizr.min.js', array('scope' => 'head_scripts', 'weight' => -1, 'preprocess' => FALSE));  
}

/**
 * Implements hook_process_html().
 */
function THEMENAME_process_html(&$vars) {
  $vars['head_scripts'] = drupal_get_js('head_scripts');
}
<!DOCTYPE html>
<html<?php print $html_attributes; ?>>
<head>
  <?php print $head; ?>
  <title><?php print $head_title; ?></title>
  <?php print $styles; ?>
  <?php print $head_scripts; ?>
</head>

<body<?php print $body_attributes;?>>
  <?php print $page_top; ?>
  <?php print $page; ?>
  <?php print $scripts; ?>
  <?php print $page_bottom; ?>
</body>
</html>