Retrieves information for a JavaScript/CSS library.
Library information is statically cached. Libraries are keyed by module for several reasons:
@todo The purpose of drupal_get_*() is completely different to other page requisite API functions; find and use a different name.
$module: The name of a module that registered a library.
$name: (optional) The name of a registered library to retrieve. By default, all libraries registered by $module are returned.
The definition of the requested library, if $name was passed and it exists, or FALSE if it does not exist. If no $name was passed, an associative array of libraries registered by $module is returned (which may be empty).
function drupal_get_library($module, $name = NULL) {
$libraries =& drupal_static(__FUNCTION__, array());
if (!isset($libraries[$module])) {
// Retrieve all libraries associated with the module.
$module_libraries = module_invoke($module, 'library');
if (empty($module_libraries)) {
$module_libraries = array();
}
// Allow modules to alter the module's registered libraries.
drupal_alter('library', $module_libraries, $module);
foreach ($module_libraries as $key => $data) {
if (is_array($data)) {
// Add default elements to allow for easier processing.
$module_libraries[$key] += array(
'dependencies' => array(),
'js' => array(),
'css' => array(),
);
foreach ($module_libraries[$key]['js'] as $file => $options) {
$module_libraries[$key]['js'][$file]['version'] = $module_libraries[$key]['version'];
}
}
}
$libraries[$module] = $module_libraries;
}
if (isset($name)) {
if (!isset($libraries[$module][$name])) {
$libraries[$module][$name] = FALSE;
}
return $libraries[$module][$name];
}
return $libraries[$module];
}