function libraries_get_libraries in Libraries API 7.3
Same name and namespace in other branches
- 8.3 libraries.module \libraries_get_libraries()
- 6 libraries.module \libraries_get_libraries()
- 7 libraries.module \libraries_get_libraries()
- 7.2 libraries.module \libraries_get_libraries()
Returns an array of library directories.
Returns an array of library directories from the all-sites directory (i.e. sites/all/libraries/), the profiles directory, and site-specific directory (i.e. sites/somesite/libraries/). The returned array will be keyed by the library name. Site-specific libraries are prioritized over libraries in the default directories. That is, if a library with the same name appears in both the site-wide directory and site-specific directory, only the site-specific version will be listed.
Return value
A list of library directories.
1 call to libraries_get_libraries()
- libraries_get_path in ./
libraries.module - Gets the path of a library.
File
- ./
libraries.module, line 121 - External library handling for Drupal modules.
Code
function libraries_get_libraries() {
$searchdir = array();
$profile = drupal_get_path('profile', drupal_get_profile());
$config = conf_path();
// $config and $profile should never be empty in a proper Drupal setup.
// However, we should never search into the root filesystem under any
// circumstances, so just bail out in that case.
if (!$profile && !$config) {
return array();
}
// Similar to 'modules' and 'themes' directories in the root directory,
// certain distributions may want to place libraries into a 'libraries'
// directory in Drupal's root directory.
$searchdir[] = 'libraries';
// Similar to 'modules' and 'themes' directories inside an installation
// profile, installation profiles may want to place libraries into a
// 'libraries' directory.
$searchdir[] = "{$profile}/libraries";
// Always search sites/all/libraries.
$searchdir[] = 'sites/all/libraries';
// Also search sites/<domain>/*.
$searchdir[] = "{$config}/libraries";
// Retrieve list of directories.
$directories = array();
$nomask = array(
'CVS',
);
foreach ($searchdir as $dir) {
if (is_dir($dir) && ($handle = opendir($dir))) {
while (FALSE !== ($file = readdir($handle))) {
if (!in_array($file, $nomask) && $file[0] != '.') {
if (is_dir("{$dir}/{$file}")) {
$directories[$file] = "{$dir}/{$file}";
}
}
}
closedir($handle);
}
}
return $directories;
}