function drupal_add_library

Adds multiple JavaScript or CSS files at the same time.

A library defines a set of JavaScript and/or CSS files, optionally using settings, and optionally requiring another library. For example, a library can be a jQuery plugin, a JavaScript framework, or a CSS framework. This function allows modules to load a library defined/shipped by itself or a depending module, without having to add all files of the library separately. Each library is only loaded once.


$module: The name of the module that registered the library.

$name: The name of the library to add.

$every_page: Set to TRUE if this library is added to every page on the site. Only items with the every_page flag set to TRUE can participate in aggregation.

Return value

TRUE if the library was successfully added; FALSE if the library or one of its dependencies could not be added.

See also




13 calls to drupal_add_library()
drupal_add_js in includes/
Adds a JavaScript file, setting, or inline code to the page.
drupal_add_tabledrag in includes/
Assists in adding the tableDrag JavaScript behavior to a themed table.
drupal_process_attached in includes/
Adds attachments to a render() structure.
JavaScriptTestCase::testLibraryAlter in modules/simpletest/tests/common.test
Adds a JavaScript library to the page and alters it.
JavaScriptTestCase::testLibraryRender in modules/simpletest/tests/common.test
Adds a library to the page and tests for both its JavaScript and its CSS.

... See full list

3 string references to 'drupal_add_library'
JavaScriptTestCase::resetStaticVariables in modules/simpletest/tests/common.test
Resets static variables related to adding JavaScript to a page.
JavaScriptTestCase::setUp in modules/simpletest/tests/common.test
Sets up a Drupal site for running functional and integration tests.
overlay_render_region in modules/overlay/overlay.module
Renders an individual page region.


includes/, line 4968


function drupal_add_library($module, $name, $every_page = NULL) {
    $added =& drupal_static(__FUNCTION__, array());
    // Only process the library if it exists and it was not added already.
    if (!isset($added[$module][$name])) {
        if ($library = drupal_get_library($module, $name)) {
            // Add all components within the library.
            $elements['#attached'] = array(
                'library' => $library['dependencies'],
                'js' => $library['js'],
                'css' => $library['css'],
            $added[$module][$name] = drupal_process_attached($elements, JS_LIBRARY, TRUE, $every_page);
        else {
            // Requested library does not exist.
            $added[$module][$name] = FALSE;
    return $added[$module][$name];

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.